pwm_single例程¶
1 功能概述¶
本例程是一个演示pwm独立模式输出的简单例程,通过PWM通道2、3、4控制RBG三色灯亮度的过程。
说明:
pwm模块有6个独立通道:PWM_CH0 ~ PWM_CH5。
本示例用PWM_CH2/3/4来做功能演示,硬件连接如下:
P1_2 -> J17 -> PWM_CH2(丝印显示PWM1) –> 蓝色led
P3_0 -> J18 -> PWM_CH3(丝印显示PWM2) –> 红色led
P3_1 -> J19 -> PWM_CH4(丝印显示PWM3) –> 绿色led
2 环境要求¶
Board: pan2628b1_evb
将 J17 开关拔至丝印PWM1侧,将P1_2与RGB蓝色指示灯控制引脚相连
将 J18 开关拔至丝印PWM2侧,将P3_0与RGB红色指示灯控制引脚相连
将 J19 开关拔至丝印PWM3侧,将P3_1与RGB绿色指示灯控制引脚相连
3 编译和烧录¶
例程位置:pan2628_dk\01_SDK\example_basic\pwm\pwm_single
打开目录下keil下的pwm_single.uvprojx工程,编译整个代码工程。
4 演示说明¶
根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载代码后:
观察RBG三色灯工作状态
预期状态:蓝色led亮1秒 -> 红色亮1秒 -> 绿色亮1秒;以上过程循环。
5 开发说明¶
通过调用 gpio.c 的PWM_BaseConfig()、PWM_PeriodConfig()、PWM_SingleDutyConfig()、PWM_ChannelEnable()、PWM_Start()
函数接口配置GPIO的工作模式。
/** Config pwm to single mode */
PWM_BaseConfig(PWM_ModeSingle, PWM_CLK_DIV1);
/** Config pwm channel2/3/4 period */
PWM_PeriodConfig(PWM_CH2, 1000-1);
PWM_PeriodConfig(PWM_CH3, 1000-1);
PWM_PeriodConfig(PWM_CH4, 1000-1);
/** Config pwm channel2/3/4 duty */
PWM_SingleDutyConfig(PWM_CH2, 299);
PWM_SingleDutyConfig(PWM_CH3, 299);
PWM_SingleDutyConfig(PWM_CH4, 299);
/** Enable pwm channel2/3/4 */
PWM_ChannelEnable(PWM_CH2, ENABLE);
PWM_ChannelEnable(PWM_CH3, ENABLE);
PWM_ChannelEnable(PWM_CH4, ENABLE);
/** Pwm channel2/3/4 start */
PWM_Start(PWM_CH2);
PWM_Start(PWM_CH3);
PWM_Start(PWM_CH4);
6 RAM/Flash资源使用情况¶
Program Size: data=9.0 xdata=5 const=0 code=1205