Wie lange kann ein _delay_ms();(AVR-GCC) maximal sein? Oder gibt es da keine Obergrenze?
Gast
#2097065
Guckst Du hier: http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html#gad22e7a36b80e2f917324dc43a425e9d3
Gast
#2097066
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
#2097069
The maximal possible delay is 262.14 ms / F_CPU in MHz. komisch! Bei mir hat das damals sehr gut funktioniert?
Gast
#2097076
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.
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...
Die Genauigkeit ist kein Problem, da würde ich eh Timer nehmen. Also kann ich ruhig mehrere Sekunden machen. Gut.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.