sooo, hier unser finaler quellcode!
einige extras (z.b. Disco-funktion) haben wir zusätzlich noch eingebaut.

Code:
############################################################################################
###       -    FloBa Productions Inc. proudly presents: ASURO Parcourprogramm    -       ###
###       -             Ausgelegt für Parcours mit rechten Winkeln               -       ###
###       - Asuro sollte auf einer hellen Fläche fahren um Ziellinie zu erkennen -       ###
###       -    Programm zur öffentlichen Verwendung, Missbrauch* wird geahndet   -       ###
###       -                 * zum Beispiel schlechte Kritik                      -       ###
###       - Fehler sind ausschliesslich auf Hardware und Batterie zurückzuführen -       ###
###       -       Viel Vergnügen beim Spielspass wünscht das Asuro-Care-Team     -       ###
############################################################################################




#include "asuro.h"

#define FULL_L 200
#define FULL_R 202


volatile unsigned int i;

void Fahren(void)                        	    /* Vorwärts fahren */
{
  StatusLED(GREEN);
  BackLED(OFF,OFF);
  MotorDir(FWD,FWD);
  MotorSpeed(FULL_L,FULL_R);
}

void Anhalten(void)					        	/* Anhalten */
{
  StatusLED(RED);
  BackLED(OFF,OFF);
  MotorDir(BREAK,BREAK);
}

void Zurueck(void)				           		/* Zurück fahren */
{
  StatusLED(YELLOW);
  BackLED(ON,ON);
  MotorDir(RWD,RWD);
  MotorSpeed(FULL_L,FULL_R);
}


void KurveLR(void)				    	    	/* Kurve rückwärts Links */
{
  StatusLED(YELLOW);
  BackLED(ON,OFF);
  MotorDir(RWD,RWD);
  MotorSpeed(FULL_L,0);
}


void KurveRR(void)			        	    	/* Kurve rückwärts Rechts */
{
  StatusLED(YELLOW);
  BackLED(OFF,ON);
  MotorDir(RWD,RWD);
  MotorSpeed(0, FULL_R);
}

void KurveRF(void)								/* Kurve vorwärts Rechts */
{
  StatusLED(YELLOW);
  BackLED(OFF,OFF);
  MotorDir(BREAK,FWD);
  MotorSpeed(0,FULL_R);
}

void Firstcol(void)								/* Programm Rechtskurve im Parcour 1. Kollision */
{
  Anhalten();									
  Msleep(250);
	  
  Zurueck();
  Msleep(15);
	  
  Anhalten(); 
  Msleep(10);
	  
  KurveRR();
  Msleep(400);
	  
  Anhalten();
  Msleep(250);
	  
  switched = 0;
  StartSwitch ();
}

void Secondcol(void)							/* Programm Linkskurve im Parcour, 2. Kollision */
{
  Anhalten();
  Msleep(250);
   
  Zurueck();
  Msleep(10);
	  
  Anhalten();
  Msleep(250);
	  
  KurveLR();
  Msleep(355);			
	  
  Anhalten();
  Msleep(250);
	  
  KurveRF();
  Msleep(355);
			
  Anhalten();
  Msleep(250);
			
  switched = 0;
  StartSwitch();
}  
  
void Thirdcol(void)								/* Programm Sackgasse im Parcour, 3. Kollision */
{
  Anhalten();
  Msleep(250);
					  
  Zurueck();
  Msleep(10);
					  
  KurveLR();
  Msleep(310);
					  
  Anhalten();
  Msleep(250);
					  
  switched = 0;
  StartSwitch();

}

void Disco(void)								/* PARTYTIME! -15mal blinken/piepsen-*/
{
  
  for(i = 0; i < 16; i++)
  {
   MotorDir(FWD,FWD);
   MotorSpeed(50,50);
   BackLED(OFF,OFF);
   StatusLED(OFF);
   FrontLED(OFF);
   Msleep(200);
   
   MotorDir(BREAK,BREAK);
   BackLED(ON,ON);
   StatusLED(RED);
   FrontLED(ON);
   Msleep(200);
   }
   
   
}


int main (void)									/* Hauptprogrammbeginn */
{
  unsigned int data[2];							/* Speicherplpatz für Helligkeitswert */
  unsigned int Summe;
  Init ();
  switched = 0;									/* Kollisionserkennung auf 0 setzen */
  StartSwitch ();								/* Taster-Interrupt aktivieren */
  FrontLED(ON);
  LineData(data);							    /* Speichern von Helligkeitswert in data[0,1] */
  Summe = data[0]+data[1];						/* Summe der Werte beider Fototransistoren */
  
  
  while (1)
  {    
	if (switched == 1)							/* Wenn 1. Kollision, dann Rechtskurve 90° aus */
    {
      
	  Firstcol();
	  
	  for(i = 0; i < 25000; i++)				/* Setze Zeitschlaufe für 2. Kollision */
	  {
		if (switched == 1)						/* Wenn 2. Kollision, dann Drehung 180° */
		  {
		    Secondcol();
			
			for(i = 0; i < 25000; i++)			/* Setze Zeitschlaufe für dritte Kollision */
			 {
				if (switched == 1)				/* Wenn 3. Kollision, dann Linksdrehung 90° */
				 {
				   Thirdcol();
				 }

				else							/* Keine 3. Kollision, Fahre normal */
				 {
	  		       Fahren();
			     }  
					
					
			 }	
			
		  }	
		  
		else									/* Keine 2. Kollision, Fahre normal */
		 {
		   Fahren();
		 }    
		  
		  
	  }
	
		
		
	}
	
	else										/* gar keine Kollision, Fahre normal, Stopp bei Linie */
	{
	  LineData(data);
	  if(data[0]+data[1]+10 > Summe)			/* Untergrundhelligkeitsdifferenz feststellen */
	  {
	    Fahren();
	  }
	  else
	  {
	    Disco();								/* Party gut - Alles gut */
		while(1)
		{}										/* Endlosschleife - Ende des Programmes */
	  }  
    }  
  }
	
  return 0;	

}
danke für die ganze hilfe
lg