Code:
#include "asuro.h"

void erwarten(unsigned int male);		//Rufe Wartemodus ab
void collusion(unsigned int lang);		//Rufe Collusion ab

int main(void)
{
  Init();
//Ab hier beginnt Rolf zu "Leben" 
//Morgenmassage senden
  SerPrint("\r\nMuah... muss ich aufstehen?\r\n"); 

//Rolfs ablaufchema in eine unendliche schleife setzen
  while (1)
  {

//Rolf wartet erstmal ab
  erwarten(1);

//Rolf startet Kollusionsfahrt 
  collusion(10000);

//miau
  RWARD();
  Msleep(1000);
  STOP();
  }

//Rolfs durchdrehverhinderungsschleife
  while (1);
  return 0;
}

//Funktionen
//Rolf wartet auf etwas
void erwarten(unsigned int male) {
  unsigned int i; 
  for (i = 0; i <= male; i++)
  {
    Msleep(500);
    StatusLED(GREEN);
    Msleep(10);
    BackLED (OFF, ON);
    Msleep(500);
    StatusLED(OFF);
    Msleep(10);
    BackLED (ON, OFF);
    Msleep(500);
    BackLED (OFF, ON);
    Msleep(500);
    BackLED (ON, OFF);
	if (i == male) BackLED (OFF, OFF); //Schalte Alles ab wenn am ende
  }
}

//Rolf vorwaerts
void FWARD(void)
{
    FrontLED(ON);		//Kuendige Anfahren an
    Msleep(300);
    FrontLED(OFF);
    Msleep(150);
    FrontLED(ON);
    Msleep(300);
    FrontLED(OFF);
    MotorDir(FWD,RWD); 		//Beide Motoren vorwaerts
    MotorSpeed(150,150);	//Los gehts
}

//Rolf rueckwaerts
void RWARD(void)
{
    MotorDir(RWD,FWD);		//Beide Motoren rueckwearts
    MotorSpeed(120,120);	//Los gehts
}

//Rolf rueckwaerts links
void RWDL(void)
{
    MotorDir(RWD,FWD);		//Beide Motoren rueckwearts
    MotorSpeed(120,0);		//Los gehts
}

//Rolf rueckwaerts rechts
void RWDR(void)
{
    MotorDir(RWD,FWD);		//Beide Motoren rueckwearts
    MotorSpeed(0,120);		//Los gehts
}

//Rolf stoppen
void STOP(void)
{
    MotorSpeed(0,0);
    FrontLED(OFF);
}

//Rolf kollusionsprogramm
void collusion(unsigned int lang)
{
	unsigned long zeit = 0;
	unsigned long startzeit = Gettime();
	unsigned char t1;
	unsigned char t2;

  while (zeit < (startzeit+lang)) //Fahre so lange wie zeit gegeben ist
  {
	t1 = PollSwitch();
	t2 = PollSwitch();

		if (t1 == 0 && t2 == 0)	//Keine Taste gedrueckt, Rolf feahrt vorwaerts
		    {
			FWARD();          	//Auf gehts
		    }
		else if (t1 && t2 && t1 == t2)
		    {
		        STOP();			//Stoppen
		      if (t1 & 0x07)		//Linke tasten beruehrt
		      {
		        RWDL();			//LinksRueckwaerts ausweichen
			SerPrint("\r\n     Hab links was beruehrt, weiche aus...\r\n"); 
		      }
		      if (t1 & 0x38)		//Rechte tasten beruehrt
		      {
		        RWDR();			//RechtsRueckwearts ausweichen
			SerPrint("\r\n     Hab rechts was beruehrt, weiche aus...\r\n"); 
		      }
		      Msleep(1000);       	//Eine Sekunde rueckwarts fahren
		    }
	zeit = Gettime();

	SerPrint("\r\nWiederhohle Schleife fuer Collisionsfahrt\r\n"); 
	PrintLong(zeit);
  }
	STOP();
	SerPrint("\r\nVerlasse Collisionsschleife.\r\n"); 
}
So ich habe die änderungen vorgenommen... teilweise funktioniert es... nur teilweise spinnt er wieder völlig, schaltet sich manchmal sogar ab, oder startet einfach von neu. Ich hab wirklich keine ahnung ^^ warum er so ein eigenleben entwickelt ^^ ist ja auch irgendwie beabsichtigt, nur irgendwie kontrollierter ^^