Guten Tag,
bisher betreibe ich Timer 1 im Mode 14. Es werden Interrupts bei
durchlaufen von ICR1 und OCR1A ausgelöst. In ISR TIMER1_COMPA_vect wird
der Pin PB0 auf 1 gesetzt und in der anderen ISR (TIMER1_OVF_vect) wird
der Pin PB0 auf 0 gesetzt. Funktioniert prima. Nun möchte ich einen
dritten Interrupt bei OCR1B (OCR1A < OCR1B < ICR1) auslösen der mir den
PIN PB1 verändert. Problem ist dass sobald ich TIMSK für OCR1B-Interrupt
aktiviere kommt an PB0 eine ganz ander PWM raus.
Hier mal die initialisierung meines Timers:
1 | ICR1 = (uint16_t)93;
|
2 | OCR1A = (uint16_t)53; //Vergleichswert für OC1A
|
3 | OCR1B = (uint16_t)73; //Vergleichswert für OC1B
|
4 |
|
5 | TIMSK |= (1 << OCIE1A) | (1 << TOIE1) | (1 << OCIE1B); //Interrupt bei ICR1,OCR1A,OCR1B
|
6 |
|
7 |
|
8 | TCCR1A |= (1 << WGM11); //fast PWM mode 14 (Teil A)
|
9 | TCCR1B |= (1 << WGM13)| (1 << WGM12); //fast PWM mode 14 (Teil B)
|
10 | TCCR1B |= (1 << CS10);
|
Vielen Dank für eure Hilfe.