Hallo

Um den Zähler beim Zurückfahren auch zu beachten muss er im else-Zweig sein. Also nicht so:

else
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(100,200);
} // Ende else
for(zaehler=0; zaehler < 800; zaehler++)
{
Sleep(255);
}

sondern so:

else
{
StatusLED (YELLOW);
MotorDir(RWD,RWD);
MotorSpeed(100,200);
for(zaehler=0; zaehler < 800; zaehler++)
{
Sleep(255);
}
} // Ende else

Trotz der Änderung wird dein asuro vermutlich endlos zurückfahren weil die Abfrage von PollSwitch() auf "gleich 0" wegen Brumm-Störungen nicht zuverlässig funktioniert. Drehe die Abfrage um und prüfe auf PollSwitch() " gleich 1" bzw. 2, 16 oder 32 (jeweils die äußeren zwei Taster) und fahre bei erkanntem Wert zurück, sonst fahre vorwärts. (Beispiel)

Gruß

mic