Hallo

Wenn die Drehrichtungen der Motoren bei voller Fahrt geändert werden, ist ihre Stromaufnahme sehr groß. Vielleicht bricht dabei die Bordspannung ein oder Störimpulse irritieren den Prozessor. Besser wäre die Verwendung einer Bremsrampe:
Code:
#include "asuro.h"

void Motor(unsigned char richtung, unsigned char geschwindigkeit, unsigned int dauer)
{
	if(geschwindigkeit) StatusLED(YELLOW); else StatusLED(RED);
	MotorDir(richtung,richtung);
	MotorSpeed(geschwindigkeit,geschwindigkeit);
	while(dauer--) Sleep(72); // 36 bei neueren Libraries für 1ms ;)
}

int main(void)
{
	Init();
   while(1)
   {
      Motor(FWD,200,1000);	// Vorwärts mit Speed 200 während einer Sekunde
      Motor(BREAK,0,100);	// Bremsen mit Speed 0 während 0,1 Sekunden
      Motor(RWD,200,1000);	// Rückwärts mit Speed 200 während einer Sekunde
      Motor(BREAK,0,100);	// Bremsen mit Speed 0 während 0,1 Sekunden
   }
   return(0);
}
(nicht getestet)

Die Bremszeit sollte so groß sein, dass man beim Vorwärts-/Rückwärtspendeln einen kurzen Stillstand erahnen kann.

Ich hoffe, das ist der richtige Ansatz.

Gruß

mic