в файле delay.h определено так:
void _delay_ms(double __ms) { uint16_t __ticks; double __tmp = ((F_CPU) / 4e3) * __ms; if (__tmp < 1.0) __ticks = 1; else if (__tmp > 65535) __ticks = 0; /* i.e. 65536 */ else __ticks = (uint16_t)__tmp; _delay_loop_2(__ticks); }
Почему F_CPU / 4e3, ведь это справедливо для F_CPU = 4000000, а если F_CPU = 8000000, задержка будет в 2 раза длиннее
|