Hallo

Ich habe deinen Beitrag in einen neuen Thread verschoben und dein Programm etwas umgestellt:

Code:
#include "asuro.h"

unsigned int data[2]; //Speicher bereitstellen
unsigned char t1, t2;

/* Motor vorwärts */
void MotorFwd(void)
{
	MotorDir(FWD,FWD);
	MotorSpeed(150,150);
}

/* Motor rückwärts */
void MotorRwd(void)
{
	MotorDir(RWD,RWD);
	MotorSpeed(160,150);
}

/* Motor rückwärts Links */
void MotorRwdL(void)
{
	MotorDir(RWD,FWD);
	MotorSpeed(150,140);
}

/* Motor rückwärts Rechts */
void MotorRwdR(void)
{
	MotorDir(FWD,RWD);
	MotorSpeed(140,150);
}

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

int main(void)
{
	Init();
	StatusLED(RED);
	SerWrite("HALLO-Los geht´s!!!\n\r",21);
	FrontLED(ON); // Linienbeleuchtung einschalten
	MotorDir(FWD,FWD); // Beide Motoren auf vorwärts
	while(1)
	{
		// Endlosschleife, ASURO soll beliebig lang einer Linie nachfahren
		LineData(data); // aktuelle Helligkeitswerte der Fototransistoren einlesen
		if (data[0] > data[1] ) // links heller als rechts...
		{MotorSpeed(200,150);}	// ... dann links mehr Gas geben...
		else
		{MotorSpeed(150,200);}	// ... sonst rechts mehr Gas geben!

		t1 = PollSwitch();
		t2 = PollSwitch();
		if((t1 == 0) && (t2 == 0))         /* keine Taste */
		{
			MotorFwd();          /* vorwärts fahren */
			FrontLED(ON);
			BackLED(OFF,OFF);
		}
		else if (t1 && (t1 == t2))
		{
			MotorStop();
			Msleep(300);
			if(t1 & 0x07) /* Tasten links gedrückt? 0b00000111 */
			{
				MotorRwdL();       /* Rückwärtskurve links fahren */
				FrontLED(OFF);
				BackLED(ON,OFF);
			}
			if (t1 & 0x38) /* Tasten rechts gedrückt? 0b00111000*/
			{
				MotorRwdR();       /* Rückwärtskurve rechts fahren */
				FrontLED(OFF);
				BackLED(OFF,ON);
			}
			Msleep(1000);        /* 1 Sekunde fahren */
		}
  	}
	return 0;
}
Ich habe es aber nicht getestet.

Gruß

mic