Hi Leutz, Für alle, die noch suchen: nach einigem rumdoktorn und ausprobieren hier eine Möglichkeit, das delay_ms() aus CVAVR auch im WinAVR verwenden zu können: !! Ab Version WinAVR-20050214 !! #define F_CPU 8000000UL // 8 MHz #include <avr/delay.h> void delay_ms(int ms) { int t; for(t=0; t<=ms; t++) _delay_ms(1); } Ein paar mehr Ticks gehen hier zwar für Aufruf, Variable anlegen und das Ausführen der for-schleife verloren, das sollte aber nicht so problematisch sein ;-) Möglich sind hier dann auch ohne Probleme Aufrufe wie delay_ms(1000); usw... Greetz, thorsten
Fakt ist, eigentlich benötigen tut solcherlei Routinen nur ein Anfänger, der LEDs blinken lassen will.
Naja, aber es sind doch gerade Anfänger, die nachher zu Profis werden ? Ausserdem wird hier oft nach einer vernünftigen delay - Funktion gefragt ;-)
"Ausserdem wird hier oft nach einer vernünftigen delay - Funktion gefragt ;-)" Ob die Funktion vernünftig ist...
"Ob die Funktion vernünftig ist..." delay_ms(1000); ist es jedenfalls nicht, denn es bedeutet im Klartext 16.000.000 absolut nutzlos vergeudete CPU-Zyklen. Wenn ich z.B. eine 1s-Blink-LED baue, dann will ich definitv nicht eine Sekunde lang einen Taster drücken müssen, bis die CPU endlich so gnädig ist, es entgegen zu nehmen. Jede CPU kann viele Dinge gleichzeitig tun, wenn man sie denn läßt. Peter
Ich habe diese Funktion (delay_ms(1000)) ausprobiert. Mein Programm hat mit dieser Funktion ca. 1.5 kByte mehr Speicher gebraucht. Weis jemand warum so eine einfache Funktion gleich so viel Speicher braucht?
Marcel wrote: > Ich habe diese Funktion (delay_ms(1000)) ausprobiert. Mein Programm hat > mit dieser Funktion ca. 1.5 kByte mehr Speicher gebraucht. Weis jemand > warum so > eine einfache Funktion gleich so viel Speicher braucht? Optimierung beim Compilieren anschalten!
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.