Code:
#include "asuro.h" 

int main(void) 
{ 
   Init(); 
   int zeit; 
   unsigned char taste; 
   MotorDir(FWD,FWD); 
   MotorSpeed(120,124); 
   StatusLED(GREEN); 
   FrontLED(ON); 
   while (1){ 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   if (taste==1 || taste==2 || taste==4) 
   { 
   MotorSpeed(0,0); 
   StatusLED(RED); 
   BackLED(ON,ON); 
   MotorDir(RWD,RWD); 
   MotorSpeed(150,151); 
   for(zeit=0;zeit<1000;zeit++){        
    Sleep(72);} 
   BackLED(OFF,OFF); 
   StatusLED(GREEN); 
   MotorDir(FWD,FWD); 
   MotorSpeed(0,180); 
   for (zeit=0; zeit<500; zeit++){ 
   Sleep(72);} 
   MotorSpeed(120,121); 
   for(zeit=0;zeit<500;zeit++){        
    Sleep(72);} 
   BackLED(OFF,OFF); 
   StatusLED(GREEN); 
   MotorDir(FWD,FWD); 
   MotorSpeed(180,0); 
   for (zeit=0; zeit<500; zeit++){ 
   Sleep(72);} 
   MotorSpeed(120,121); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   
   } 
   else if (taste==8 || taste==16 || taste==32) 
   { 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   taste=PollSwitch(); 
   MotorSpeed(0,0); 
   StatusLED(RED); 
   BackLED(ON,ON); 
   MotorDir(RWD,RWD); 
   MotorSpeed(150,152); 
   for(zeit=0;zeit<1000;zeit++){        
    Sleep(72);} 
   BackLED(OFF,OFF); 
   StatusLED(GREEN); 
   MotorDir(FWD,FWD); 
   MotorSpeed(180,0); 
   for (zeit=0; zeit<500; zeit++){ 
   Sleep(72);} 
   MotorSpeed(120,122); 
   for(zeit=0;zeit<500;zeit++){        
    Sleep(72);} 
   BackLED(OFF,OFF); 
   StatusLED(GREEN); 
   MotorDir(FWD,FWD); 
   MotorSpeed(0,180); 
   for (zeit=0; zeit<500; zeit++){ 
   Sleep(72);} 
   MotorSpeed(120,122); 
   } 
   } 
   return(0); 
}

Versuch einmal PollSwitch() 2x auszulesen, wegen dem C7 Kondensator.
Meinst du das in etwa so?