Hallo an alle, ich versuche mich nun seit einigen Stunden daran einen TIMER1 COMPA Interrupt auslösen zu lassen. Beim Debuggen kann ich sehen, dass das TCNT1 bis 10 zählt und dann wieder auf Null gesetzt wird. Allerdings springt er nicht in die ISR. Komme nicht auf den Fehler. Könnt ihr mir bitte weiter helfen? Vielen Dank im Voraus :) Hier der ganze Code:
1 | #include <avr/io.h> |
2 | #include <stdint.h> |
3 | #include <avr/interrupt.h> |
4 | |
5 | int main(void) |
6 | {
|
7 | GTCCR = 0x00; |
8 | OCR1A = 10 - 1; // CompareA-Register |
9 | TCCR1A =0x00; |
10 | TCCR1B =0x0A; |
11 | TCCR1C = 0x00; |
12 | TIMSK1 = 0x02; |
13 | |
14 | sei(); |
15 | |
16 | DDRD = 0x0F; // Port als Ausgang |
17 | PORTD = 0xF0; // Pull Ups |
18 | |
19 | while (1) |
20 | {
|
21 | }
|
22 | }
|
23 | |
24 | ISR(TIMER1_COMPA_vect) |
25 | {
|
26 | if ((PIND & (1<<PIND5))) |
27 | {
|
28 | PORTD ^= (1<<PD2); |
29 | }
|
30 | }
|
