void_delay_ms(double__ms)[inline],[static]
Perform a delay of __ms milliseconds, using _delay_loop_2().
The macro F_CPU is supposed to be defined to a constant defining the CPU clock frequency (in Hertz).
The maximal possible delay is 262.14 ms / F_CPU in MHz.
When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased
resolution functionality. In this mode _delay_ms() will work with a resolution of 1/10 ms, providing
delays up to 6.5535 seconds (independent from CPU frequency). The user will not be informed about
decreased resolution.
If the avr-gcc toolchain has __builtin_avr_delay_cycles() support, maximal possible delay is 4294967.295
ms/ F_CPU in MHz. For values greater than the maximal possible delay, overflow may result in no delay
i.e., 0 ms.
Conversion of __ms into clock cycles may not always result in an integral value. By default, the clock
cycles are rounded up to the next integer. This ensures that the user gets at least __ms microseconds of
delay.
Alternatively, by defining the macro __DELAY_ROUND_DOWN__, or __DELAY_ROUND_CLOSEST__, before including
this header file, the algorithm can be made to round down, or round to closest integer, respectively.
Note
The implementation of _delay_ms() based on __builtin_avr_delay_cycles() is not backward compatible
with older implementations. In order to get functionality backward compatible with previous versions,
the macro __DELAY_BACKWARD_COMPATIBLE__ must be defined before including this header file.
void_delay_us(double__us)[inline],[static]
Perform a delay of __us microseconds, using _delay_loop_1().
The macro F_CPU is supposed to be defined to a constant defining the CPU clock frequency (in Hertz).
The maximal possible delay is 768 s / F_CPU in MHz.
If the user requests a delay greater than the maximal possible one, _delay_us() will automatically call
_delay_ms() instead. The user will not be informed about this case.
If the avr-gcc toolchain has __builtin_avr_delay_cycles() support, maximal possible delay is 4294967.295
s/ F_CPU in MHz. For values greater than the maximal possible delay, overflow may result in no delay
i.e., 0 s.
Conversion of __us into clock cycles may not always result in integer. By default, the clock cycles are
rounded up to next integer. This ensures that the user gets at least __us microseconds of delay.
Alternatively, by defining the macro __DELAY_ROUND_DOWN__, or __DELAY_ROUND_CLOSEST__, before including
this header file, the algorithm can be made to round down, or round to closest integer, respectively.
Note
The implementation of _delay_us() based on __builtin_avr_delay_cycles() is not backward compatible
with older implementations. In order to get functionality backward compatible with previous versions,
the macro __DELAY_BACKWARD_COMPATIBLE__ must be defined before including this header file.