Hallo, ich brauche etwas Hilfe bei meiner Interrupt-Routine.
Ich will ein einfachen Countdown schreiben.
Dazu verwende ich den Overflow-Interrupt von Timer0.
Vom Interrupt funktioniert auch alles soweit.Das Problem
liegt das er nicht zurück ins Programm will? Im Simulator(avrstudio)
zählt er unendlich lang weiter.
Die Interrupt-Routine:
ISR (TIMER0_OVF_vect){
i++;
if(i==61){
sek_timer++;
i=0;
}
}
Und der Abschnitt im Hauptprogramm:
.
.
sek_timer=0;
sek_ADC=2;
sei();
TIMSK = 0x01; //overflow interrupt ein
while(sek_timer != sek_ADC){} //warten bis Zeit vorbei
TIMSK = 0x00; //overflow interrupt aus
cli();
.
.
.
alle 61 Overflows addiert er eine Sekunde zu sek_timer und 'sollte'
diese
mit sek._ADC vergleichen (sek_ADC ist zum testen auf 2 Sekunden
gesetzt).
Wenn die 2 Sekunden vorbei sind soll er zum Zählen aufhören und mit dem
Programm fortfahren.
So hab ich mir das gedacht, er zählt aber unendlich lang weiter?
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.