Hallo!
Für ein Schulprojekt sollte mein Asuro eine Linie verfolgen und mithilfe der Taster Hindernisen ausweichen, je nachdem welche Taster betätigt werden.

Leider will das Programm nicht so wie ich.

Könnte jemand vllt. mit dem geschulten Auge einen Blick drauf werfen und den Fehler finden?
Der Asuro verfolgt nur die Linie, auf Taster gibt es keine Reaktion.

Ich sitze schon seit 2 Tagen an dem und bin ratlos.
Danke euch sehr im Voraus!!

Code:
#include "asuro.h"
#include "myasuro.h"


#define FULL_L 200
#define FULL_R 200


/*************************************************************************** 
*
*   unsigned int data[2]; = Speicher fur Liniensensor reservieren
*
*   data[0] = linker Sensor, data[1] = rechter Sensor
****************************************************************************/



//DEFINITIONEN FUER TEILPROGRAMM DER TASTER


/* Motor vorwдrts */
void MotorFwd(void)
{
  MotorDir(FWD,FWD);
  MotorSpeed(FULL_L,FULL_R);
}

/* Motor rьckwдrts */
void MotorRwd(void)
{
  MotorDir(RWD,RWD);
  MotorSpeed(FULL_L,FULL_R);
}

/* Motor rьckwдrts Links */
void MotorRwdL(void)
{
  MotorDir(RWD,RWD);
  MotorSpeed(FULL_L,0);
}

/* Motor rьckwдrts Rechts */
void MotorRwdR(void)
{
  MotorDir(RWD,RWD);
  MotorSpeed(0, FULL_R);
}

/* Motor stop */
void MotorStop(void)
{
  MotorSpeed(0,0);
}


//ENDE DER DEFINITIONEN





void FollowLine (void)          //FollowLine wird erklдrt bzw. definiert

{
   unsigned int data[2];       //Speicher fuer Liniensensor reservieren
   Init();
   FrontLED(ON);
   MotorDir(FWD,FWD);
 
   while(1)
   
   {
   {
   
   if
   
   (PollSwitch()<=0) 
   LineData(data);            //Liniensensor auslesen
      
   if(data[0]>data[1])       //Wenn links heller als rechts
   
   {
   MotorSpeed(150,30);       //dann links schneller als rechts
   }
   
   else                      //ansonsten
  
   {
   MotorSpeed(30,150);      //rechts schneller als links
   }
}
}    
}
   





int main(void)


{
  unsigned char t1, t2;
  Init();
  EncoderInit ();
  
  
  while (1)
  {
   
   if 
   (PollSwitch()>=0);  
   
   {
	t1 = PollSwitch();  			 //Taster zweimal abfragen
    t2 = PollSwitch();
   } 
	
	{
	
	  if (t1 == 0 && t2 == 0)         /* keine Taste gedrueckt*/
   
      {
      FollowLine();                  //Linie folgen (Programm von oben ausfuehren) 
	  FrontLED(ON);
      BackLED(OFF,OFF);
      }
    
	
	  else if ( (t1 != 0) && (t2 != 0) && (t1 == t2))   //sonst wenn Tasten ungleich null
      {
      MotorStop();                   //Motor anhalten. WELCHE TASTEN gedrueckt? 3 Moeglichkeiten:
      
	  
	  
	  
	  
	  
	  if ( t1 == 0x12)               //0x12, also tasten vorne gedrьckt?
	  	  
	  {	  
	  Go(-10,100);                   // dann: 10cm nach hinten; geschw 100
	  BackLED(ON,OFF);				 // mit eingeschalteten hinteren LEDs
	  }
	  
	  
	  
	  
	  if ((t1 & 0x07) > 0 )          /* Tasten links gedrьckt? */
      	  
	  {       
      Turn (-90, 150);               // dann: rechts um 90 grad geschw 150
      FrontLED(OFF);
      BackLED(ON,OFF);
      }
	  
	  
	  
	  
	  
      if (t1 & 0x30)                   /* Tasten rechts gedrьckt? */
      {
	  Turn (90, 150);                // links um 90 grad geschw 150
      FrontLED(OFF);
      BackLED(OFF,ON);
      }
      
	  
	  
	  Msleep(1000);                    /* 1 Sekunde warten */
    }
  }
  }
  return 0;
}