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

[复制链接]
 楼主| huangchui 发表于 2020-6-8 23:24 | 显示全部楼层 |阅读模式
TBCCTL0 = CCIE; // TRCCR0 interrupt ena××ed

TBCCR0 = 1000-1;

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


为什么不是TBCCR0=1000?而是TBCCR0=1000-1呢?
 楼主| huangchui 发表于 2020-6-8 23:28 | 显示全部楼层
是在增计数模式下特例吗
wyjie 发表于 2020-6-8 23:35 | 显示全部楼层
因为是从0开始计数的,1000-1正好记1000个
 楼主| huangchui 发表于 2020-6-8 23:35 | 显示全部楼层
好像。。。略懂
happy_10 发表于 2020-6-8 23:39 | 显示全部楼层

在Timer工作在增技术是,要注意不同的中断向量会造成定时中断的效果不同。
TBCCTL0的中断在TBR计数到999时发生,而TBIFG则是计数到0时发生,两个中断会差一个count的时间
lizye 发表于 2020-6-8 23:42 | 显示全部楼层
从0开始到999是1000个计数值
zhaoxqi 发表于 2020-6-8 23:46 | 显示全部楼层
3#6#都说的是啊,一般都是要减一的,不然就计数成1001了
午夜粪车 发表于 2020-6-8 23:50 | 显示全部楼层
确实是从0开始计数的问题,一般的计数器都是这样的
chenjunt 发表于 2020-6-8 23:53 | 显示全部楼层
这个是从0开始计算的。
kangzj 发表于 2020-6-8 23:55 | 显示全部楼层
从0开始计数
zwll 发表于 2020-6-21 10:16 | 显示全部楼层
这个是什么处理器
dingy 发表于 2020-6-21 10:21 | 显示全部楼层

一般使用配置函数的时候不需要这样设计。
liuzaiy 发表于 2020-6-21 10:24 | 显示全部楼层

这个跟计数的方式有关系
ousj 发表于 2020-6-21 10:26 | 显示全部楼层

这个你测试看看对不对吧
guoyt 发表于 2020-6-21 10:29 | 显示全部楼层
就是技术到999就满足要求了。
jiahy 发表于 2020-6-21 10:35 | 显示全部楼层
wyjie 发表于 2020-6-8 23:35
因为是从0开始计数的,1000-1正好记1000个

就是这个答案
gongche 发表于 2020-6-21 10:38 | 显示全部楼层
什么定时器需要这样配置嗯
wenfen 发表于 2020-6-21 10:48 | 显示全部楼层
配置1000就会有误差的。
songqian17 发表于 2020-6-21 10:51 | 显示全部楼层
计数器的模式自己研究。
chuxh 发表于 2020-6-21 10:58 | 显示全部楼层
计算出来0-999才是1000的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

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