Hallo! Ich will mit dem Timer2 des Atmega 32 die Zeit die er eingeschaltet ist in ms mitzählen. Dazu habe ich mir gedacht ich lade den timer so vor das er jede ms ein overflow interrupt aufruft. Den Timer will ich über den Eingang TOSC2 mit einem externen Quarz mit 32768Hz Takten. So das heißt ich habe 32,768Takte pro ms. Wenn ich jetzt den Timer mit (256-32,768) = 223 Takten vorlade dann wird das ja ungenau. Was kann ich da machen damit ich die ms genau bekomme? Oder funktioniert das nicht bei so einer geringen Taktrate? godi
Hast du über einen Prescaler mal nachgedacht? Damit könnte man das ggf. ganzzahlig hin kriegen
Warum willst Du noch nen extra Quarz anschließen? Nimm doch einfach den CPU-Quarz als Takt. Wie genau muß denn die Zeitmessung sein? Nimm irgendein Interval in der Nähe von 1ms und rechne dann erst zur Ausgabe auf ms um. Peter
Du brauchst als Taktrate ganzzahlige Vielfache von 1 kHz. Dann kannst du auf T_zykl=1ms Intervall herunterteilen. Mathematisch ausgedrückt heißt das:
wobei n eine natürliche Zahl und T_zykl dein Interval ist. Gruß Skriptkiddy
Vielen Dank für die Antworten. Den externen Quarz habe ich nur weil es eine Übung ist. Über prescaler habe ich nachgedacht nur komme ich da nicht auf einen guten Wert. Mir ist jetzt noch was anderes eingefallen. Ich werde einfach die Interrupts mitzählen und dann eine Funktion schreiben die mir als rückgabewert (TCNT2+countOverflow*256)/32.768 zurückgibt. Dann sollte das schon reichen. :) Aber echt ein super Forum hier. Da bekommt man flink gute Antworten! :) godi
godi godi schrieb: > Ich werde einfach die Interrupts mitzählen und dann eine Funktion > schreiben die mir als rückgabewert > (TCNT2+countOverflow*256)/32.768 > zurückgibt. So einfach geht es aber nicht. Beitrag "AVR Timer mit 32 Bit" Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.