PB03F学习之PWM调节LCD背光

[复制链接]
查看271 | 回复4 | 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 sujingliang 于 2024-11-1 20:14 编辑

调节LCD背光涉及PWM和GPIO外部中断

一、PWM
  1. static pwm_ch_t light_pwm_ch;
  2. static uint16_t lightVal=255; //亮度 255最暗,0最亮
复制代码

PWM初始化
  1. /*
  2. * 频率=16/N/(TOP_VAL+1)=16M/1/(255+1)=62500hz
  3. */
  4. void light_pwm_init(void)
  5. {
  6. hal_pwm_module_init();

  7. light_pwm_ch.pwmN = (PWMN_e)(PWM_CH0);        //CH0
  8. light_pwm_ch.pwmPin = GPIO_P34;                //PWM输出PIN
  9. light_pwm_ch.pwmDiv = PWM_CLK_NO_DIV;        //不分频
  10. light_pwm_ch.pwmMode = PWM_CNT_UP;                //up mode
  11. light_pwm_ch.pwmPolarity = PWM_POLARITY_RISING;        //输出极性
  12. light_pwm_ch.cmpVal = 0;                        //
  13. light_pwm_ch.cntTopVal = 255;                        //

  14. }
复制代码
hal_pwm_module_init();初始化PWM为初始值,相当于清空。

控制LED亮度函数,cmpVal数值影响占空比
  1. int light_ctrl(uint16_t value)
  2. {
  3.         light_pwm_ch.cmpVal=value;
  4.    
  5.   hal_pwm_ch_start(light_pwm_ch);
  6.   return PPlus_SUCCESS;
  7. }
复制代码

二、GPIO外部中断
  1. void posedge_int_cb(GPIO_Pin_e pin,IO_Wakeup_Pol_e type)
  2. {
  3.         if(type == POSEDGE)
  4.         {
  5.                 lightVal++;
  6.                 if(lightVal>255) lightVal=0;
  7.                 light_ctrl(lightVal);
  8.         }
  9. }

  10. void negedge_int_cb(GPIO_Pin_e pin,IO_Wakeup_Pol_e type)
  11. {
  12.         if(type == NEGEDGE)
  13.         {

  14.         }
  15. }

  16. void Key_P15_Init(void)
  17. {
  18.         hal_gpio_init();
  19.   hal_gpioretention_register(P15);
  20.         hal_gpio_pin_init(P15,IE);
  21.         hal_gpioin_register(P15,posedge_int_cb,negedge_int_cb);
  22. }
  23.         
复制代码
hal_gpioin_register注册 GPIO 的输入模式,该模式下支持中断和唤醒回调,包括上升沿回调和下降沿回调函数
在上升沿回调中调用了light_ctrl(lightVal)调节亮度。

三、OSAL task init函数中增加

  1. light_pwm_init();
  2. Key_P15_Init();
复制代码

四、效果
没有防抖设计,按一下P15好像背光值不只加1。
tutieshi_480x270_4s.gif


回复

使用道具 举报

粉肠 | 4 天前 | 显示全部楼层
好强
回复

使用道具 举报

爱笑 | 3 天前 | 显示全部楼层
学习学习
用心做好保姆工作
回复

使用道具 举报

不错不错
回复

使用道具 举报

小小鸟 | 昨天 08:27 | 显示全部楼层
👍👍👍
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则