打印

TIM1 比较翻转模式下电平输出的随机性

[复制链接]
2026|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
玉骄龙|  楼主 | 2013-8-16 16:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 玉骄龙 于 2013-8-16 16:11 编辑

大家都知道,STM32F的TIM1具有比较翻转模式,在这种工作模式下,CH1输出的方波与CH2输出的方波存在一个相位差的。
但是,如果我将TIM1_CH1的相位设为基准,只改变TIM1_CH2的比较值来改变相位,却发现CH2的输出电平会乱翻转的现象!
也就是:本应输出010101。。。的波形的,却变成了011010。。。因为有CH1的相位作参考,这种误翻转的现象很容易被发现。
这种电平误翻转的现象是随机发生的。要怎样来防止这种情况的发生呢?
尝试过好多办法仍未能解决,是否STM32F不能杜绝这种情况的发生?
沙发
玉骄龙|  楼主 | 2013-8-18 08:33 | 只看该作者
自已顶起!不然就沉了!

使用特权

评论回复
板凳
airwill| | 2013-8-19 09:36 | 只看该作者
没有看明白什么问题. 是不是跟上升下降双向计数等模式也有关系

使用特权

评论回复
地板
玉骄龙|  楼主 | 2013-8-19 10:41 | 只看该作者
airwill 发表于 2013-8-19 09:36
没有看明白什么问题. 是不是跟上升下降双向计数等模式也有关系

你好!
TIM1有一种比较翻转输出功能,就是在计数器与比较器值相同时,将输出电平翻转。也就是由0变成1,或由1变成0.
本应该这样严格来出牌的。但在改变CH2的比较器的值后,CH1与CH2的就有可能乱套了。比如:CH1由0变成1时,CH2也应该由0变成1,但CH2也有可能不变还是0.没有一个严格的约束机制。

使用特权

评论回复
5
airwill| | 2013-8-19 12:14 | 只看该作者
那是因为计数器的当前值可能正好在 你改的值和原值之间

使用特权

评论回复
6
玉骄龙|  楼主 | 2013-8-21 10:39 | 只看该作者
airwill 发表于 2013-8-19 12:14
那是因为计数器的当前值可能正好在 你改的值和原值之间

谢谢版主。实在找不到解决的办法,我只好放弃了这个方案了。

使用特权

评论回复
7
airwill| | 2013-8-21 10:52 | 只看该作者
不是吧, 换个更新模式就可以了嘛.

使用特权

评论回复
8
wolfhead318| | 2014-8-18 11:24 | 只看该作者
我也碰到这样的 误动作 怎么解决那 !是否可以通过优先级来 搞的?

使用特权

评论回复
9
18340362378| | 2019-9-7 16:23 | 只看该作者
我也遇到这个问题,搞得头晕

使用特权

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

本版积分规则

2

主题

18

帖子

0

粉丝