Wie lange kann ein _delay_ms(); maximal sein?

Gast #2097066
Lesenswert?

So viel ich weiss genausolange wie das maximum des übergabewertes ist, 
ich glaube double.

Ich glaube nur die ungenauigkeit nimmt mit steigenden Wertes zu, jedoch 
liegt sie im nicht relevanten prozentualen Bereich bei sehr großen 
Werten.

Wir hatten das mal mit 20s getestet, das hat sehr genau funktioniert, 
gemessen wurde das mit einem oszilloskop auf 5s triggerung.
Gast #2097076
Lesenswert?

Selbstverständlich gibt es da eine Obergrenze, sogar "mehrere" :)

Das Argument ist ein double Wert, daher gibt als maximale Obergrenze, 
was mit double noch darstellbar ist. Dabei muss man beachten, wie double 
beim AVR-GCC implementiert ist.

Praktisch gibt es eine weitere Obergrenze für die Genauigkeit, die 
oberhalb einer gewissen Schwelle erreicht wird:
http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html

Und das ist wiederum von der Versionsnummer der avr-libc abhängig. Also 
aufpassen, wenn eine ältere Version verwendet wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren