hallo MrBean93
was dein asuro macht ist föllig richtig.
aber dazu schauen wir uns jetzt mal an was in deinem programm steht:
noch kurz zum ablauf:Code://den anfang lassen wir weg ... while(1) { //Endlosschleife, wird immer wiederholt //statusled auf grün und frontled ein //motor auf vorwärts mit 180, 180 if(PollSwitch()>0) {//falls eine taste gedrückt wird: //motor aus //statusled auf rot und frontled aus //AUA über hyperterminal ausgeben }//ende der if-schleife. da kein else vorhanden ist wird einfach fortgesetzt }//ende der while(1)-schleife, dh. es wird wieder von oben begonnen!
nach dem einschalten tritt asuro in die endlosschleife ein
- schalten der leds
- schalten des motors
- prüfen ob taste gedrückt ist:
-- wenn ja: motor aus, leds schalten.
dann gehts einfach weiter, egal ob noch eine taste gedrückt ist oder nicht!
- sprung zum anfang der endlosschleife!
altenativ könntest du es zb. so machen:
was mir noch aufgefallen ist: die runden kalmmern ( { und } ) um den ausführungsblock nach while(1){ kannst du dir sparenCode:#include "asuro.h" int main(void) { Init(); while (1) { StatusLED (GREEN); FrontLED(ON); MotorDir(FWD,FWD); //motor ein MotorSpeed (180,180); if(PollSwitch()>0) //falls ein taster gedrückt wir in der if-anweisung fortsetzen { MotorSpeed (0,0); StatusLED (RED); FrontLED(OFF); SerWrite("AUA!", 4); while(PollSwitch()>0) {} //solange ein taste gedrückt ist soll er nichts machen }//ende der if-anweisung }//ende der endlosschleife, von oben wieder anfangen return 0; //sollte normaler weiße immer am ende der main()-funktion stehen }







Zitieren

Lesezeichen