OpenEdv-开源电子网

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

产生两路相位差可调的方波

[复制链接]

8

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2021-1-4
在线时间
17 小时
发表于 2021-5-14 16:25:17 | 显示全部楼层 |阅读模式
5金钱
,各位好兄弟们可以帮我看一下代码吗,配置了两个定时器,都能产生方波,通过按键可以实现占空比可调,但是用延时函数实现不了相位差可调,这是为什么,请求各位大佬教一下。

最佳答案

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

用定时器的2个通道就可以了,CCRx,CCRy,只要x,y不相等,相位就不一样。调整xy的值,就可以改变相位差。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2021-5-14 16:25:18 | 显示全部楼层
用定时器的2个通道就可以了,CCRx,CCRy,只要x,y不相等,相位就不一样。调整xy的值,就可以改变相位差。
回复

使用道具 举报

8

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2021-1-4
在线时间
17 小时
 楼主| 发表于 2021-5-14 18:46:24 | 显示全部楼层
绑定顶
回复

使用道具 举报

8

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2021-1-4
在线时间
17 小时
 楼主| 发表于 2021-5-14 18:46:51 | 显示全部楼层
冲啊,顶顶顶
回复

使用道具 举报

8

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2021-1-4
在线时间
17 小时
 楼主| 发表于 2021-5-14 18:47:16 | 显示全部楼层
来个人救救我把
回复

使用道具 举报

8

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2021-1-4
在线时间
17 小时
 楼主| 发表于 2021-5-14 18:47:44 | 显示全部楼层
原子哥在哪里,大佬们都在那里啊
回复

使用道具 举报

8

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2021-1-4
在线时间
17 小时
 楼主| 发表于 2021-5-15 06:21:14 来自手机 | 显示全部楼层
正点原子 发表于 2021-5-14 16:25
用定时器的2个通道就可以了,CCRx,CCRy,只要x,y不相等,相位就不一样。调整xy的值,就可以改变相位差。

那样的话占空比不就变了吗,占空比变了两个方波就不一样怎么能有相位差
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2021-5-15 09:54:24 | 显示全部楼层
首先,两路PWM肯定同频,不然没有相位的概念。


如果两路PWM都是只要求方波的话(占空比固定50%),那么用定时器输出toggle模式,然后修改CCRx就可以调整相位,修改ARR调整频率/周期。

如果要求两路PWM都可以任意调占空比,那两路PWM必须各自用独立的定时器实现,
然后修改相位的话必须再用第三个定时器,基本原理是第一个定时器输出PWM1启动后,触发第三个定时器,第三个定时器运行一段时间后(相位差),再触发第二个定时器输出PWM2。
这样通过调整第三个定时器的值,就可以控制相位。由于这三个定时器的触发是硬件完成的,所以精度非常高。
理论上使用延时函数的方法也可以达到要求,只是由于中断、软件延时精度等原因,可能达不到理想的情况。
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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