Timer2 im CTC Modus zählt nicht bis zum Vergleichswert

Gast #1455929
Hallo!

Ich benutzte Timer2 eines AtMega8 im CTC Modus.
Im Moment lasse ich das Programm nur im Debuggmodus laufen.
Mein Problem ist, dass der Zähler TCNT2 nicht bis zum Vergleichswert 
OCR2 läuft, sondern der Interrupt schon früher ausgelöst wird. Dieser 
Punkt scheint allerdings auch nicht konstant zu sein (wenn OCR2 gleich 
0xff ist passiert der Interrupt bei TCNT2 = 0x41(ca.); bei OCR2 = 0x40 
--> Interrupt bei TCNT2 = 0x19(ca.)).

Ich hoffe jemand versteht mein Problem und hat eine Antwort;)

Vielen Dank,

Felix

Die "problemnahen" Teile des Programms:

  ldi temp, 0x40
  out OCR2, temp

  ldi temp, (1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20)
  out TCCR2, temp

  ldi temp, (1<<OCIE2)
  out TIMSK, temp

  sei

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.