Gast
#2163401
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?