AtMega32 Timer1 CTC Overflow

Gast #2636360
Lesenswert?

Hallo zusammen,
ich möchte auf einem AtMega32 mit 16MHz einen zeitlich genauen Interrupt 
per CTC Compare Match in Timer 1 ausführen.
1
TCCR1A |= (1 << WGM12); // CTC Mode
2
TCCR1B |= (1 << CS10); // Prescaler: 1
3
OCR1A = COUNT;
4
TIMSK = (1 << OCIE1A); // Enable Output Compare Interrupt
Ich bekomme nach 10000 Millisekunden aber immer 2451 Interrupts, egal 
welchen Wert COUNT hat. Ausserdem wird etwa alle 12 Interrupts das 
Overflow Flag TOV1 gesetzt, egal ob die ISR relativ lange ist oder nur 
eine Zählvariable inkrementiert.

Hier noch das verwendete ISR Makro:
1
ISR(TIMER1_COMPA_vect) { ... }

Was ist da los? Warum ändert COUNT nichts?

Mit freundlichen Grüßen,
Thomas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren