-
-
Erfahrener Benutzer
Roboter Experte
AVR bleibt in while-Schleife hängen
Hallo
ich komme nicht mehr weiter, vielleicht kann mir einer helfen.
Mein C-Programm bleibt in folgender while-Schleife hängen.
while(rxbits < 14);
So lange rxbits kleiner als 14 ist, soll es auch. rxbits wird in einer Interrupt-Routine hochgezählt. Wenn rxbits =14 ist, soll es in dem Programm weitergehen. Tut es aber nicht. Was mach ich falsch?
An einer anderen Stelle im Programm funkioniert es, wie hier:
while(PIND & (1 << PD0)); // warte auf 1. Flanke
Aber nicht bei dem 1. Beispiel. Ich hab schon andere Bedingungen ausprobiert, aber es hilft nichts.
Es ist bestimmt nur eine kleine Sache, die ich falsch mache. Wer kann mir helfen?
Gruss Waste
-
Erfahrener Benutzer
Roboter Genie
Ist rxbits als volatile deklariert ??
Wenn nicht denkt der Compiler die Variable würde sich nicht ändern und macht eine Endlosschleife daraus ( kann man meistens auch schön im Assemblerlisting sehen ).
MfG Kjion
-
Erfahrener Benutzer
Roboter Experte
Hallo Kjion,
Das war es. Mit volatile funzt es.
Danke Dir!
Gruss Waste
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen