So, hier noch mal das Programm mit Kommentaren.
Irgendwas ist falsch, das mit den Zählwert klappt wohl nicht, und wenn rein theoretisch der zählwert unter 200 liegt ändert sich garnicht´s.Code:#include "asuro.h" int main(void) { int p; int a=400; // gibt Zählwert an Init(); while(1) // Asuro soll einfach losfahren { MotorDir(FWD,FWD); BackLED(OFF,OFF); MotorSpeed(175,175); BackLED(OFF,OFF); // beide BackLED aus while(PollSwitch()>=8) //wenn eine linke Taste gedrückt wird { BackLED(ON,OFF);// linke LED an MotorDir(BREAK,BREAK); // Stop MotorSpeed(0,0); for(p=1;p<200;p++)Sleep(255); // kurze rechte Rückwärtskurve MotorDir(RWD,RWD); MotorSpeed(120,170); for(p=1;p<a;p++)Sleep(255); // Pause MotorSpeed(0,0); for(p=1;p<300;p++)Sleep(72); a=a+20; // wenn jetzt nichts passiert einfach geradeaus weiter fahren } while((PollSwitch()<8)&&(PollSwitch()>1)) // hier die Tasten 2und 3 von rechts gesehen { BackLED(OFF,ON);// rechte LED an MotorDir(BREAK,BREAK); MotorSpeed(0,0); for(p=1;p<200;p++)Sleep(255);// kurze linke Rückwärtskurve MotorDir(RWD,RWD); MotorSpeed(170,120); for(p=1;p<a;p++)Sleep(255); MotorSpeed(0,0); for(p=1;p<300;p++)Sleep(72); a=a-50; // hier soll vom Zählwert abgezogen werden, damit die Rückwärtskurven immer unterschiedlich ausfallen } // wenn jetzt nichts passiert einfach geradeaus weiter fahren while(a<200) // wenn der Zählwert die 200 unterschreitet soll er stehenbleiben, und die FrontLED leuchten { break; FrontLED(ON); } } return 0; }
Gruß Frank






Zitieren

Lesezeichen