Nein, die MotorDir und MotorSpeed mussen im vorne von dem for(i=0;i<300;i++) und for(i=0;i<1000;i++) geschrieben werden. In deine code wird das 300 mal und 1000 wieder neu eingestellt. Das tut kein weh, aber nur einmal reichts.
Code:#include "asuro.h" int main(void) { Init(); unsigned char taste; int i; StatusLED(OFF); MotorDir(FWD,FWD); while(1){ taste=PollSwitch(); if(taste>0){ MotorDir(RWD,RWD); /* nur ein mal drehrichtung einstellen */ MotorSpeed(100,100); /* nur ein mal geschwindigkeit einstellen */ for(i=0;i<300;i++){ /* 300 mal ... */ Sleep(10); } /* ... 10/36000 sekunden warten */ /* 3000/36000=1/12 sekunde später nach die letzte Motorspeed */ MotorDir(BREAK,RWD); /* nur ein mal drehrichtung einstellen */ MotorSpeed(0,125); /* nur ein mal geschwindigkeit einstellen */ for(i=0;i<1000;i++){ /* 1000 mal ... */ Sleep(10); } /* ... 10/36000 sekunden warten */ /* 10000/36000 = 1/3.6 sekunden später nach die letzte MotorSpeed(0,125) */ StatusLED(RED); } /* ende if: irgend einer 'taster' bemerkt */ else { MotorDir(FWD,FWD); MotorSpeed(200,200); } /* ende else: kein taster */ } /* ende while(1), sollte er nicht passieren */ return 0; }







Zitieren

Lesezeichen