paulsenior
16.05.2009, 15:34
Hallo nochmal, ich habe mir folgendes Programm geschrieben:
#include <asuro.h>
void Msleep(int dauer)
{
int z;
for(z=0;z<dauer;z++) Sleep(72);
}
int main(void) {
unsigned int data[2]; //für Linienverfolgung
unsigned char taste;
Init();
while(1){
taste = PollSwitch(); //Pollswitch sind die Taster
if (taste>0)
{
MotorDir(RWD,RWD);
MotorSpeed(0,0);
FrontLED(OFF);
StatusLED(YELLOW);
//Msleep (3000);
}
else { //falls kein taster gedrück wird, oder wieder losgelassen wird, geht der motor wieder auf
MotorDir(FWD,FWD); // vorwärts mit Speed 200
MotorSpeed(200,200);
StatusLED(GREEN);
}
}
return 0;
}
Der Asuro soll also, wenn ein Taster gedrückt wird anhalten.
Das macht er auch wunderbar.
Jetzt soll er aber noch 3 Sekunden weiter warten, also die auskommentierte Zeile //Msleep (3000); benutzen.
Wenn ich diese nun aber wieder ins aktive Programm mit aufnehme, zucken die Räder alle 3 Sekunden kurz, und bleiben dann wieder 3 Sekunden stehen und immer so weiter.
Woran liegt das genau?
Dankeschön für die Hilfe :)
#include <asuro.h>
void Msleep(int dauer)
{
int z;
for(z=0;z<dauer;z++) Sleep(72);
}
int main(void) {
unsigned int data[2]; //für Linienverfolgung
unsigned char taste;
Init();
while(1){
taste = PollSwitch(); //Pollswitch sind die Taster
if (taste>0)
{
MotorDir(RWD,RWD);
MotorSpeed(0,0);
FrontLED(OFF);
StatusLED(YELLOW);
//Msleep (3000);
}
else { //falls kein taster gedrück wird, oder wieder losgelassen wird, geht der motor wieder auf
MotorDir(FWD,FWD); // vorwärts mit Speed 200
MotorSpeed(200,200);
StatusLED(GREEN);
}
}
return 0;
}
Der Asuro soll also, wenn ein Taster gedrückt wird anhalten.
Das macht er auch wunderbar.
Jetzt soll er aber noch 3 Sekunden weiter warten, also die auskommentierte Zeile //Msleep (3000); benutzen.
Wenn ich diese nun aber wieder ins aktive Programm mit aufnehme, zucken die Räder alle 3 Sekunden kurz, und bleiben dann wieder 3 Sekunden stehen und immer so weiter.
Woran liegt das genau?
Dankeschön für die Hilfe :)