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