Warum denn so komplizirt?
es geht doch auch einfacher:Das währe ein programm wo der asuro, wenn er links irgendwo gegen fährt ein stück Rückwärts fährt und dann nach rechts und wenn er rechts gegen fährt genau das gegenteil.Code:#include "asuro.h" int main(void){ int d; Init(); while(1){ unsigned char b; unsigned char a; unsigned char c; b=PollSwitch(); a=PollSwitch(); c=PollSwitch(); MotorDir(FWD,FWD); MotorSpeed(120,120); Sleep(100); if ((b>0)&&(b<8)&&(a==b)&&(a==c)&&(b==c)){ MotorDir(RWD,RWD); MotorSpeed(120,120); for(d=0;d<282;d++){ Sleep(255);} MotorDir(RWD,FWD); MotorSpeed(120,120); for(d=0;d<282;d++){ Sleep(120); } } else if((b>7)&&(b<57)&&(a==b)&&(a==c)&&(b==c)){ MotorDir(RWD,RWD); MotorSpeed(120,120); for(d=0;d<282;d++){ Sleep(255);} MotorDir(FWD,RWD); MotorSpeed(120,120); for(d=0;d<282;d++){ Sleep(120); } } else{ MotorDir(FWD,FWD); MotorSpeed(120,120); } } return 0; }
Noch einfacher für den anfang währe es so zu schreibenhier bei fährt der Asuro rückwärs und dann nach links egal auf welcher seite er anstöst.Code:#include "asuro.h" int main(void){ int d; Init(); while(1){ unsigned char b; unsigned char a; unsigned char c; b=PollSwitch(); a=PollSwitch(); c=PollSwitch(); MotorDir(FWD,FWD); MotorSpeed(120,120); Sleep(100); if ((b>0)&&(a==b)&&(a==c)){ MotorDir(RWD,RWD); MotorSpeed(120,120); for(d=0;d<282;d++){ Sleep(255);} MotorDir(RWD,FWD); MotorSpeed(120,120); for(d=0;d<282;d++){ Sleep(120); } } else{ MotorDir(FWD,FWD); MotorSpeed(120,120); } } }
Lesezeichen