Naja, du nimmst einfach die neue Asurolib von Wenk und co...
Da gibt es die Msleep(zeitangabe in millisekunden)...
Hallo. Ich hab mal eine Frage. Meinen Asuro hab ich noch nicht zusammengebaut aber ich programmiere shcon fleissig, da ich schon Vorkentnisse in C hab.
ich möchte eine Verzögerung haben. vor eine Wand fahren... dann 2-3 sek warten, dann zurückfahren.
Verzögerungen gehen ja mit sleep. Aber es sind nur Übergabeparameter bis 256 möglich. dann wartet er längstens einige Millisekunden..
Ist es zweckmäßig sleep in eine for-schleife zu in tegrieren und diese dann z.B. 50 mal laufen zu lassen - oder geht es noch eleganter ???
Naja, du nimmst einfach die neue Asurolib von Wenk und co...
Da gibt es die Msleep(zeitangabe in millisekunden)...
du kannst aber auch eine eigene Methode schreiben wo du das umrechnest und dann kannst du deine eigene methode verwenden ist ein tolles erfolgserlebnis wenns dann funktioniert ^^
ich hab das grad für mich geschrieben. ich zähle auch zu den anfängern aber solche programme bauen auf ^^
und die funktion Sleep funktioniert so :
Sleep(x) = x / 72kHz [sec.]
also wenn du Sleep(72) nimmst und das 1000 mal wiederholen lässt kriegst du genau eine sekunde raus
hab schon ne Idee :
Funktion definieren (pause) :
int pause(void)
{
for(a=0;a<=1000;a++)
{
sleep(72);
}
}
Jetz muss ich einfach nur im Programm schreiben
pause() ;
und schon hab ich ne pause *gggg*
kann man auch gut zum blinken verwenden
blinken() ;
dann natürlich noch die backLED-Befehle rein..
wäre es nicht schöner wenn du selbst sagen könntest wie lange er "sleepen" soll?
int pause(zeit)
{
for(a=0;a<=zeit;a++)
{
sleep(72);
}
}
Stell dir vor es ist krieg - und keiner geht hin.
Gewinner des Roboterwettbewerbs "Zukunft durch Innovation" des Bundeslandes NRW in Aachen.
außerdem ist das ja unpraktisch wenn der immer wieder die schleife macht, errechne doch einfach den Sleep wert, dann hast du nicht die schleife...
Stell dir vor es ist krieg - und keiner geht hin.
Gewinner des Roboterwettbewerbs "Zukunft durch Innovation" des Bundeslandes NRW in Aachen.
ja, kann ich wohl errechnen.. aber
soweit ich weiß ist der höchste wert, den ich übergeben kann
sleep(255)
dann hab ich gerade mal 3 ms
zu wenig
stimmt, 255 ist das maximale...
Stell dir vor es ist krieg - und keiner geht hin.
Gewinner des Roboterwettbewerbs "Zukunft durch Innovation" des Bundeslandes NRW in Aachen.
Bitteschön (In meiner C++ Umgebung läuft es, sollte auch in C laufen)
Code://Deklaration der Funktionen void Schlafen(long milliseconds); int d2i(double d); // Double --> Integer void main() { Schlafen(1337); //Funktionsaufruf } void Schlafen(long milliseconds) { long i; //Wiederholungs-variable long rest; //Was bei der Division übrig bleibt i = d2i(milliseconds / 250); rest = milliseconds - d2i(milliseconds / 250 )*250; { int a; for(a=1;a<=i;a++) { sleep(250); } } if(rest!=0){sleep(rest)}; } int d2i(double d) { return d; }
also ehrlich gesagt finde ich das hier besser
int pause(zeit)
{
for(a=0;a<=1000 zeit;a++)
{
sleep(72);
}
}
(funktion natürlich im kopf als Prototypen deklarieren)
Lesezeichen