[方案讨论]

TIM1 PWM输出时遇到的问题,求帮助

[复制链接]
3018|7
手机看帖
扫描二维码
随时随地手机跟帖
scfor123456|  楼主 | 2021-6-18 11:50 | 显示全部楼层 |阅读模式
使用的是TIM1对称PWM输出,update event触发tim1-TRGO进行AD转换,重复计数寄存器TIM1_RCR=1,这样TIM1_CNT要么等于TIM1_ARR进入AD转换,要么等于0进入AD转换。现在的问题是,我测试发现TIM1_CNT每次都是在等于TIM1_ARR时进入AD转换,如果要改为TIM1_CNT等于0时进入,如何操作?
以前用ST的也碰到过这个问题,解决办法是初始化完成后更改TIM1_CNT的初始值就可以了,现在这个办法不行,头疼,航顺没资料查啊。

使用特权

评论回复

相关帖子

GlenX| | 2021-6-19 17:52 | 显示全部楼层
建议你的应用采用:TIM1_RCR=0 ,不要使用RCR就可以。
否则达不到你的要求。

使用特权

评论回复
scfor123456|  楼主 | 2021-6-21 08:49 | 显示全部楼层
GlenX 发表于 2021-6-19 17:52
建议你的应用采用:TIM1_RCR=0 ,不要使用RCR就可以。
否则达不到你的要求。

TIM1_RCR=0的话,一个PWM周期AD转换2次,我只需要转换1次

使用特权

评论回复
GlenX| | 2021-6-21 11:40 | 显示全部楼层
可以再中断中做计数实现,而不是同故宫RCR实现,否则PWM不整齐了

使用特权

评论回复
scfor123456|  楼主 | 2021-6-21 12:01 | 显示全部楼层
GlenX 发表于 2021-6-21 11:40
可以再中断中做计数实现,而不是同故宫RCR实现,否则PWM不整齐了

这个也是个办法,会多耗费CPU时间,但怎么TIM1做的跟ST的有这个差别呢?资料也没提示。

使用特权

评论回复
scfor123456|  楼主 | 2021-6-22 11:56 | 显示全部楼层
GlenX 发表于 2021-6-19 17:52
建议你的应用采用:TIM1_RCR=0 ,不要使用RCR就可以。
否则达不到你的要求。

TIM1_RCR设置0后,进不了中断,设置1才能进,奇怪。

使用特权

评论回复
scfor123456|  楼主 | 2021-6-22 18:29 | 显示全部楼层
In center-aligned mode, for odd values of RCR, the update event occurs either on the
overflow or on the underflow depending on when the RCR register was written and when
the counter was started. If the RCR was written before starting the counter, the UEV occurs
on the overflow. If the RCR was written after starting the counter, the UEV occurs on the
underflow. For example for RCR = 3, the UEV is generated on each 4th overflow or
underflow event depending on when RCR was written.

ST的文档有这样的说明,按这个操作应该是可以解决问题,但改了一点效果没有。

使用特权

评论回复
GlenX| | 2021-6-23 09:28 | 显示全部楼层
7楼这个办法好,赞一个!

使用特权

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

本版积分规则

7

主题

41

帖子

0

粉丝