Hi bei experimentieren mit Funktionen habe ich folgendes gebastelt:
Mein ASURO spinnt aber bei diesem Programm. Mal fährt er geradeaus, und fängt plötzlich mit dem abarbeiten der Funktionen an, manchmal fährt er garnicht erst los, und macht gleich Quatsch.Code:#include "asuro.h" int i=0; void Wende_r(void) //Funktion Wende rechts {MotorDir(RWD,RWD); MotorSpeed(100,200); for(i=0;i<200;i++){Sleep(255);} } void Wende_l(void) // Funktion Wende links {MotorDir(RWD,RWD); MotorSpeed(200,100); for(i=0;i<200;i++){Sleep(255);} } int main(void) { Init(); while(1) // Endlosschleife { StatusLED(RED); // Status Rot MotorDir(FWD,FWD); // Fährt geradeaus MotorSpeed(200,200); while((PollSwitch()>=2)&&(PollSwitch()<8)) // bei Kollisieon recht { StatusLED(GREEN); // Status Grün MotorDir(BREAK,BREAK); // beide Motoren Stop MotorSpeed(0,0); // Geschwindigkeit 0 for(i=1;i<300;i++) Sleep(255); // kurze Pause Wende_l(); // oben definierte Funktion Wende links ausführen, und danach wieder geradeaus } while((PollSwitch()>=8)&&(PollSwitch()<=32)) // bei Kollisieon links { StatusLED(YELLOW); // Status gelb MotorDir(BREAK,BREAK); // beide Motoren Stop MotorSpeed(0,0); // Geschwindigkeit 0 for(i=1;i<300;i++) Sleep(255); // kurze Pause Wende_r(); // oben definierte Funktion Wende rechts ausführen, und danach wieder geradeaus } } return 0; // wird nie erreicht }
Mit dem Tasterausleseprogramm bekomme ich korrekte Werte;1;2;4;8;16;32
Woran kanns liegen???







Zitieren
Lesezeichen