Hallo,
irgendwie bin ich gerad nicht in der lage, einen Timeroverflow in C zu
generieren und echt überfragt, woran es liegt. Hier in kurzform mein
"Programm". Hab ich was vergessen, hab ich was verwechselt? Irgendwie
komm ich gerad nicht weiter...
1 | int main (void)
|
2 | {
|
3 |
|
4 | led_init();
|
5 | led_all_off();
|
6 |
|
7 | TIMSK0= (1<<TOIE0); //overflow Int aktivieren
|
8 | TCCR0B= (5<<CS00); // Prescaler 1024
|
9 | while (1) ;
|
10 | }
|
11 |
|
12 | ISR(TIMER0_OVF_vect)
|
13 | {
|
14 | toggle_led();
|
15 | }
|
Die LED Funktionen funktionieren, der timer läuft, aber die ISR wird nie
ausgeführt.
Es handelt sich um den ATMEGA1281.
Kann mir jemand weiterhelfen?
Vielen Dank!
P.S.:
ein auszug aus der iomxx0_1.h
1 | /* Timer/Counter0 Overflow */
|
2 | #define TIMER0_OVF_vect _VECTOR(23)
|
3 | #define SIG_OVERFLOW0 _VECTOR(23)
|
Im Datenblatt findet sich jedoch TIMER0 OVF als Vektor no 24
beschriftet. wem darf ich denn nun trauen?
leider wurde mein overflow auch nicht bei
1 | #define SPI_STC_vect _VECTOR(24)
|
auselöst...