[STM8] 关于STM8单片机定时器的定时时间的思考

[复制链接]
 楼主| 布丁奶茶 发表于 2015-12-22 11:04 | 显示全部楼层 |阅读模式
本帖最后由 布丁奶茶 于 2015-12-22 11:07 编辑

之前用STM8的定时器都用的库函数,没怎么在意它的初值和定时时间的计算
今天因为用定时器的时候需要计算它的定时时间,发现还真是一个细节的问题

51单片机的16位定时器的计算,相信大家都很熟悉
TH0=(65536-X)/256
TL0=(65536-X)%256
X就是定时X微妙

对于STM8单片机的定时时间
首先我们需要计算          计数的时钟=主时钟/(预分频值+1)
                 再计算          计数的频率=计数时钟/(重装载寄存器值+1)              最后计算        定时时间=1/计数的频率
       说明:为什么会出现+1的情况,那是因为st的不管stm8还是stm32的TIM预分频器都差不多,肯定是没有0分频的,最小是1分频,一般习惯给预分频和重新装载寄存器减一,官方例程上也有这个习惯。                                             
这样我们就可以算出来定时器定时的时间了

这个是我自己看资料总结的,如果有哪里不对的地方也请大家指出来。
                           



desertsailor 发表于 2015-12-23 13:31 | 显示全部楼层
要加1是因为从ARR到0需要占用一个CLK的时间,所以定时器从0到ARR,再从ARR到0,整个过程的周期为(ARR+1)个CLK。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

180

帖子

1

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