Werbung
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
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
![]()
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Was soll damit sein ? Kannst sie verwenden, vergessen....etc.
Grüße,
Daniel
Lesezeichen