单片机解析再生成双通道PWM信号

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36278071/article/details/81283768

单片机双通道PWM信号的解析再生成

背景


使用航模遥控器控制两个电机的转速,由于航模遥控器输出的PWM波占空比太低,并且可调范围很小,无法带动和控制大电机。因此我们需要对航模遥控器输出的PWM波形进行重整。51单片机只有两个外部中断和两个定时计数器,资源较少,所以我想到了一下几个办法。
航模遥控器

设计方案


设计方案一(不可行)

中断 功能
INT0 10ms计时单位
INT1 拆分为两个八位计数器高电平计时
不可行原因:
1.两个8位计数器每次最多计数0.27ms。
2.将INT1拆分后要使用到INT0的控制位对拆分出来的8位计数器进行控制,导致INT0无法使用。

设计方案二(不可行)

利用外部中断判断周期,计数器0,1分别控制输出进行反转。

不可行原因:
计数器0,1控制输出反转为冗余操作。方案三是方案二的改进版。

设计方案三(可行)

中断 功能
INT0,INT1 分别判断两个周期,并且分别设置Timer0,1的计数值
Timer0,Timer1 两个计数器分别控制两个PWM波的高电平时间
注意事项:
需要注意的是INT0和INT1都是下降沿有效,所以我在INT0和INT1之前加了一个反相器。

代码设计

由于之前写的时候没注意汉字格式,为了防止乱码我就直接上图片了。
源代码请自行下载。(不想收积分但是又没钱开会员了只能祈求阁下赏两个积分让我下载个文件了)

主函数

主函数负责持续记录高电平的持续时间。

这里写图片描述

中断函数

外部中断负责检测周期开始并将计数值清零,填入计数器中高电平持续时间。

这里写图片描述

效果展示


接收机输出源PWM信号

PWM波

进行再生成的PWM信号

PWM信号

源代码下载

不想收积分但是又没钱开会员了只能祈求阁下赏两个积分让我下载个文件吧。
单片机解析再生成双通道PWM信号

猜你喜欢

转载自blog.csdn.net/qq_36278071/article/details/81283768