打印
[应用相关]

定时器为什么不是TBCCR0=1000

[复制链接]
483|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songqian17|  楼主 | 2019-10-18 22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TBCCTL0 = CCIE; // TRCCR0 interrupt ena××ed

TBCCR0 = 1000-1;

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


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

使用特权

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

使用特权

评论回复
板凳
pengf| | 2019-10-18 22:46 | 只看该作者

在Timer工作在增技术是,要注意不同的中断向量会造成定时中断的效果不同。

使用特权

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

使用特权

评论回复
5
xxrs| | 2019-10-18 22:55 | 只看该作者
从0开始到999是1000个计数值

使用特权

评论回复
6
houcs| | 2019-10-18 22:57 | 只看该作者

3#6#都说的是啊,一般都是要减一的,不然就计数成1001了

使用特权

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

使用特权

评论回复
8
yinxiangh| | 2019-10-18 23:04 | 只看该作者
是的啊 这个是从0开始计算的。

使用特权

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

使用特权

评论回复
10
ousj| | 2019-10-18 23:09 | 只看该作者
这个你测试看看对不对吧

使用特权

评论回复
11
zyf部长| | 2019-10-18 23:18 | 只看该作者
什么定时器需要这样配置嗯

使用特权

评论回复
12
gongche| | 2019-10-18 23:18 | 只看该作者
什么定时器需要这样配置嗯

使用特权

评论回复
13
zwll| | 2019-10-18 23:20 | 只看该作者
配置1000就会有误差的。

使用特权

评论回复
14
xxrs| | 2019-10-19 08:45 | 只看该作者
计数器的模式自己研究。

使用特权

评论回复
15
stly| | 2019-10-19 08:48 | 只看该作者
计算出来0-999才是1000的。

使用特权

评论回复
16
dingy| | 2019-10-19 08:52 | 只看该作者

的确 计数到1000 就是1001个数了。

使用特权

评论回复
17
renyaq| | 2019-10-19 08:56 | 只看该作者
自己配置的寄存器是什么

使用特权

评论回复
18
xxrs| | 2019-10-19 09:00 | 只看该作者
配置999 正好是1000.

使用特权

评论回复
19
xxmmi| | 2019-10-19 09:03 | 只看该作者
TBCCR0=1000-1 就是计算1000个。

使用特权

评论回复
20
wenfen| | 2019-10-19 09:07 | 只看该作者
串口通信如何能发送与接收16位的数据?

使用特权

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

本版积分规则

463

主题

5749

帖子

1

粉丝