生成两路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波,适用于需要特定相位关系的控制场景,如电机控制等。
热门推荐
减内脏脂肪吃什么食物
租房合同里电费水费每月怎么交
过了41周还不生,医生会采取哪些医疗措施?
梦见小孩牙齿掉了的解析
世界烟花看浏阳丨烟花与村庄故事的融合
心理创伤怎么治疗?教你5个自我疗法!
颈椎生理曲度变直,怎么办?
突破思维局限:用“冰山模型”深度解析问题的本质
探究袁术自称"仲氏皇帝"的缘由与历史背景
如何设计合理的上下床插座布局?这种布局怎样满足实际需求?
如何通过改装大电池提升混动汽车的续航里程?
从经典到当下:女性写作的无限可能
玄奘法师翻译《心经》的因缘
职称评审的标准有哪些?
如何确定近视散光插片验光的顺序
从西江千户苗寨到铜仁梵净山的路程、交通方式及旅行建议
这几条骑行路线带你穿越“秋天童话”!一起出发~
混编歼35战机,中国三艘航母,舰载机总量,到底增加多少?
什么样的杯适合喝茶叶?适合泡茶与品茶的选择
Dusk City《群青の魔女》全BOSS攻略指南及打法技巧
Windows 11软件卸载在哪操作?如何彻底卸载软件?
M5螺纹底孔的大小是多少,如何测量和确认底孔大小
OpenAI OpenAPI 规范:探索 OpenAI API 的标准化接口定义
交通事故车损费怎么赔偿
中国历史上的大规模禁书事件
孩子发烧的处理方法
私家车跑网约车需要什么手续?车主:后悔没早知道……
SUS304(奥氏体不锈钢)时效成形性
快40了,学AI还能找到高薪工作吗?
有线中继是什么?它在通信中扮演怎样的角色?