PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Msleep legt Asuro lahm



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 :)

radbruch
16.05.2009, 16:01
PollSwitch() lügt gelegentlich:


taste1 = PollSwitch(); //Pollswitch sind die Taster
taste2 = PollSwitch();
if ((taste1>0) && (taste1==taste2))


https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=36760
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=38949
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=374015#374015
...

paulsenior
16.05.2009, 16:24
Hi,
Funktionuiert,
Vielen Dank!
\:D/
Er dreht zwar ab und zu 2-3x bevor er wieder geradeaus fährt, das ist aber erstmal nicht schlimm.