OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4341|回复: 6

关于定时公式中通用定时器计数寄存器TIMx_ARR的取值问题

[复制链接]

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
发表于 2020-1-11 21:47:03 | 显示全部楼层 |阅读模式
1金钱
如图,为什么计算公式中计数寄存器数值arr那里是(arr+1)而不是arr呢??
1.jpg

最佳答案

查看完整内容[请看2#楼]

定时器第一个计的数是零, 假设计10个数益出,arr就是9, 0~9 正好10个数,10个周期
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
357
金钱
357
注册时间
2020-1-6
在线时间
92 小时
发表于 2020-1-11 21:47:04 | 显示全部楼层
定时器第一个计的数是零, 假设计10个数益出,arr就是9, 0~9 正好10个数,10个周期
回复

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2020-1-13 11:33:17 | 显示全部楼层
有人解答吗???自己帮顶
回复

使用道具 举报

34

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
912
金钱
912
注册时间
2019-7-5
在线时间
189 小时
发表于 2020-1-13 12:07:08 | 显示全部楼层
人家是这样规定的,你会用就行啦,你看看代码,写成71+1,不就是72 吗
回复

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2020-1-13 14:02:28 | 显示全部楼层
fcm32 发表于 2020-1-13 12:13
定时器第一个计的数是零, 假设计10个数益出,arr就是9, 0~9 正好10个数,10个周期

是的 明白了 谢谢您的回复!!
回复

使用道具 举报

24

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2019-11-8
在线时间
62 小时
 楼主| 发表于 2020-1-13 14:04:11 | 显示全部楼层
liaohaijian 发表于 2020-1-13 12:07
人家是这样规定的,你会用就行啦,你看看代码,写成71+1,不就是72 吗

谢谢你的回复!!我知道了,是因为计数寄存器TIM_COUT 是从00开始加减一计数的
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
978
金钱
978
注册时间
2016-3-8
在线时间
267 小时
发表于 2020-12-22 00:01:41 | 显示全部楼层
我认为很多人不明白为什么要减1,是因为很多教程都说从0加到ARR产生事件,计数器清零。
如果这种说法,我ARR设置1,从0加到1就产生事件。就计数1次。但按公式1=2-1;那ARR设置1又是2次。那就矛盾了。
其实计数器不是加到ARR产生事件,而是ARR+1。也就是加到ARR后的下一个时钟。这和计数器溢出是一个道理。比如8位计数器计数到最大255,要再来一个时钟才溢出变0.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 20:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表