PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann ich einen befehl bei asuro stoppen?



robohero
19.10.2007, 15:17
ich habe mir einen asuro gekauft. mit selbsttest usw. hat alles funktioniert und ich habe schon meine ersten programme geschrieben
nun soll es etwas anspruchvolleres nächstes programm geben
dafür bräuchte ich aber einen befehl, dass der asuro nach z.b. 10cm oder 10 sec aufhört geradeaus zu fahren.
habe nun die anleitung + mehr spass mit asuro schon 3-mal durchgelesen und andere c und c++ bücher gewälzt doch eine lösung noch nicht gefunden wer kann mir helfen??

Lunarman
19.10.2007, 16:39
o.O einfach den Motor ausschalten??? Richtig stoppen kannst du einen Befehl nicht, du kannst nur einen Befehl geben, der ihn aufhebt.

robohero
19.10.2007, 16:58
und wie gehts das?
mit zeitspanne zwischendrin!

Lunarman
19.10.2007, 17:09
Ich kapier dein problem gar nicht... du misst die Zeit mit nem Timer, sobald der gewünschte Wert erreicht ist, schaltest du die Motoren aus *???*

robohero
19.10.2007, 17:24
ja was is nen timer?
hier ein bsp. um das ganze zu konkretisieren
in dem programm soll bei start die lampe leuchten und nach 10 sec auf eine andere farbe umschalten. was muss in die lehrzeile für ein befehl?
und wie benutzt man den?
#include "asuro.h"

int main(void)
{
Init();
void wait(int w);
StatusLED(RED);



StatusLED(GREEN);
while(1);
return 0;
}

Lunarman
19.10.2007, 18:12
Timer => Google. leider kann ichs dir nicht erklären.
Wie du die Funktion stoppst hast du jetzt ja schon...

liggi
19.10.2007, 18:32
Wenn du die Asuro Lib aus dem Forum benutzt:


int main(void)
{
Init();
void wait(int w);
StatusLED(RED);
Msleep(10000);
StatusLED(GREEN);
while(1);
return 0;
}


Sonst musst du das Msleep durch das normale Sleep ersetzen. Dann must du dir die Dauer selbst ausrechnen (steht in der Anleitung wie).

mfg liggi

robohero
19.10.2007, 19:43
ich benutze noch kein asurolib
in der Anleitung gibt es eine funktion void sleep, die keinen wert über 255(weil unsigned char) sein kann
das bedeutet das die verzögerung unter einer sec ist.
wie löse ich das problem da ich eigentlich 10 sec wollte?
oder soll ich einfach asurolib downloaden?

liggi
19.10.2007, 20:20
ohne die Asuro Lib musst du Sleep in eine for-Schleife einbinden. Aber ich würde die Lib downloaden, da sie noch mehr nützliche Funktion beinhaltet.

mfg liggi

robohero
20.10.2007, 11:40
wo gibts die lib?
wie wendet man das an?

mfg robohero

liggi
20.10.2007, 18:17
Es gibt ein extra Themen hier ist eins:

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=33149&highlight=

mfg liggi

damaltor
21.10.2007, 19:35
...oder du legst eine schleife um die Sleep()-Funktion. wie das Geht steht ganz gut in der Anleitung beschrieben... dann wird die sleep funktion mehrfach hintereinander ausgeführt, und so wird die wartezeit verlängert.