35 #ifndef _UTIL_DELAY_H_
36 #define _UTIL_DELAY_H_ 1
39 # ifndef __HAS_DELAY_CYCLES
40 # define __HAS_DELAY_CYCLES 1
85 #if !defined(__DOXYGEN__)
92 # warning "F_CPU not defined for <util/delay.h>"
108 # define F_CPU 1000000UL
112 # warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
115 #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && \
116 !defined(__DELAY_BACKWARD_COMPATIBLE__) && \
169 #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && \
170 !defined(__DELAY_BACKWARD_COMPATIBLE__) && \
173 extern void __builtin_avr_delay_cycles(
unsigned long);
174 __tmp = ((
F_CPU) / 1e3) * __ms;
176 #if defined(__DELAY_ROUND_DOWN__)
179 #elif defined(__DELAY_ROUND_CLOSEST__)
187 __builtin_avr_delay_cycles(__ticks_dc);
191 __tmp = ((
F_CPU) / 4e3) * __ms;
194 else if (__tmp > 65535)
258 #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && \
259 !defined(__DELAY_BACKWARD_COMPATIBLE__) && \
262 extern void __builtin_avr_delay_cycles(
unsigned long);
263 __tmp = ((
F_CPU) / 1e6) * __us;
265 #if defined(__DELAY_ROUND_DOWN__)
268 #elif defined(__DELAY_ROUND_CLOSEST__)
276 __builtin_avr_delay_cycles(__ticks_dc);
281 __tmp = ((
F_CPU) / 3e6) * __us;
282 __tmp2 = ((
F_CPU) / 4e6) * __us;
285 else if (__tmp2 > 65535)
289 else if (__tmp > 255)