生成两路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波,适用于需要特定相位关系的控制场景,如电机控制等。
热门推荐
孩子性格急躁没有耐心怎么引导
两种方法优化嵌入模型
“火车拉起来的城市”郑州,凭什么成为八大古都之一
养生十法,固本培元,颐养天年
我国53万儿童“性早熟”:催熟孩子的,不是鸡肉和豆浆,而是这4个因素
蛋白尿是什么原因引起的,能治好吗
《三国志8重制版》关系系统完全攻略:亲密度、金兰、配偶与相生相克详解
咳咳咳,春季呼吸道疾病怎么应对?
银杏叶提取物片和银杏叶片的区别
建好充电基础设施 让新能源汽车跑得更远
古代的盔甲能挡住子弹吗?防弹衣和古代铠甲谁厉害?
全球最大打桩船“首秀”杭州湾跨海铁路大桥
查理·芒格的投资智慧:穿越周期的理性箴言与永恒哲学(珍藏版)
草坪为什么要定期割草
从《红楼梦》看命运的无常:那些令人唏嘘的人生起伏
出了交通事故先打什么电话
胸口上部正中间脖子下面,一按压就疼痛是怎么回事?
蚀刻特性及铜箔特性对PCB线路品质的影响
内开窗尺寸标准,内开窗尺寸规范
知道自动启停系统的真相后你还想要吗?
皮肤局部增厚的原因及处理方法
心肌梗塞救命指南:识别7大前兆与降低风险心法
垂体瘤术后浑身发抖的原因及处理方法
眼视光专业本科毕业,就业前景咋样?🧐
雄安之妙:看,建筑“扬”起中国风
上睑下垂的定义、成因与改善方法详解
车牌号更改的流程和条件是怎样的?如何合法进行车牌号更改?
杭州富阳9个绝美古村落
原神宵宫各武器圣遗物伤害期望对比介绍
梦见被抢劫了预示什么