Hallo unser Projekt ist eigentlich soweit fertig allerdings macht unser ASURO jetzt nur noch Rückwärts Linkskurven am Stück. Bis wir dass Programm erweitert haben ging jedoch die Funktion mit den Kollisionstaster hervorragend.
Zur Erklärunger ASURO soll eine Kurve fahren, an die er im ersten Durchgang anstößt...im zweiten Durchgang soll er sie perfekt nehmen...
Dazu zählt er Linien bis er eine kurve erkennt und speichert diesen Wert ab. Beim nächsten Durchlauf macht er nach der abgespeicherten Anzahl an Linien eine Kurve.
Könnt ihr Erklären warum er jetzt plötzlich nur noch Rückwärtslinkskurven macht?
Vielen Dank
Lg
Hansebanger vs. BangboyCode:#include "asuro.h" void SleepEx(short); #define STOP 250 int main(void) { unsigned char taste; unsigned int data[2]; int i,S,DrehR,DrehL; Init(); DrehL=0; // Werte auf null setzen DrehR=0; i=0; S=0; while (1==1) { FrontLED(ON); BackLED(OFF,OFF); MotorDir(FWD,FWD); MotorSpeed(150,150); LineData(data); if ((data[0]<STOP) && (data[1]<STOP)) { i++; BackLED(ON,ON); SleepEx(1); } if (i>10) { MotorSpeed(0,0); SleepEx(15); S=1; i=0; } taste=PollSwitch(); if (taste > 13) { DrehR=i; MotorSpeed(0,0); StatusLED(RED); MotorDir(RWD,RWD); MotorSpeed(0,200); SleepEx(15); MotorSpeed(0,0); SleepEx(10); MotorDir(FWD,FWD); MotorSpeed(210,200); } else if((taste < 13) && (taste >= 1) ) { DrehL=i; MotorSpeed(0,0); StatusLED(YELLOW); MotorDir(RWD,RWD); MotorSpeed(200,0); SleepEx(15); MotorSpeed(0,0); SleepEx(10); MotorDir(FWD,FWD); MotorSpeed(210,200); } if (S=1) { while (i<(DrehL)) { MotorDir(FWD,FWD); MotorSpeed(105,100); } if (i>=(DrehL)) { MotorDir(FWD,FWD); MotorSpeed(120,20); StatusLED(GREEN); } } } //************************************************************************************** } void SleepEx(short zsecnds) { int wdhlg=zsecnds/.03; int i=0; while (i<wdhlg) { Sleep(216); i++; } }







Zitieren

Lesezeichen