关于定时器或计数器的初值计算

一开始, 我以为初值都是单位为ms的数值,如果溢出时间是50ms,  那么初值就是50000, 但当我发现50ms, 外循环20次和1ms, 外循环1000次,不能达成相同的效果时, 我发现初值不是想象中那样。

初值需要计算!

我查了下51单片机书,重新看下定时器那一章, 看到了这个公式:   溢出时间(微妙) = (上限 - 初值) * 12 * 1/fosc。     

1 / fosc :  时钟周期

12 * 1/fosc : 机器周期

计数一次是一个机器周期, 所以要乘上 (上限 - 初值)

这样我再设置1ms的定时器,效果接近现实。

原文地址:https://www.cnblogs.com/the-one/p/5329254.html