hallo MrBean93
was dein asuro macht ist föllig richtig.
aber dazu schauen wir uns jetzt mal an was in deinem programm steht:
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!
noch kurz zum ablauf:
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:
Code:
#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
}
was mir noch aufgefallen ist: die runden kalmmern ( { und } ) um den ausführungsblock nach while(1){ kannst du dir sparen
Lesezeichen