Hallöle.
Ich schon wieder mal.
Ich sitze jetzt eine Stunde hier fest:
Also: bis zum entsprechenden Kommentar läuft das Programm tadellos, es wird ein Wert "odoklicks" ausgegeben, je nach Programmsituation grösser oder kleiner Null.Code:lcd_setCursor(0,1); printf("uebrig:%4d",odoklicks); //wird ausgeführt, Wert ungleich Null! while(odoklicks != 0); { led_set(LED_L_RD,0); // wird bereits nicht ausgeführt led_set(LED_L_YE,0); motpwm_setLeft(speed_l); motpwm_setRight(speed_r); Regelung(); }
odoklicks ist eine ganzzahlige Variable mit Vorzeichen (kann auch negativ sein).
Praktisch kann ich mit dem Programm Zustände erzeugen, wie odoklicks=0, odoklicks<0(negativ), odoklicks>0.
Offenbar hängt das Programm sich auf, wenn odoklicks nicht Null ist, wenn ich als odoklicks Null füttere, dann läuft es problemlos weiter, ohne die while-Schleife zu durchlaufen (ist in diesem Fall ja auch richtig).
Praktisch aber (odoklicks=0 macht keinen Sinn) wird die Variable immer irgendeinen Wert haben.
Dann jedoch läuft es auch _nach_ der Schleife nicht weiter sondern bleibt da stehen.
Aber in keiner der drei Situationen wird diese Schleife auch nur einmal durchlaufen, die LED`s (sie leuchten natürlich vorher) werden nie ausgeschalten.
Beim Compilieren gibt es keinerlei Fehlermeldungen oder auch nur Warnungen.
Was mach ich nuuuun wieder verkehrt?







Zitieren

Lesezeichen