www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu Timer1 (16-bit)


Autor: Notker C. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo AVR-Gemeinde,

ich habe mal eine Frage zu dem 16-bit Timer. Und zwar möchte ich sehr 
präzise die Zeitverzögerung von einer Sekunde messen. Wenn ich meinem 
AVR nun einen Quarz von 4,096Mhz verpasse, kommt das ja bei einer 
Vorteilung von 1024 genau hin, wenn ich den Zähler dann noch 4000 Zyklen 
zählen lasse. Ich möchte das Programm allerdings interruptlos gestalten, 
weil dazu keine Notwendigkeit besteht und ich den Zähler mittels Polling 
abfragen will. Wenn ich das, was ich bislang an Informationen gesammelt 
habe, richtig interpretiere, sollte es auch ohne Interrupt möglich sein, 
den Timer1 durch Setzen des CTC1-Bits im Register TCRR1B so zu 
gestalten, dass er freilaufend immer dann auf Null zurücksetzt, wenn 
sein Zählerstand mit dem Vergleichsregister A übereinstimmt, ohne dass 
ich ihn immer wieder softwaregesteuert neu setzen muss.
Ist das richtig?
Ich könnte natürlich durch Schreiben von Beispielcode im AVR-Studio 
herumprobieren, aber das Debugging von Code mit solch langen 
Zählerverzögerungen gestaltet sich dort recht unkomfortabel und man kann 
ja auch mal jemand fragen, der Ahnung von diesen Geschichten hat.

Vielleicht wären einige Zeilen Beispielcode in C nicht schlecht.

Vielen Dank schon mal für die Beratung!

Beste Grüsse,

Notker

Autor: Jonas Diemer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, es geht! du bräcuhtest dazu nichtmal einen timer, kannst ja auch 
einfach eine "delay loop" benutzen...

wieso geht das nich komfortabel zu debuggen? du musst doch lediglich 
breakpoints setzen, dann kannst du die vergangene zeit im debugger 
ablesen.

sorry, dass ich keinen code abliefere. :-)

Autor: Stefan_H (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Diese Funktion wartet die anzahl der übergebenen Millisekunden. Is in C, 
hoffe du kannst es verwenden. Geht nur bei 8Mhz, müßtest es umschreiben 
um andere Taktfrequenz zu verwenden. Komentar fehlt, wenns Fragen git, 
dann einfach fragen.

lg,

Stefan

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.