Atmega32 counter interrupt alle 1ms

OP #2135802
Lesenswert?
• ▲
▼
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
OP #2135823
Lesenswert?
• ▲
▼
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.