Nun ist es mal wieder so weit, ich brauche euro hilfe. Vornweg die Hilfe sollte schnell sein da ich an diesem Donnerstag meine GFS halten muss.

Ich habe jezt alle meine Codes verucht in eine Datei zu bekommen da man ja schlecht beim vortrag immer flashen kann. Nun habe ich aber das proplem damit dies nicht funktioniert. Ich hoffe ihr könnt mir helfen. Ich habe den code von der Kolision genommen um das "Menü" zu machen. Hier der Code:

Code:
#include "asuro.h" 


#define TRIGGERLEVEL 655
#define HYSTERESIS 10
#define LOW 0
#define HIGH 1


#define GESCHW   65


int main(void) 
{ 
   unsigned int z ,ll ,rr; 
   unsigned char taste1, taste2 ,taste3, taste4; 
   
    unsigned int data[2];
    signed int status[2]={0,0};
    signed int difference=0;
    
    MotorDir(FWD, FWD);
	
	
	int lData[2]; 
int i, donl, doffl, donr, doffr, l, r; 
	
   Init(); 
    
  
   while(1) 
   { 
      taste4=PollSwitch(); 
      taste2=PollSwitch(); 
     taste1=PollSwitch(); 
      taste3=PollSwitch();     
      if (taste1 && (taste1==taste2) && (taste3==taste4) && (taste1==taste3) && (taste1==taste4)) 
      { 
        ll=0; 
        rr=0; 
           if (taste1==1) {
		   //////////////////////////////////////////////
		   ///// Kolision
		   //////////////////////////////////////////////
		   
		   while(1) 
   { 
      taste4=PollSwitch(); 
      taste2=PollSwitch(); 
     taste1=PollSwitch(); 
      taste3=PollSwitch();     
      if (taste1 && (taste1==taste2) && (taste3==taste4) && (taste1==taste3) && (taste1==taste4)) 
      { 
        l=0; 
        r=0; 
           if (taste1==1) {l=120;r=0;} 
           if (taste1==2) {l=0;r=160;} 
           if (taste1==4) {l=0;r=120;} 
           if (taste1==8) {l=120;r=0;} 
           if (taste1==16) {l=160;r=0;} 
           if (taste1==32) {l=0;r=120;} 
         StatusLED(RED); 
         MotorDir(RWD,RWD); 
         MotorSpeed(l,r); 
       
         for(z=0;z<250;z++) 
         { 
            Sleep(255); 
         } 
      } 
      else 
      { 
         StatusLED(GREEN); 
         MotorDir(FWD,FWD); 
         MotorSpeed(120,120); 
      } 
      taste2=0; 
     taste1=0; 
   } 
   return 0; 
		   
		   
		   //////////////////////////////////////////////
		   ///// Kolision
		   //////////////////////////////////////////////
		   } 
           if (taste1==2) 
		   {
		   //////////////////////////////////////////////
		   ///// Odometer
		   //////////////////////////////////////////////
		   
		   while(1) {
        // Helligkeitswerte der Lichtschranken auslesen
        OdometrieData(data);
        // Wechsel linker Sensor von niedrig auf hoch?
        if ((status[0]==LOW) && (data[0]>TRIGGERLEVEL+HYSTERESIS)) {
            status[0]=HIGH;
            difference++;
        }
        // Wechsel linker Sensor von hoch auf niedrig?
        if ((status[0]==HIGH) && (data[0]<TRIGGERLEVEL-HYSTERESIS)) {
            status[0]=LOW;
            difference++;
        }
        // Wechsel rechter Sensor von niedrig auf hoch?
        if ((status[1]==LOW) && (data[1]>TRIGGERLEVEL+HYSTERESIS)) {
            status[1]=HIGH;
            difference--;
        }
        // Wechsel rechter Sensor von hoch auf niedrig?
        if ((status[1]==HIGH) && (data[1]<TRIGGERLEVEL-HYSTERESIS)) {
            status[1]=LOW;
            difference--;
        }
        // zur Sicherheit: verhindern, dass der Differenzz?ler
        // den erlaubten Wertebereich verl?st
        if (difference<-255) difference=-255;
        if (difference>255) difference=255;
        
        // Status-LED noch entsprechend der erkannten Segmente
        // aufleuchten lassen, grn fr links, rot fr rechts
        StatusLED(status[0]+status[1]*2);
        
        // Z?ldifferenz passend auf die Motoren verteilen
        if (difference>0) MotorSpeed(255-difference-50,255-50);
        else MotorSpeed(255-50,255+difference-50);
        
    }
    return 0;
		   
		   //////////////////////////////////////////////
		   ///// Odometer
		   //////////////////////////////////////////////
		   } 
           if (taste1==4) 
		   {
		   //////////////////////////////////////////////
		   ///// Linien
		   //////////////////////////////////////////////
		   
		   while(1) 
   { 
   FrontLED(OFF);      // Umgebungslicht filtern 
   Sleep(10);          // kurz warten bis LED aus 
   LineData(lData);      // 
   LineData(lData);      // 
   doffl = (lData[0]);   // 
   doffr = (lData[1]);   // 
   FrontLED(ON);      // 
   Sleep(10);         // kurz warten bis LED an 
   LineData(lData);      // 
   LineData(lData);      // 
   donl = (lData[0]);   // 
   donr = (lData[1]);   // 
   l = donl - doffl;   // 
   r = donr - doffr;   // r und l sind nun die werte von T9 und T10 mit gefiltertem Umgebungslicht 
   i = (l+r)/2; 

   if (l<r) // gegenlenken 
   { 
   MotorSpeed(GESCHW -i+68, GESCHW +i); 
   } 
   else 
   { 
   MotorSpeed(GESCHW +i+68, GESCHW -i); 
   }

   } 
   return 0; 
		   
		   //////////////////////////////////////////////
		   ///// linien
		   //////////////////////////////////////////////
		   } 
           if (taste1==8) {l=120;r=0;} 
           if (taste1==16) {l=160;r=0;} 
           if (taste1==32) {l=0;r=120;} 
         StatusLED(RED); 
        
      taste2=0; 
     taste1=0; 
 
} 
   return 0; 
} 
}
Naja wenn ihr mir nicht helfen könnt auch nicht so schlimm dan muss ich eben doch nebenher flashen.

Vielen Dank im Voraus!