www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie lange kann ein _delay_ms(); maximal sein?


Autor: Sebastian D. (--sebi--) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie lange kann ein _delay_ms();(AVR-GCC) maximal sein? Oder gibt es da 
keine Obergrenze?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
The maximal possible delay is 262.14 ms / F_CPU in MHz.

komisch! Bei mir hat das damals sehr gut funktioniert?

Autor: Serieller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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__...

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

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias schrieb:
> The maximal possible delay is 262.14 ms / F_CPU in MHz.
>
> komisch! Bei mir hat das damals sehr gut funktioniert?

nächste Zeile lesen...

Autor: Sebastian D. (--sebi--) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Genauigkeit ist kein Problem, da würde ich eh Timer nehmen. Also 
kann ich ruhig mehrere Sekunden machen. Gut.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.