hallo,
erstmal möchte ich darauf hinweisen, dass ich anfänger bin!
ich habe das problem, dass meine
timer-overflow-interrupt-service-routine nicht ausgeführt wird.
zusätzl. info:
LED an PORT D5 funktioniert (habe ich mit anderem code getestet)
ATMEGA32 läuft mit quarz auf 16 MHz (habe fuses richtig gesetzt --> auch
schon getestet)
problem: LED an PORT D5 bleibt komplett dunkel. habe es auch schon mit
einem anderen vorteiler probiert (1 << CS02) | (1 << CS00)
habe auch schon versucht im isr einfach nur die LED einzuschalten mit
PORTD = (1 << PD5); funktioniert auch nicht --> wenn ich diesen befehl
in die while(1) {} - Schleife schreibe, leuchtet die LED.
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | void init_timer()
|
5 | {
|
6 | TCCR0 = (1 << CS01);
|
7 | TIMSK |= (1 << TOIE0);
|
8 |
|
9 | sei();
|
10 | }
|
11 |
|
12 | ISR (TIMER0_OVF_vect)
|
13 | {
|
14 | PORTD ^= (1 << PD5);
|
15 | }
|
16 |
|
17 | int main(void)
|
18 | {
|
19 | DDRD = 0xff;
|
20 | init_timer();
|
21 |
|
22 | while(1)
|
23 | {
|
24 | // do something
|
25 | }
|
26 | }
|
Bitte helft mir --> bin verzweifelt