五木 发表于 2013-6-7 10:36:37

430 TimerB暂停输出PWM,怎么固定输出电平

如题:

现用430的定时器B做了个PWM输出,按键控制 启动输出、暂停输出、输出频率调节。

在暂停输出的控制部分,是直接 TBCCR0=0 ; 但暂停后输出状态不确定!即使输出的频率相同,暂停后有时候是高电平,有时候是低电平。怎么设置能让它暂停后总是输出低电平?

我想到的办法是:把PWM输出脚的复用功能取消,再强制输出0;
这应该是最无赖的办法,有没有其他通过配置的办法来实现的呢?

五木 发表于 2013-6-7 11:33:27

怎么都没有人做过这个?
自己顶一下!
在仔细翻看了下用户手册的定时器部分,有如下收获,拿来跟大家分享一下!

分析TB的工作模式,比如把TB输出模式设置为reset/set模式,那么计数到CCRx时 output=0;计数到CCR0时 output=1;
计数器工作模式为up模式,即:计数器从0开始计数,计数到CCR0后自动清零。
430的用户手册中介绍,开启输出,通过CCR0写非 0 来实现,反之亦然。
默认情况下CCRx < CCR0,这样就能实现PWM输出了,但如果CCRx > CCR0 呢? {:titter:}{:titter:}{:titter:}{:titter:}

这不就是我要的结果了吗?!{:shy:}
刚试验了一下,perfect!

dianyuan 发表于 2013-6-7 12:27:53

OUTMODx Bits7-5Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx= EQU0.
000 OUT bit value
001 Set
010 Toggle/reset
011 Set/reset
100 Toggle
101 Reset
110 Toggle/set
111 Reset/set

OUT Bit 2 Output. This bit indicates the state of the output. For output mode 0, this bit
directly controls the state of the output.
0 Output low
1 Output high

将OUTMODx设为0,然后可以用OUT控制输出为高或低

五木 发表于 2013-6-7 14:17:07

dianyuan 发表于 2013-6-7 12:27 static/image/common/back.gif
OUTMODx Bits7-5Output mode. Modes 2, 3, 6, and 7 are not useful for TBCL0 because EQUx= EQU0.
000 OU ...

这确实是个不错的方法哈!谢谢!!
页: [1]
查看完整版本: 430 TimerB暂停输出PWM,怎么固定输出电平