Hallo
Eine einfache Variante deines Programms (ungetestet):
Code:#include "asuro.h" int main(void) { int p; Init(); // muss immer aufgerufen werden! while(1) // Endlosschleife { StatusLED(RED); while(PollSwitch()>2) // Tasten immer wieder neu einlesen und auswerten { StatusLED(GREEN); for(p=1;p<300;p++) Sleep(72); StatusLED(YELLOW); for(p=1;p<300;p++) Sleep(72); } } return 0; // wird nie erreicht }Du verwendest kein Code-Tag und zuviele "?" ;)Was mach ich denn falsch?
Deine Programmversion wurde nur einmal ausgeführt und blieb dann in der Endlos-While()-Schleife vor dem return stecken. Außerdem wurde bei while(taste>2) der Wert für taste nicht mehr neu eingelesen. Wenn die Schleife einmal betreten wurde, konnte sie nie mehr abgebrochen werden:
GrußCode:#include "asuro.h" int main(void) { int p; int taste; Init(); // muss immer aufgerufen werden! while(1) // Endlosschleife { StatusLED(RED); taste=PollSwitch(); // Tasten einlesen while(taste>2) // in dieser Schleife wird taste nicht mehr aktuallisiert! { StatusLED(GREEN); for(p=1;p<300;p++) Sleep(72); // taste=PollSwitch(); // nur wenn die Tasten erneut eingelesen werden } // kann die Schleife wieder verlassen werden! } return 0; // wird nie erreicht }
mic







Zitieren
Lesezeichen