共2条
1/1 1 跳转至页
问
请教周工或其它老师,如何用2214输出2路PWM信号以互补的方式驱动两只MOS管。输出脚为PWM2,PWM5,频率为400Hz.占空比可调或设为1:1。谢谢!
答 1:
可以使用双边沿输出模式。可以参考《基础教程》的相关内容。
根据表5.129,匹配1=匹配5,匹配2=匹配4,即可实现反相。它们同步修改就可以控制占空比。周期由匹配0控制。 答 2: 请教周工,PWM5为什么没有?/****************************************************************************
* 文件名:PWM2OUT.C
* 功能:输出两路PWM
* 说明:PWM5为单边沿控制,PWM2为双边沿控制,并滞后半个周期。
* 入口参数:PWM_T,PWM_D
* 出口参数:无
****************************************************************************/
void PWM2OUT(uint32 PWM_T,uint32 PWM_D)
{ PINSEL0 = PINSEL0|0x8000; // 设置PWM2连接到P0.7管脚
PINSEL1 = PINSEL1|0x800; // 设置PWM5连接到P0.21管脚
PWMPCR = 0x2404; // 允许PWM2双边沿输出,PWM5单边沿输出 PWMPR = 0x00; // 不分频,计数频率为Fpclk
PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC
PWMMR0 = PWM_T; // 设置PWM周期
PWMMR1 = PWM_T/2; // 设置置位寄存器匹配值,在下半周期开始置高
PWMMR2 = PWM_T/2+PWM_D; // 复位匹配值
PWMMR5 = PWM_D; // 单边沿PWM输出
PWMLER = 0x27; // PWMMR0、PWMMR1、PWMMR2、PWMMR5锁存
PWMTCR = 0x09; // 启动定时器,PWM使能
}
void PWMOUT(uint32 PWM_T,uint32 PWM_D)
{
PINSEL1= PINSEL1|0x800; // 设置PWM5连接到P0.21管脚
PWMPR = 0x00; // 不分频,计数频率为Fpclk
PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC
PWMMR0 = PWM_T; // 设置PWM周期
PWMMR5 = PWM_D; // 单边沿PWM输出
PWMLER = 0x21; // PWMMR5锁存
PWMPCR = 0x2000; // 允许PWM5单边沿输出
PWMTCR = 0x09; // 启动定时器,PWM使能
}
本人初学,请不吝指教! 答 3: 说明说明:调用PWM2OUT可以输出PWM2,但没有PWM5.调用PWMOUT也没有输出,但改为PWM6则可以输出。另外,我想问一下PWMPR是如何定义的,书上好象没有说
根据表5.129,匹配1=匹配5,匹配2=匹配4,即可实现反相。它们同步修改就可以控制占空比。周期由匹配0控制。 答 2: 请教周工,PWM5为什么没有?/****************************************************************************
* 文件名:PWM2OUT.C
* 功能:输出两路PWM
* 说明:PWM5为单边沿控制,PWM2为双边沿控制,并滞后半个周期。
* 入口参数:PWM_T,PWM_D
* 出口参数:无
****************************************************************************/
void PWM2OUT(uint32 PWM_T,uint32 PWM_D)
{ PINSEL0 = PINSEL0|0x8000; // 设置PWM2连接到P0.7管脚
PINSEL1 = PINSEL1|0x800; // 设置PWM5连接到P0.21管脚
PWMPCR = 0x2404; // 允许PWM2双边沿输出,PWM5单边沿输出 PWMPR = 0x00; // 不分频,计数频率为Fpclk
PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC
PWMMR0 = PWM_T; // 设置PWM周期
PWMMR1 = PWM_T/2; // 设置置位寄存器匹配值,在下半周期开始置高
PWMMR2 = PWM_T/2+PWM_D; // 复位匹配值
PWMMR5 = PWM_D; // 单边沿PWM输出
PWMLER = 0x27; // PWMMR0、PWMMR1、PWMMR2、PWMMR5锁存
PWMTCR = 0x09; // 启动定时器,PWM使能
}
void PWMOUT(uint32 PWM_T,uint32 PWM_D)
{
PINSEL1= PINSEL1|0x800; // 设置PWM5连接到P0.21管脚
PWMPR = 0x00; // 不分频,计数频率为Fpclk
PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC
PWMMR0 = PWM_T; // 设置PWM周期
PWMMR5 = PWM_D; // 单边沿PWM输出
PWMLER = 0x21; // PWMMR5锁存
PWMPCR = 0x2000; // 允许PWM5单边沿输出
PWMTCR = 0x09; // 启动定时器,PWM使能
}
本人初学,请不吝指教! 答 3: 说明说明:调用PWM2OUT可以输出PWM2,但没有PWM5.调用PWMOUT也没有输出,但改为PWM6则可以输出。另外,我想问一下PWMPR是如何定义的,书上好象没有说
共2条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 这个春节你犒赏自己什么了?分享你的故事,有奖征集 | |
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
我要赚赏金打赏帖 |
|
|---|---|
| 【S32K3XX】SWT 模块使用被打赏¥22元 | |
| 【分享开发笔记,赚取280元手持便携数字示波器】32位linux内核内存映射896的理解被打赏¥14元 | |
| AG32VH407开发板例程体系的构成与使用方法被打赏¥20元 | |
| 【S32K3XX】SEMA42 模块使用被打赏¥26元 | |
| 【S32K3XX】XRDC 功能使用被打赏¥22元 | |
| 【分享开发笔记,赚取280元手持便携数字示波器】8051使用keil编译的程序移动心得被打赏¥21元 | |
| 【S32K3XX】HSE 密钥管理被打赏¥17元 | |
| 【S32K3XX】Standby RAM的初始化流程被打赏¥18元 | |
| Gravity:中英文语音合成模块V2.0及其串口控制被打赏¥24元 | |
| 全彩色度变化图的绘制被打赏¥27元 | |
我要赚赏金
