So, hier noch mal das Programm mit Kommentaren.
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;
}
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.
Gruß Frank
Lesezeichen