Forum: Compiler & IDEs Timer läuft nur in AVR Studio


von F___ (Gast)


Lesenswert?

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?

von Thomas Eska (Gast)


Lesenswert?

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

von F___ (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.