Hallo Dakrat

Du must deine Funktion taster() im Hauptprogramm aufrufen:

Code:
int main(void) 
{ 
 Init(); 
 MotorDir(FWD,FWD); 
 MotorSpeed(140,140); 
 while(1) taster();
 return(0); 
}
In der while-Schleife damit die Funktion endlos aufgerufen wird. (return(0) darf er nie erreichen weil nicht definiert ist, wohin zurück er dann springen soll. Es gehört aber rein, weil main() eine Funktion mit Rückgabewert (int) ist und die Compliler das normalerweise erwarten.)

Dies

if(TASTER>0&&TASTER<8)

würde ich mit Klammern schreiben:

if((TASTER>0) && (TASTER<8))

(... und die Mehrfachabfrage von PollSwitch() halte ich nur für bedingt sinnvoll)

Sleep(255) dauert nur ein Zwinkern, besser mehrfach oder in einer Schleife aufrufen um merkbare Zeiten zu verzögern.

Das ist natürlich eine Quälerei für's Getriebe und als Dauerlösung nicht zu empfehlen:

MotorDir(RWD,RWD);
MotorSpeed(170,170);

Allerdings ist die ganze Kollisiongeschichte kritisch, weil der asuro jedesmal gegen das Hinderniss knallt, weil er nicht mehr rechtzeitig bremsen kann, wenn ein Taster gedrückt wird.

(TASTER würde ich klein schreiben, weil schonender für die Augen.)

Das war's mal was mir so auf Anhieb zu deinem ersten Programm einfällt. Sieht doch für den Anfang ganz gut aus, weiter so.

Gruß

mic