生成两路PWM波相位差90°的方法
创作时间:
作者:
@小白创作中心
生成两路PWM波相位差90°的方法
引用
CSDN
1.
https://m.blog.csdn.net/m0_46171719/article/details/125671922?spm=1001.2014.3001.5506
在嵌入式系统开发中,有时需要生成两路相位差90°的PWM波。本文将介绍如何使用定时器的输出比较模式来实现这一功能。
定时器模式简介
在定时器的输出比较模式下,定时器的计数器(CNT)与比较寄存器(CCR)的值进行比较。当CNT值等于CCR值时,输出电平就会翻转。这种模式与PWM模式的主要区别在于:
- PWM模式:在一个周期内(从0增加到ARR),输出电平会有两次变化
- 输出比较模式:在一个周期内(从0增加到ARR),输出电平只有一次变化
因此,在输出比较模式下,定时器输出方波的频率是PWM模式下的一半。
生成相位差90°的两路PWM波
要生成两路相位差90°的PWM波,可以使用定时器的两个通道。具体方法是让一个通道的PWM波比另一个通道滞后1/4个周期。
代码实现
以下是一个具体的代码示例,使用STM32的TIM8定时器生成两路相位差90°的PWM波:
TIM8_PWM_Init(ARR, 0); // 设置PWM频率为72000/(899+1)=80KHz
TIM_SetCompare1(TIM8, ARR / 4); // 通道1输出,连接到PC6
TIM_SetCompare2(TIM8, ARR * 3 / 4); // 通道2输出,连接到PC7
在这个示例中:
TIM8_PWM_Init函数用于初始化定时器,设置自动重装载寄存器(ARR)的值TIM_SetCompare1和TIM_SetCompare2函数分别设置两个通道的比较值- 通道1的比较值设置为ARR的1/4,通道2的比较值设置为ARR的3/4,从而实现90°的相位差
通过上述配置,可以得到两路相位差90°的PWM波,适用于需要特定相位关系的控制场景,如电机控制等。
热门推荐
舟山市方志馆:一座城市的记忆与传承
厦门市潮汕商会:郑镇明引领的企业文化
东莞市潮汕商会:企业经营的新引擎
广西潮汕商会:以服务为本,打造温暖的“潮人之家”
王锐旭教你如何通过潮汕商会加速职场晋升
现代密码学揭秘:银行卡密码锁定黑科技
厦门春卷健康馅料大揭秘
春卷DIY大赛:谁的馅料最绝?
春卷馅料大揭秘:吃货必看的营养指南
烟酸是什么东西
告别菜鸟!使命召唤手游二指三指四指键位设置详解
文化中国行|端午时节说健康
冬季烘焙大赛:完美奶油蛋糕秘籍
4K手作蛋糕教你完美打发奶油
揭秘蛋糕灾难现场:奶油蛋糕为何频频翻车?
事关升学毕业,明年实施!北京高中生请注意——
《正常人》教你分辨真假感情
高效沟通,让你的感情不再卡壳
圣诞树裱花蛋糕DIY教程
动物奶油蛋糕:烘焙界的天然之选
烘焙新手必学:完美打发奶油的小窍门
手机电池充放电架构与工作流程详解
动物奶油 vs 植物奶油:谁更能提升蛋糕品质?
奶油蛋糕DIY神器大揭秘!
奶油蛋糕装饰大赛:谁是最强甜点师?
各大银行营业时间表 银行上班时间一览
《尘白禁区》键位设置与操作技巧详解
肩膀凉凉的是怎么回事
赵丽蓉春晚小品:那些年,我们一起追过的流行语
狮子座版《爱情公寓》:浪漫与忠诚的碰撞