关于定时器或计数器的初值计算
一开始, 我以为初值都是单位为ms的数值,如果溢出时间是50ms, 那么初值就是50000, 但当我发现50ms, 外循环20次和1ms, 外循环1000次,不能达成相同的效果时, 我发现初值不是想象中那样。
初值需要计算!
我查了下51单片机书,重新看下定时器那一章, 看到了这个公式: 溢出时间(微妙) = (上限 - 初值) * 12 * 1/fosc。
1 / fosc : 时钟周期
12 * 1/fosc : 机器周期
计数一次是一个机器周期, 所以要乘上 (上限 - 初值)
这样我再设置1ms的定时器,效果接近现实。