打印
[STM32F2]

定时器

[复制链接]
746|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuhuis|  楼主 | 2019-12-18 23:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

TBCCTL0 = CCIE; // TRCCR0 interrupt ena××ed

TBCCR0 = 1000-1;

TBCTL = TBSSEL_1 + MC_1; // ACLK, up mode


为什么不是TBCCR0=1000?而是TBCCR0=1000-1呢?

使用特权

评论回复
沙发
gongche| | 2019-12-18 23:11 | 只看该作者
因为是从0开始计数的,1000-1正好记1000个

使用特权

评论回复
板凳
dingy| | 2019-12-18 23:15 | 只看该作者
在Timer工作在增技术是,要注意不同的中断向量会造成定时中断的效果不同。

使用特权

评论回复
地板
zhuhuis|  楼主 | 2019-12-18 23:18 | 只看该作者
TBCCTL0的中断在TBR计数到999时发生,而TBIFG则是计数到0时发生,两个中断会差一个count的时间

使用特权

评论回复
5
dingy| | 2019-12-18 23:21 | 只看该作者

从0开始到999是1000个计数值。。

使用特权

评论回复
6
chuxh| | 2019-12-18 23:28 | 只看该作者
是的,一般都是要减一的,不然就计数成1001了。

使用特权

评论回复
7
dingy| | 2019-12-18 23:31 | 只看该作者
确实是从0开始计数的问题,一般的计数器都是这样的

使用特权

评论回复
8
supernan| | 2019-12-18 23:36 | 只看该作者
这个是从0开始计算的。

使用特权

评论回复
9
yinxiangh| | 2019-12-18 23:39 | 只看该作者
一般使用配置函数的时候不需要这样设计。

使用特权

评论回复
10
zyf部长| | 2019-12-18 23:46 | 只看该作者
这个跟计数的方式有关系的。。

使用特权

评论回复
11
guoyt| | 2019-12-18 23:48 | 只看该作者
配置1000就会有误差的

使用特权

评论回复
12
llia| | 2019-12-18 23:52 | 只看该作者
计数到1000 就是1001个数了。

使用特权

评论回复
13
zhanglli| | 2019-12-18 23:55 | 只看该作者
TBCCR0=1000-1 就是计算1000个。

使用特权

评论回复
14
huanghuac| | 2019-12-18 23:57 | 只看该作者
注意不同的中断向量会造成定时中断的效果不同

使用特权

评论回复
15
RunningX| | 2019-12-19 09:18 | 只看该作者
0也算一个

使用特权

评论回复
16
guoyt| | 2019-12-19 21:09 | 只看该作者
一般的计数器都是从0开始的,TBCCR0需要配置999的。

使用特权

评论回复
17
磨砂| | 2020-1-16 11:33 | 只看该作者
因为是从0开始的啊

使用特权

评论回复
18
晓伍| | 2020-1-16 11:47 | 只看该作者
自己跑跑就知道了

使用特权

评论回复
19
八层楼| | 2020-1-16 12:01 | 只看该作者
多跑跑就知道为嘛了

使用特权

评论回复
20
观海| | 2020-1-16 12:45 | 只看该作者
可以自己数一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

粉丝