Hallo, könnt ihr mir sagen warum der Timer0-Overflow nicht aktiv ist? #include <avr/io.h> #include <avr/interrupt.h> int i=0; int main (void) { DDRC = 0x01; //C0 als Ausgang PORTC = 0x01; //CO high // Timer 0 konfigurieren TCCR0A = (1<<CS01); // Prescaler 8 // Overflow Interrupt erlauben TIMSK0 |= (1<<TOIE0); // Global Interrupts aktivieren sei(); while(1) { } return 0; } ISR (TIMER0_OVF_vect) { i++; if(i>=500) { i=0; PORTC ^= (1<<PC0); } }
Du hast den µC-Typ nicht genannt. Somit gibt es keine Möglichkeit, zu überprüfen, ob z.B. CS01 wirklich in TCCR0A ist (beim Mega88 z.B. nicht), ebenfalls nicht überprüfen lassen sich die anderen Registerzuweisungen und der Name der ISR. Damit würde man aber sinnvollerweise beginnen. Also: welcher µC?
Hi
>Du hast den µC-Typ nicht genannt.
Titel ' Timer0_OVF mit ATmega88'
MfG Spess
Ja, ich muss wohl langsam schlafen gehen ... Glücklicherweise habe ich für diesen Fall (Mega88) die Antwort gleich mitgeliefert. CS01 ist in TCCR0B, nicht TCCR0A.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.