Hi, Mein Timer funktioniert nur beim Simulieren im AVR Studio 4! Ich înitialisiere ihn so: TIMSK = (1<<TOIE0); //Timer 0 Interrupt initialisieren TCCR0 = (1<<CS01) | (1<<CS00); //Timer Prescaler auf 64 TCNT0 = 130; // Timer 0 auf 130 einstellen (2ms bei 4MHz) // (255-130) * 16us = 2ms Und die ISR dazu: SIGNAL(SIG_OVERFLOW0) { timer_flag = 1; // Interrupt Flag wird gesetzt outp(130, TCNT0); // Timer auf 2ms einstellen } Im Hauptprogramm mach ich nichts for(;;) {} Kann es sein, dass mein uC kapputt ist (ATmega8)? Oder habe ich ihn falsch initialisiert?
Aber sei (); hast du in deiner main stehen? Was soll timer_flag = 1 bezwecken? Es wird beim ersten Interrupt auf 1 gesetzt und bleibt dann auch auf 1. Setzt du es im Hauptprogramm wieder zurück? Thomas
Ach ja sorry... sei(); wird in der Initialisation gesetzt und das Timer_flag wird in einem Unterprogramm benützt! Zum austesten ob der Timer funktioniert habe ich folgendes gemacht: in der Timer ISR: IF (PORTC = 0xFF) PORTC = 0x00; else PORTC = 0xFF; und PORTC an nen KO gehängt... Vielen Dank für die Hilfe
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.