@Kampi
Ich meine das was mir ePyx vorgeschlagen hat eine Schleife.
@ePyx
Ich muss es so einbauen, dass es Sinn ergibt, oder?![]()
@Kampi
Ich meine das was mir ePyx vorgeschlagen hat eine Schleife.
@ePyx
Ich muss es so einbauen, dass es Sinn ergibt, oder?![]()
Ist die Frage, was du vor hast. Unter der Voraussetzung das du einen C-Compiler verwendest, kannst du die Funktion einfach kopieren und fertig.
Anstatt Sleep ( wert ) rufst du dann sleep_gross ( wert ) auf. Ist vollkommen Schnuppe. Erst wenn Wert >= 255 macht Sleep keinen Sinn mehr, da Wertebereich überschritten.
Dann macht sleep_gross mehr Sinn.
Grüße,
Daniel
Ich meine das ich den Wertbereich vergrößern kann oder durch eine schleife verlängern kann.![]()
Du verlängerst den durch die Schleife.
Da du einen 16-Bit Wert in die Funktion rein übergibst und mit diesem Wert dann eine For-Schleife aufgerufen wird kannst du mit diesem Befehl bis zu 65536x den Befehl Sleep(1) wiederholen.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Du kannst natürlich auch uint16_t gegen uint32_t tauschen. Das sind dann 2^32-1 Durchläufe. Aber so etwas macht keinen Sinn mehr.
Grüße,
Daniel
Und der Wert gibt dann an, wie oft er wiederholen soll, oder?
Wie soll ich das dann einbauen? Einfach kopieren und in die Klammern einbauen?
Ich mein so:
#include "asuro.h"
? auch int main(void) ?
oder wie?
Genau.
Mit:
wird eine For-Schleife erzeugt die den Schleifeninhalt solange wiederholt wie die Bedingung "time < wert" wahr ist. Und durch "time++" wird gesagt das der Wert "time" bei jedem Schleifendurchlauf um 1 erhöht werden soll. Und durch "time = 0" wird gesagt das die Schleife bei 0 anfangen soll zu zählen.Code:for ( time = 0; time < wert; time++)
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo
Sleep() berechnet beim asuro seine Wartezeiten mit der 72kHz-Frequenz des Timer 2. Deshalb dauert Sleep(72) eine 1/1000 Sekunde bzw. eine Millisekunde:
(ungetestet)Code:#include "asuro.h" unsigned int i; int main(void) { Init(); while(1) { for(i=0; i<1000; i++) Sleep(72); // 1 Sekunde StatusLED(YELLOW); for(i=0; i<500; i++) Sleep(72); // 1/2 Sekunde StatusLED(RED); for(i=0; i<500; i++) Sleep(72); StatusLED(OFF); for(i=0; i<1000; i++) Sleep(72); StatusLED(GREEN); } return 0; }
Die aktuelleren Libs verwenden 36kHz, hier dauert dann Sleep(36) 1ms.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen