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;
   if (taste==1 || taste==2 || taste==4) 
   { 
   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,124); 
   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,121); 
   } 
   else if (taste==8 || taste==16 || taste==32) 
   { 
   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(0,180); 
   for (zeit=0; zeit<500; zeit++){ 
   Sleep(72);} 
   MotorSpeed(120,124); 
   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); 
   } 
   } 
   while(1); 
   return(0); 
}
Das Problem wird sein, dass du am Anfang zwar PollSwitch aufrufst, aber da wahrscheinlich noch kein Taster betätigt ist. Wenn er in die while Schleife kommt, wird der Wert von Taste nicht wieder aktualisiert. Das heißt er kommt weder in den if noch in den else if Zweig. Was mich wundert, ist allerdings warum er nicht losfährt, denn das machst du ja schon am Anfang.
Also ich habe das jetzt so gemacht, wie ihr geschrieben habt, der Erfolg ist schon mal: Er fährt.

Aber sonst passiert nichts hier noch mal der Code von dem Ursprungsprogramm, nachdem habt ihr ja gefragt.

Code:
#include "asuro.h"

int main(void)
{
	Init();
	int zeit;
	MotorDir(FWD,FWD);
	MotorSpeed(120,124);
	StatusLED(GREEN);
	FrontLED(ON);
	while (1){
	while (PollSwitch()==0) {
	SerWrite("Hallo",5);
	}
	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(0,180);
	for (zeit=0; zeit<500; zeit++){
	Sleep(72);}
	MotorSpeed(120,124); 
	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); 
	}
}