hmm... ich habs noch net getestet... wart ma kurz
Druckbare Version
hmm... ich habs noch net getestet... wart ma kurz
also ich habe vor der letzten klammer
while(1);
return 0;
vergessen... aber daran liegts nich
hm, ich glaube dass die fahranweisung schon in eine while-schleife müsste, bei deinem letzten code, edh, läuft er ja nur einmal durch die if-anweisung und stoppt dann sofort wieder ab
(*edit: quatsch, habe mich verlesen, so müsst es klappen)
oder man löst es so:
aber warum kann man dann nicht gleich die while-schleife in die if-anweisung einbauen?Code:#include "asuro.h"
int main(void)
{
Init();
if(PollSwitch()==0){
SerWrite("Los gehts!\n"10);
}
else{
StatusLED(RED);
SerWrite("Hinderniss!\n",11);
}
while(PollSwitch()==0){
MotorDir(FWD,FWD);
MotorSpeed(150,150);
StatusLED(GREEN);
}
MotorDir(BREAK,BREAK);
MotorSpeed(0,0);
Msleep(666);
MotorDir(RWD,RWD);
MotorSpeed(100,100);
while(1);
return(0);
}
theoretisch müsste doch, wenn die if-anweisung zutrifft die while-schleife solange durchlaufen werden bis die bedingung nicht mehr zutrifft...
hier
SerWrite("Los gehts!\n"10);
fehlt ein komma.
ausserdem sollte am ende der datei immer ein zeilenumbruch stehen.
also bei mir fährt er rückwärts, egal was man macht. wenn er von anfang an keinen taster gedrückt bekommt, dann sendet der los gehts und fährt rückwärts. wenn man einen taster drückt sendet er hindernis und fährt auch rückwärts.