Forum: Mikrocontroller und Digitale Elektronik Tim0OVF -> Warum funktioniert er nicht?


von Randomize (Gast)


Lesenswert?

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...

von bascom (Gast)


Lesenswert?

ja C eine grausame sprache ist.

von Gast (Gast)


Lesenswert?

hast du die Interrupts global aktiviert?
(zB mit sei(); )?

von Randomize (Gast)


Lesenswert?

ich mach feierabend.
vielleicht hätt man da auch gerade eben noch drauf kommen können. Alles 
mögliche überprüft, an zig stellen den fehler gesucht und ich bin mir 
einfach nur noch doof vorgekommen.... Ob ich mich jetzt schlauer fühl, 
sei mal dahingestellt...

Vielen Dank!

von Gast (Gast)


Lesenswert?

bau vor der while(1) - Endlosschleife ein
sei();
ein!!

von Rahul D. (rahul)


Lesenswert?

bascom wrote:
> ja C eine grausame sprache ist.

Nö, man muß nur wissen, was man tut...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.