Hallo, ich habe folgendes Problem. Ich habe bislang immer mit WinAVR programmiert. Jetzt habe ich ein Programm mal mit AVRStudio compiliert und festgestellt das die delay_ms() funktion nicht mehr funktionieren. Woran liegt das? MfG Andreas
Andreas S. schrieb: > festgestellt das die delay_ms() funktion nicht mehr funktionieren. und was heist das genau?
Hi, beispiel delay_ms(1000); War vorher eine Wartezeit von 1000ms an der stelle. (WinAVR) Jetzt Wartezeit 0ms(AVRStudio6)
Andreas S. schrieb: > beispiel > delay_ms(1000); > War vorher eine Wartezeit von 1000ms an der stelle. (WinAVR) > Jetzt Wartezeit 0ms(AVRStudio6) kann eigentlich nicht sein, wenn es länger ist dann würde die Optimierung ausgeschaltet sein. Sicher das du die offizielle delay funktion verwendest und nicht selber geschriebenes?
- Optimierung auf -Os stellen - Nur konstante Werte als Parameter für _delay_ms() verwenden - Korrekten Wert für F_CPU einstellen
Frank M. schrieb: > - Optimierung auf -Os stellen > - Nur konstante Werte als Parameter für _delay_ms() verwenden all das würde aber nicht dazu führen des es kürzer dauert, sonder es würde immer länger dauern.
Peter II schrieb: > all das würde aber nicht dazu führen des es kürzer dauert, sonder es > würde immer länger dauern. Ich hatte nachträglich noch einen Punkt hinzugefügt: - Korrekten Wert für F_CPU einstellen Desweiteren soll der TO mal schauen, ob und welche Warnungen der Compiler ausgibt.
Hallo, alles klar !! *ICHDOOF es stand zuvor im Makefile !! AVRStudio verwendet kein Makefile !!! Und da ich folgendes in meinem Code stehen habe #ifndef F_CPU #define F_CPU 2000000UL #endif kam es dazu, das die falsche frequenz genommen wurde und keine Fehlermeldung ausgegeben wurde. Vielen Dank für Eure Bemühungen.
Andreas S. schrieb: > #ifndef F_CPU > #define F_CPU 2000000UL > #endif Diese "Lösungen" sieht man öfters und sind leider - wie auch in Deinem Fall - der größte Mist. Besser ist: #ifndef F_CPU #error F_CPU not defined. #endif Dann weiß man auch direkt, was hier fehlt.
Sorry, kleine Korrektur: <util/delay.h> muss inkludiert werden. Der Rest meiner vorschnellen Antwort sollte stimmen.
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.