www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Newbie: Wie Zähler realisieren?


Autor: Uwe Naumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bräuchte mal ein paar Hinweise, wie ich am Besten mit einem AVR
einen Zähler (für Modellbauzwecke, max. 100.000/min) realisiere?

Ich dachte mir das so, das ich via externen Interrupt die Pulse zähle
indem ich einen Wert in einem Register hochzähle. Dann das Ganze mit
einer Zeitschleife via internen Timer auslesen/ausgeben und Register
auf Null setzen.

Ist der Denkansatz so richtig?

Oder sollte ich einen anderen Weg gehen?

Gruß Uwe
(ja, es gibt ne Menge fertige Lösungen dafür, aber man will ja auch was
lernen)

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine lösung ist möglich. Aber du wirst bei höheren Frequenzen evt.
Probleme bekommen.
Eine andere Lösungsansatz währe, den internen Timer verwenden. Mit den
konfigurationsregister kannst du einstellen, dass der Timer mit einem
Externen Takt läuft. Du brauchst dich um das Zählen dann gar nicht zu
kümmern.

Wenn du hilfe brauchst, dann melde dich.

Gruß, Florian

Autor: Uwe Naumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meld!

Könntest Du mir mal ein wenig auf die Sprünge helfen?
Ich verwende einen AT90S2313.

Also, ich vermute mal, das ich dann Timer1 so einstellen soll, das er
via externen Interrupt hochgezählt wird.

Nur wie komme ich dann zu einem brauchbaren Ergebnis? Nach welchem
Schema werte ich das dann aus?

Bei meiner Variante hätte ich via Timer eine Torzeit erzeugt und
einfach die ankommenden Impulse in dieser Zeit ermittelt.

Gruß Uwe

Autor: harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

du kannst im einfachsten fall einen chip mit 2 timern nehmen.
z.b. Timer0 = Timer, der macht die torzeit, Timer1 = Counter, der zählt
via interrupt die pulse, geht gut bis ca. 1/2 cpu-frequenz.

gruss, harry

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

sowetwas ähnliches hatten wir doch kürzlich gerade gehabt:
http://www.mikrocontroller.net/forum/read-1-62154.html#62154

Mich würde nur noch interessieren, wie die Aussage von Peter genau zu
verstehen ist.

"Der Trick ist nur die Kaskadiereung per Softwareregister im
Interrupt."

Soll es möglich sein, daß während der eine Interrupt ausgeführt wird
der des anderen Zählers ausgeführt werden kann/soll?

GRuß

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.