Wie lange kann ein _delay_ms();(AVR-GCC) maximal sein? Oder gibt es da keine Obergrenze?
Guckst Du hier: http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html#gad22e7a36b80e2f917324dc43a425e9d3
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.
The maximal possible delay is 262.14 ms / F_CPU in MHz. komisch! Bei mir hat das damals sehr gut funktioniert?
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.