void Delay_ms(unsigned int a) //@12.000MHz,1mS延时函数,代码从STC下载器复制来
{
unsigned char i, j;
for(a;a>0;a--)
{
i = 16;
j = 147;
do
{
while (--j);
} while (--i);
}
}
从1mS到1秒,我都是用这个
误差肯定是有的,但这重要吗?
误差不会很大的,不会是1S延时变成2S或者50S的,误差肯定是在可以接受的范围内的
你都用软件来进行延时了,对精度本身就不会太大的要求了,你想软件延时10S,误差只有几uS的,那得在这上面耗上多少精力?直接用定时器不就行了
高精度延时用软件延时,这就是把好钢用在刀把上
高精度时间控制,都是用定时器完成的
延时很短的,直接用空指令 |