Forum: Mikrocontroller und Digitale Elektronik Problem mit Warteschleife


von Andreas (Gast)


Lesenswert?

Hallo allerseits,

Ich habe ein Problem mit einer Warteschleife auf dem ATmega 8 (gcc 
Compiler).

Und zwar wird in einem Interrupt (Timer 1 OVFL, jede ms) ein Counter 
dekrementiert:

if(cnt!=0)
cnt--;

Im Main Teil möchte ich an einer Stelle einfach nur warten, bis cnt==0. 
Dies habe ich probiert:

while(cnt != 0)
;

Aber anscheinend ist dies eine Endlosschleife. Das Programm hängt an 
dieser Stelle. Mit diesem Code klappt es:

while(cnt != 0)
_delay_ms(1);

Weiß jemand, warum das so ist?

von Carl D. (jcw2)


Lesenswert?

Stichwort "volatile"!

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.