当前文档版本为 v0.3.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

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红色指示灯控制引脚相连

3 编译和烧录

例程位置:pan2628_dk\01_SDK\example_basic\pwm\pwm_comp

打开目录下keil下的pwm_comp.uvprojx工程,编译整个代码工程。

4 演示说明

根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载代码后:

  1. 观察RBG三色灯工作状态

  2. 预期状态:

    • 蓝色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