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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.