From f4a2c59ab2a1bd00e58a774579aefb7e5b858342 Mon Sep 17 00:00:00 2001 From: Th3maz1ng Date: Sun, 1 Jan 2023 18:59:27 +0100 Subject: [PATCH] Reworked the way the pwm brightness works --- src/W800 SDK v1.00.08/app/drivers/lcd/lcd.c | 24 +++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/W800 SDK v1.00.08/app/drivers/lcd/lcd.c b/src/W800 SDK v1.00.08/app/drivers/lcd/lcd.c index a1669b9..97837c9 100644 --- a/src/W800 SDK v1.00.08/app/drivers/lcd/lcd.c +++ b/src/W800 SDK v1.00.08/app/drivers/lcd/lcd.c @@ -78,7 +78,7 @@ const uint8_t gc9a01_init_seq[] = { 0x02, 0, 0x8E, 0xFF, 0x02, 0, 0x8F, 0xFF, 0x03, 0, 0xB6, 0x00, 0x00, - 0x02, 0, 0x36, 0x48, + 0x02, 0, 0x36, 0x88, 0x02, 0, 0x3A, 0x55, 0x05, 0, 0x90, 0x08, 0x08, 0x08, 0x08, 0x02, 0, 0xBD, 0x06, @@ -298,10 +298,6 @@ void lcd_register_draw_finished_cb(LCDConfig_t * const LCDConfig, DrawFinishedCb void lcd_init(LCDConfig_t * const LCDConfig) { if(!LCDConfig) return; - - // Backlight is controlled using PWM - wm_pwm4_config(LCDConfig->LCDPWMBacklightPin); - tls_pwm_init(4, 10000, 0, 0); //tls_gpio_cfg(LCDConfig->LCDPWMBacklightPin, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING); tls_gpio_cfg(LCDConfig->LCDChipSelectPin, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING); @@ -421,7 +417,23 @@ void lcd_set_backlight(LCDConfig_t * const LCDConfig, uint8_t brightness) { if(!LCDConfig) return; - tls_pwm_duty_set(4, brightness); + if(brightness) + { + // Backlight is controlled using PWM + wm_pwm4_config(LCDConfig->LCDPWMBacklightPin); + // Set pwm to 10kHz + tls_pwm_init(4, 10000, 0, 0); + // Set brightness + tls_pwm_duty_set(4, brightness); + } + else + { + // We stop the pwm + tls_pwm_stop(4); + tls_gpio_cfg(LCDConfig->LCDPWMBacklightPin, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING); + tls_gpio_write(LCDConfig->LCDPWMBacklightPin, 0); + } + } void lcd_hardware_reset(LCDConfig_t * const LCDConfig)