Ich hab ein Problem beim abarbeiten meiner ISR (Timer Compare Match). Jedesmal wenn der Interrupt ausgelöst werden würde, wird sofort resetet. Ich hab das mit einem Debugger (dem AVR Dragon) getestet. Beim Breakpoint der am Anfang der ISR steht, wird nie angehalten. Dafür wird immer wieder vor die Endlosschleife gesprungen (Reset) Ich verwende einen AT90PWM316. Fuses sind alle gelöscht. (Bis auf DW natürlich, damit wird getestet.) Hat jemand eine Ahnung woran das liegen könnte. Hier die Initialisierung des Timers:
1 | OCR1A = incr; |
2 | TCCR1A |= (1<<COM1A0); //OC Pin toggelt |
3 | TCCR1B |= ( (1<<WGM12) | (1<<CS10) ); //prescaler = 1 & CTC Modus |
4 | TIMSK1 |= (1<<OCIE1A); |
und hier der Aufruf der ISR:
1 | ISR (TIMER1_COMPA_vect) |
2 | {
|
3 | clk = (!clk) ? 1:0; |
4 | if (!clk) |
5 | clk_wert=1; |
6 | else
|
7 | clk_wert=0; |
8 | }
|
Vielen Dank im Voraus