单片机定时器精准定时_单片机定时器,如何追求极致的精度?

1.晶振频率的误差

假设你用的是这种常用的无源晶振

它的误差±20PPM可以理解为百万分之20,12Mh晶振的标称的误差±240hz,频率范围在11.9976Mhz--12.00024Mhz范围。软件给出的频率是11.956Mhz,差了44Khz,晶振不背锅。

况且你说时钟在变化,那检查一下时钟电路呢?

时钟电路的起振电容有没有给对?

时钟电路设计有没有不合规范?

初值的计算当然按照实际频率计算咯。

2定时器模式

8位重装定时器

定时器的溢出导致TH0 内容载入 TL0,这个是硬件自动处理的,管你在中断干什么操作,也不会干扰到定时器的循环定时的,【中断里有一条指令,耗时1微秒,也就是说每经过250微秒,损失1微秒,放大转换一下,也就是说每经过250秒,损失1秒】说法不成立。

16位定时器手动重装会影响到定时器的精度,但是可以将重装导致的时间差计入定时器初值,避免导致累计误差。

循环定时情况下自动重装比手动重少操心,准一点

中断系统并不会影响到重装的计时模式。

3赞同

4赞同

5.手动重装初值会受到优先级影响,导致时间损失。但自动重装不会影响到。中断定时器中断会在外部中断返回后在执行,重装初值已经在触发中断时做了。影响到的无非时中断响应时间罢了,但是外部中断内容消耗时间太长就另议了。

6.打开顺序

打开中断开关的时差导致不触发中断的情况。

定时器初始化TL0 TH0 TMOD TCON IE相关寄存器操作时间差不多10us左右,小于定时时间,不会导致不触发中断。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值