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;
}
Lesezeichen