[STM8] STM8的精确延时函数

[复制链接]
3222|0
 楼主| pofu007 发表于 2013-9-18 09:15 | 显示全部楼层 |阅读模式
本帖最后由 pofu007 于 2013-9-18 09:16 编辑

用如下函数进行延时。
void Delay_N_10ms(uint8_t n)
{
    DelayCnt = n;
   
    while(DelayCnt != 0);
}
设定定时器中断周期为10ms,在中断函数中做如下处理
if(DelayCnt != 0)
{
    DelayCnt--;
}
那么调用 Delay_N_10ms(1)的时候,由于此时定时器的计数值不可确定(也就是调用的时候,定时器的中断函数有可能在0~10ms内发生),那么具体的延时时间应该0~10ms之间。原来没意识到这个问题,就当做延时10ms在用,也没发现问题,事实上,这个10ms的延时函数还是很精准的,想不明白原因啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

60

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部