pwm_comp例程¶
1 功能概述¶
本例程是一个演示pwm组互补模式输出的简单例程,通过配置PWM_GROUP1驱动PWM_CH2&PWM_CH3来控制蓝色&红色led。
*注:
pwm模块有三组信号,每组信号由2路pwm通道组成:
PWM_GROUP0由PWM_CH0&PWM_CH1组成;
PWM_GROUP1由PWM_CH2&PWM_CH3组成;
PWM_GROUP2由PWM_CH4&PWM_CH5组成;
本示例用pwm group1来做功能演示,硬件连接如下
P1_2 -> J17 -> PWM_CH2(丝印显示PWM1) –> 蓝色led
P3_0 -> J18 -> PWM_CH3(丝印显示PWM2) –> 红色led
2 环境要求¶
Board: PAN2628b1_evb
将 J17 开关拔至丝印PWM1侧,将P1_2与RGB蓝色指示灯控制引脚相连
将 J18 开关拔至丝印PWM2侧,将P3_0与RGB红色指示灯控制引脚相连
4 演示说明¶
根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载代码后:
观察RBG三色灯工作状态
预期状态:
蓝色led 熄灭, 红色led100%亮度,持续1秒;
蓝色led 30%亮度,红色led 70%亮度,持续1秒;
蓝色led 60%亮度,红色led 40%亮度,持续1秒;
蓝色led100%亮度,红色led 熄灭, 持续1秒;
以上过程循环。
说明:
蓝色led由PWM_CH2控制;红色led由PWM_CH3控制;PWM_CH2与PWM_CH3为一组互补信号,
也就是说:PWM_CH2的占空比 + PWM_CH2的占空比 = pwm period(示例里的period为1000)
5 开发说明¶
通过调用 pwm.c 的PWM_BaseConfig()、PWM_PeriodConfig()、PWM_GroupDutyConfig()、PWM_ChannelEnable()、PWM_Start()
函数接口配置GPIO的工作模式。
/** Config pwm to group mode */
PWM_BaseConfig(PWM_ModeGrpComp, PWM_CLK_DIV2);
/** Config pwm group1(CH2&CH3) period */
PWM_PeriodConfig(PWM_GROUP1, 1000);
/** Config pwm group1(CH2&CH3) duty */
PWM_GroupDutyConfig(PWM_GROUP1, 500);
/** Enable pwm channel2/3 */
PWM_ChannelEnable(PWM_CH2, ENABLE);
PWM_ChannelEnable(PWM_CH3, ENABLE);
/** Pwm channel2/3/4 start */
PWM_Start(PWM_GROUP1);
6 RAM/Flash资源使用情况¶
Program Size: data=9.0 xdata=5 const=0 code=1291