Hi,

unsigned int data[2]
;unsigned char t1, t2; <- ich weis nicht warum aber ohne das ";" am anfang wurde mir ein error angezeigt
Ist klar, das ist das fehlende ; am Ende der oberen Zeile.
Code:
unsigned int data[2];
unsigned char t1, t2;
Die eine if Abfrage hat ja Valen schon nachgefragt - das gleiche Fragezeichen ergibt sich bei dem dazugehörigen else if Zweig.

Dieses
Code:
else if (t1 && t2 && t1 == t2)
erschließt sich mir auch nicht wirklich ...

Damit
Code:
MotorDir(RWD,RWD); /* auf der Stelle umdrehen */
MotorSpeed(150,150);
dreht er nicht auf der Stelle um sondern fährt einfach rückwärts.

Soweit erstmal. Ich würde das ganze erstmal in kleinen Stückchen probieren - also die einzelnen erwünschten Abläufe einzeln testen und mich erst dann, wenn sie funktionieren an die ganze ver"if"zerei machen.

Grüßle Bernd