PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen für Anfänger



Dr. Schraubstock
05.10.2009, 21:47
Juhu!!!


Wie muss ich die Funktion Sleep in mein Programm einbauen, dass es auch funktion =)?????

Beispiel:

#include "asuro.h"

int main(void)
{

Init();

BackLED(ON,ON);
Msleep(10000); //"Msleep" oder nur "Sleep"?
BackLED(OFF,OFF);
Msleep(10000);
BackLED(ON,ON);


while(1);
return 0;
}

radbruch
05.10.2009, 22:06
Hallo,

willkommen im RN-Forum.

Die orginale Version der asuro-Library kennt die Funktion Msleep() noch nicht. Hier muss man also Sleep() verwenden. Da der Timer damals noch mit 72kHz lief, dauert ein Sleep() 1/72000 Sekunde, ein Sleep(72) entsprechend 0,001 Sekunde. Ein Programm das die BackLEDs im Sekundentakt endlos ein- und ausschaltet könnte z.B. so aussehen:


#include "asuro.h"

int main(void)
{
int i;
Init();

while(1)
{
BackLED(ON,ON);
for(i=0; i<1000; i++) Sleep(72); // Sleep(72) dauert 0,001 Sekunden
BackLED(OFF,OFF);
for(i=0; i<1000; i++) Sleep(72);
}
return 0; // Diese Zeile wird nie erreicht
}

Programme sollte man hier in Code-Tags einschliessen, Einrückungen erhöhen die Lesbarkeit des Programms. Außerdem hat das RN-Forum einen asuro-Bereich:

https://www.roboternetz.de/phpBB2/viewforum.php?f=44

Gruß

mic

tach810i
05.10.2009, 22:51
So ist es einfacher. Msleep ist nämlich in der ASURO Bibliothek (asuro.h) definiert. (Parameter entspricht Millisekunden!)


#include "asuro.h"

int main(void)
{
Init();

while(1)
{
BackLED(ON,ON);
Msleep(1000);
BackLED(OFF,OFF);
Msleep(1000);
}
return 0; // Diese Zeile wird nie erreicht
}

mfg
Tach810i

Dr. Schraubstock
06.10.2009, 12:56
Danke schön für eure Antworten!

Werde es nachher mal ausprobieren... und dann berichten, ob es geklappt hat.

Dr. Schraubstock
06.10.2009, 14:48
Die erste Variante hat funktioniert. Danke..... :)