Hallo Leute

Ich habe ein ziemlich merkwürdiges Problem mit meinem Asuro. Er scheint es mit Fahrbefehlen nicht mehr sehr genau zu nehemen. Nach langem Suchen habe ich den Code auf dieses winzige Schnippsel zusammengestaucht:

Code:
#include "asuro.h"

unsigned char SPEED_LEFT=255, SPEED_RIGHT=255; 
int TIME_FORD=500, TIME_TURN=500;


void LongSleep(int msec)
{
	int i;
	for (i=0; i<msec; i++) Sleep(72);
}


int main(void)
{	
	Init();
	StatusLED(RED);
	
   	while(1)
   	{
		MotorDir(RWD,FWD); // vorwärtsfahren, motoren sind vertauscht, daher RWD...
		MotorSpeed (SPEED_LEFT,SPEED_RIGHT);
		LongSleep(3000);
		MotorSpeed (BREAK,BREAK);
		LongSleep(3000);
	}     
	return 0;
}
Soweit ich das verstehe, sollte der Roboter alternierend 3s fahren und dann 3s stehen. Das tut er aber nur manchmal. Er haltet immer den 3s Takt ein, aber manchmal machen die Motoren überhaupt nichts und manchmal funktioniert alles. An den Batterien kann es nicht liegen, da der Asuro extern gespiesen wird. Ein Hardwaremangel ist auch unwahrscheinlich, da der Selftest zuverlässig funktioniert.
Ich bin mit meinem Latein am Ende, hat irgendwer eine Idee?

Ich wäre für Anregungen sehr dankbar
Illuminon