Hm... Ich wäre für einen Tipp dankbar, warum die Interrupt-routine nicht durchlaufen wird. Oder wird gar am Ende der Timer nicht mal gestartet?
1 | #include <avr/io.h> |
2 | #include <avr/interrupt.h> |
3 | #define F_CPU 8000000UL
|
4 | |
5 | |
6 | |
7 | int main (void) |
8 | {
|
9 | DDRD=0xE2; |
10 | PORTD|=(1<<7); // LED an |
11 | sei(); // global IR enable |
12 | TCNT0=0x04; // Timer preload |
13 | while(1){ |
14 | TCCR0|=((1<<0)|(1<<2)); // presacaler 1024, run |
15 | }
|
16 | }
|
17 | |
18 | |
19 | ISR(TIMER0_OVF_vect) |
20 | {
|
21 | TCNT0=0x04; // btimer preload 4 |
22 | PORTD^=(1<<7); // toggle LED |
23 | }
|
24 | |
25 | |
26 | // Timer müsste alle 32 msec die ISR auslösen
|