|
在winavr的delay.h头文件中,要求我们要定义F_CPU,不定义则取默认的1MHZ,在_delay_ms()函数中直接拿“1000000UL”来运算,UL是一种记数法吗?还是什么意思?如果我们定义了F_CPU,是否在我们的运算中也可以直接拿这个“F_CPU”即“1000000UL”来使用?谢谢!
# define F_CPU 1000000UL
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 = requested delay in 1/10 ms
__ticks = (uint16_t) (__ms * 10.0);
while(__ticks)
{
// wait 1/10 ms
_delay_loop_2(((F_CPU) / 4e3) / 10);
__ticks --;
}
return;
}
else
__ticks = (uint16_t)__tmp;
_delay_loop_2(__ticks);
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|