Hallo
Versuche auf dem Atmega164P einen Timerinterrupt auszulösen.
PORTC Pin4 soll daraufhin geändert werden
Aber irgenwie beginnt die ISR nicht.
Bin Anfänger, kann mir da jemand weiter helfen?
Hier der Code. Danke.
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 | #include <stdint.h>
|
4 |
|
5 | #define F_CPU 4000000UL
|
6 |
|
7 | int a=0;
|
8 |
|
9 | ISR (TIMER0_OVF_vect){
|
10 | a++;
|
11 | if (a>250){
|
12 | PORTC ^= (1<<4);
|
13 | a=0;
|
14 | }
|
15 | }
|
16 |
|
17 | //Timer - Initialiesierung
|
18 | void init_timer0(void){
|
19 |
|
20 | TCCR0A =0x00; // Timer0 Rücksetzen
|
21 | TCCR0B &= ~(1<<WGM02); // Auswahl normal Modus
|
22 | TCNT0 = 0xff; // Zähler setzen
|
23 | TIMSK0 |= (1<<TOIE0); // Overflow aktivieren
|
24 |
|
25 | sei(); //Interupt freischalten
|
26 | }
|
27 |
|
28 | int main(void)
|
29 | {
|
30 | DDRC = (1<<4);
|
31 | PORTC = (1<<4);
|
32 |
|
33 | init_timer0();
|
34 |
|
35 | while(1){
|
36 | }
|
37 | }
|