[STM32F2] 定时器

[复制链接]
1258|20
 楼主| zhuhuis 发表于 2022-1-1 16:29 | 显示全部楼层 |阅读模式
TBCCTL0 = CCIE; // TRCCR0 interrupt ena××ed

TBCCR0 = 1000-1;

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


为什么不是TBCCR0=1000?而是TBCCR0=1000-1呢?
renyaq 发表于 2022-1-1 16:32 | 显示全部楼层
因为是从0开始计数的,1000-1正好记1000个
dingy 发表于 2022-1-1 16:34 | 显示全部楼层
在Timer工作在增技术是,要注意不同的中断向量会造成定时中断的效果不同。
 楼主| zhuhuis 发表于 2022-1-1 16:36 | 显示全部楼层
TBCCTL0的中断在TBR计数到999时发生,而TBIFG则是计数到0时发生,两个中断会差一个count的时间
dingy 发表于 2022-1-1 16:38 | 显示全部楼层
从0开始到999是1000个计数值。。
chuxh 发表于 2022-1-1 16:40 | 显示全部楼层
是的,一般都是要减一的,不然就计数成1001了。
dingy 发表于 2022-1-1 16:42 | 显示全部楼层
确实是从0开始计数的问题,一般的计数器都是这样的
dengdc 发表于 2022-1-1 16:44 | 显示全部楼层
这个是从0开始计算的。
zhenykun 发表于 2022-1-1 16:46 | 显示全部楼层
一般使用配置函数的时候不需要这样设计。
dengdc 发表于 2022-1-1 16:49 | 显示全部楼层
这个跟计数的方式有关系的。。
tian111 发表于 2022-1-1 16:54 | 显示全部楼层
配置1000就会有误差的
zwll 发表于 2022-1-1 16:58 | 显示全部楼层
计数到1000 就是1001个数了。
pengf 发表于 2022-1-1 17:00 | 显示全部楼层
TBCCR0=1000-1 就是计算1000个。
renyaq 发表于 2022-1-1 17:03 | 显示全部楼层
注意不同的中断向量会造成定时中断的效果不同
jiajs 发表于 2022-1-1 17:06 | 显示全部楼层
0也算一个
pengf 发表于 2022-1-1 17:10 | 显示全部楼层
一般的计数器都是从0开始的,TBCCR0需要配置999的。
heweibig 发表于 2022-1-1 17:12 | 显示全部楼层
因为是从0开始的啊
zhanghqi 发表于 2022-1-1 17:14 | 显示全部楼层
自己跑跑就知道了
yszong 发表于 2022-1-1 17:16 | 显示全部楼层
多跑跑就知道为嘛了
chuxh 发表于 2022-1-1 17:19 | 显示全部楼层
可以自己数一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

728

主题

8464

帖子

6

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