Gast
#950894
Hallo zusammen,
ich benutze in einem Programm öfters mal _delay_ms(). Leider kann man
damit nur begrenzt lange warten, und zwar 262.14 ms / F_CPU in MHz.
Damit ich auch länger warten kann, habe ich etwas geschrieben wie
#define MAX_DELAY_MS (262 / (F_CPU / 1000000))
static void my_delay_ms(uint16_t ms) {
while(ms > MAX_DELAY_MS) {
ms -= MAX_DELAY_MS;
_delay_ms(MAX_DELAY_MS)
}
_delay_ms(ms);
}
Wenn ich nun _delay_ms() mehrmals per Hand aufrufe, ist das Binary ca.
500 Byte gross. Benutze ich oben genannte Hilfsfunktion, ist es fast 4KB
gross, also um ganze 3500 Byte größer. Irgendwas läuft da doch schief,
oder? Hat jemand eine alternative um länger als MAX_DELAY_MS zu warten
und nicht mehrmals _delay_ms() per Hand aufrufen zu müssen?
Gruss
Flo