打印
[STM8]

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

[复制链接]
1004|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
布丁奶茶|  楼主 | 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

粉丝