Oha...
also while(1) für etwas anderes zu benutzen als die Hauptschleife eines Programms ist aber ganz ganz böse.
Viele Probleme ähnlich dem von dir beschriebenen lassen sich recht bequem mit einer sog. state-machine lösen
implementieren kann man sowas mit einem großen Switch-Block:
(der seinerseits in einer Funktion sitzt welche zyklisch aufgerufen wird)
natürlich kann man beliebig zwischen den Zuständen hin und her springen, man muss nicht immer so linear vom einen zum nächsten wie hier dargestellt. Wartezeiten lassen sich auch sehr leicht realisieren, denn man muss sich nur den Startzeitpunkt merken und dann bei jedem Aufruf überprüfen ob die Wartezeit schon abgelaufen ist oder nicht.Code:switch(zustand) { case zustand1: blablubb zustand = zustand2; break; case zustand2: blablubb zustand = zustand3; t = Zeit; break; case zustand3: if(Zeit - t > Wartezeit) { blablubb zustand = .... } case zustand4: ... ... ... }
Lesezeichen