Vielen Dank für den Hinweis! Den Programmcode habe ich folgendermaßen abgeändert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include "asuro.h" int main(void) { unsigned int i; unsigned int speed; Init(); FrontLED(ON); StatusLED(GREEN); MotorDir(FWD,FWD); for (speed = 0; speed < 0xFF; speed ++) { MotorSpeed(speed,speed); BackLED(ON,ON); // Verzoegerung for (i = 0; i < 0xFF; i++) { Sleep(10); } BackLED(OFF,OFF); } FrontLED(OFF); StatusLED(RED); MotorSpeed(0,0); MotorDir(RWD,RWD); for (speed = 0; speed < 0xFF; speed ++) { MotorSpeed(speed,speed); BackLED(ON,ON); // Verzoegerung for (i = 0; i < 0xFF; i++) { Sleep(10); } BackLED(OFF,OFF); } MotorSpeed(0,0); Sleep(255); StatusLED(GREEN); while(1); return 0; } |
D.h.: Nach jedem MotorSpeed() wird erstmal 2550 mal geschlafen. Damit hat der Asuro genügend Zeit, die Motoren anzusteueren. Das obige Programm lässt den Asuro zunächst mit ansteigender Geschwindigkeit vorwärts fahren und anschließend fährt er dann die gleiche Strecke wieder rückwärts.
Gruß und frohe Weihnachten Frank