OpenEdv-开源电子网

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

四路PWM如何实现延时,分别两路一组控制或四路一起控制

[复制链接]

33

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
507
金钱
507
注册时间
2014-1-24
在线时间
103 小时
发表于 2014-6-10 22:36:59 | 显示全部楼层 |阅读模式
5金钱
用TIM3输出四路PWM,必须两路一组或一起来控制,但是每一路又不能同时输出,所以我想在其中一路输出时中间加10ms的延时,但是
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OC1Init(TIM3, &TIM_OCInitStructure); 
delay_ms(10);    
TIM_OC2Init(TIM3, &TIM_OCInitStructure);
我用类似这种方法控制时只是把第一个脉冲的占空比给改变了,从第二个脉冲开始又是同时输出,下图是四路同时输出的波形


不知这种情况下怎么才能延时?谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-10 22:56:27 | 显示全部楼层
你用PWM开关就可以了
不需要的时候关闭PWM输出就是了,想怎么玩,怎么玩.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

33

主题

150

帖子

0

精华

高级会员

Rank: 4

积分
507
金钱
507
注册时间
2014-1-24
在线时间
103 小时
 楼主| 发表于 2014-6-12 09:56:05 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,是这样的,我都用TIM3的1,2,3,4通道,可以分开控制;但是我发现,不管怎么控制,比如打开两路或者多路,脉冲都是同时输出的,我不能把他们每一路输出的时间错开。延时和错开PWM开关的时间只会造成第一次输出的脉宽不对,从第二个脉冲器就又同步了。所以我想问哈想错开必须得分别用不同定时器控制还是我控制的方法不对
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-6-12 23:13:46 | 显示全部楼层
回复【3楼】北方的马克思:
---------------------------------
你的CCRx值,必须不一样才行,要不就只能用输出比较模式了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 04:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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