打印
[STM8]

STM8的精确延时函数

[复制链接]
2719|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

粉丝