Forum: Mikrocontroller und Digitale Elektronik ATMeag16 Timer1 3 Timerinterrupts


von warn-two (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.