Hallo,
wenn ich den Timer0 also den 8Bit Timer mit
1 | TCCR0 |= BIT0 + BIT1 + BIT2; //Vorteiler 1024
|
2 | OCR0 = 78;
|
3 | TIMSK |= BIT1; //Interrupt aktivieren für TIMER0
|
initialisiere, dann springt das Programm auch in die TIMER0_COMP_vect
ISR und wird alle 20ms aufgerufen.
Will ich jedoch den Timer1 mit 16Bit mit
1 | TCCR1B |= BIT0 + BIT2;
|
2 | OCR1B = 78;
|
3 | TIMSK |= BIT3; //OCIE1B:
|
einstellen dann wird die TIMER1_COMPB_vect ISR nur einmal aufgerufen
bzw. viele Sekunden später aufgerufen.
unterscheiden die beiden Timer sich in einem Detail, dass man schnell
übersehen kann? Clock läuft richtig und Interrupt sind global enabled.
Wie gesagt mit dem 8Bit läuft es wie es soll. Mit dem 16er aber
nicht....
Gruß
Maddin