mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik F.messung ohne Timer/Counter AT89S52


Autor: Rick Dangerous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brauche mal euren Rat.
Ich muss mit dem o.g. Controller eine Frequenz messen, was ja
eigentlich kein Problem darstellen sollte, ABER ich habe beide Timer
die der uC hat schon im Gebrauch. Timer 0 läuft als Timer und erzeugt
internen Interrupt und Timer 1 läuft als externer Counter für
Drehzahlmessung (also auch eine Frequenzmessung).
3. Frequenz wird die Geschwindigkeit, aber wie kann ich nun die
messen?
Am besten wird es wohl sein, dass ich den Counter 1 multiplexe oder?

Autor: Martin Götzenberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Das kommt darauf an, welche Frequenzen du so hast, und was der
Controller sonst noch so machen muß. Reine Softwarelösungen haben halt
immer das Problem, daß sie leicht durch einen Interrupt unterbrochen
werden, und dann das Ergebnis nichts mehr ist. Wenn man aber gezielt in
einer 'Lücke' messen kann, spricht wenig gegen eine Softwarelösung.

Andererseits: was spricht denn gegen multiplexen?

servus,
Martin

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für eine Lösung wären halt die Parameter interessant. Wenn die Periode
vom Timer0 mit dem zu messenden Signal zusammenpasst könntest du das
Signal auf einen ext. Interrupt legen, welcher eine Variable
incrementiert. Bei jedem Tmr0 overflow liest du die Variable aus und
setzt sie wieder auf Null.

grüsse leo9

Autor: Rick Dangerous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gegen das multiplexen spricht eigentlich, das ich einen Pin mehr brauche
und der (minimale) Hardware aufwand. Pins sind verdammt knapp. Um es zu
konkretisieren: Es geht um einen Boardcomputer für meinen Wagen. Ich
überwache meine Boardspannung, Lambdawert, Innenraumtemp, Außentemp,
Motordrehzahl, Alarmanlagenfeatures usw.
Also was Software angeht ist der uC ziemlich ausgelastet.

Ich wollte jetzt noch die km/h hinzufügen, also letztendlich Pulse
zählen und auf die Zeit beziehen. Den Zeitbezug bekomme ich über Timer0
und Pulse habe ich mit Counter1 gezählt beim DZM.

Nehme mal an, dass das multiplexen doch wohl die einfachste und beste
Lösung ist?

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der 89S52 hat doch 3 Timer, oder?

Autor: Rick Dangerous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein, glaube der mit 3 Timer ist der 89S8252 oder so. wollte auch
ursprünglich den nehmen, aber an den 82S52 hatte ich schon da.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Unterschied 8051/8052 ist: weitere 128 Byte SRAM und Timer T2.

Und T0 kannst Du noch in 2 * 8 Bit aufteilen, damit hast Du also
insgesamt 4 Timer/Counter.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.