From 4fc2a2ee5d5550cac1b0a9245bceb428535fa617 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Mon, 13 Jun 2022 11:51:56 +0200 Subject: [PATCH] Backlight API fixes --- .../src/gui/common/stdlcd/draw_functions.cpp | 2 +- .../common/arm/stm32/bootloader/boot.cpp | 2 +- radio/src/targets/horus/backlight_driver.cpp | 5 +++++ radio/src/targets/horus/board.h | 13 +++++------ radio/src/targets/nv14/backlight_driver.cpp | 7 ++++++ radio/src/targets/nv14/board.h | 22 +++++++++---------- radio/src/targets/simu/backlight_driver.cpp | 1 + .../src/targets/taranis/backlight_driver.cpp | 21 ++++++++++++++++++ radio/src/targets/taranis/board.h | 20 +++++++++-------- 9 files changed, 64 insertions(+), 29 deletions(-) diff --git a/radio/src/gui/common/stdlcd/draw_functions.cpp b/radio/src/gui/common/stdlcd/draw_functions.cpp index 2ddb186c6..047a61513 100644 --- a/radio/src/gui/common/stdlcd/draw_functions.cpp +++ b/radio/src/gui/common/stdlcd/draw_functions.cpp @@ -589,7 +589,7 @@ void drawFatalErrorScreen(const char * message) void runFatalErrorScreen(const char * message) { while (true) { - backlightEnable(); + backlightFullOn(); drawFatalErrorScreen(message); uint8_t refresh = false; diff --git a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp index 825916d77..906fdf1bb 100644 --- a/radio/src/targets/common/arm/stm32/bootloader/boot.cpp +++ b/radio/src/targets/common/arm/stm32/bootloader/boot.cpp @@ -271,7 +271,7 @@ void bootloaderInitApp() lcdInit(); backlightInit(); - backlightEnable(); + backlightFullOn(); #if defined(BLUETOOTH) // we shutdown the bluetooth module now to be sure it will be detected on firmware start diff --git a/radio/src/targets/horus/backlight_driver.cpp b/radio/src/targets/horus/backlight_driver.cpp index 87f914832..19b3bcc92 100644 --- a/radio/src/targets/horus/backlight_driver.cpp +++ b/radio/src/targets/horus/backlight_driver.cpp @@ -103,3 +103,8 @@ void backlightEnable(uint8_t dutyCycle) BACKLIGHT_TIMER->BDTR |= TIM_BDTR_MOE; } } + +void backlightFullOn() +{ + backlightEnable(BACKLIGHT_LEVEL_MAX); +} diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index 86e55fd85..8bba435ee 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -542,12 +542,6 @@ void DMABitmapConvert(uint16_t * dest, const uint8_t * src, uint16_t w, uint16_t #define lcdRefreshWait(...) // Backlight driver -void backlightInit(); -#if defined(SIMU) || !defined(__cplusplus) -#define backlightEnable(...) -#else -void backlightEnable(uint8_t dutyCycle = 0); -#endif #define BACKLIGHT_LEVEL_MAX 100 #define BACKLIGHT_FORCED_ON BACKLIGHT_LEVEL_MAX + 1 #if defined(PCBX12S) @@ -557,7 +551,13 @@ void backlightEnable(uint8_t dutyCycle = 0); #else #define BACKLIGHT_LEVEL_MIN 46 #endif + extern bool boardBacklightOn; +void backlightInit(); +void backlightEnable(uint8_t dutyCycle); +void backlightFullOn(); +bool isBacklightEnabled(); + #define BACKLIGHT_ENABLE() \ { \ boardBacklightOn = true; \ @@ -574,7 +574,6 @@ extern bool boardBacklightOn; ? 0 \ : g_eeGeneral.blOffBright); \ } -bool isBacklightEnabled(); #if !defined(SIMU) void usbJoystickUpdate(); diff --git a/radio/src/targets/nv14/backlight_driver.cpp b/radio/src/targets/nv14/backlight_driver.cpp index 507d5c5ff..8794e744e 100644 --- a/radio/src/targets/nv14/backlight_driver.cpp +++ b/radio/src/targets/nv14/backlight_driver.cpp @@ -22,6 +22,8 @@ #include "opentx_types.h" #include "board.h" +#include "globals.h" + void backlightInit() { // PIN init @@ -61,6 +63,11 @@ void backlightEnable(uint8_t dutyCycle) lastDutyCycle = dutyCycle; } +void backlightFullOn() +{ + backlightEnable(BACKLIGHT_LEVEL_MAX); +} + void lcdOff() { backlightEnable(0); } diff --git a/radio/src/targets/nv14/board.h b/radio/src/targets/nv14/board.h index ab4a3ae65..b6306859e 100644 --- a/radio/src/targets/nv14/board.h +++ b/radio/src/targets/nv14/board.h @@ -416,22 +416,22 @@ void lcdOn(); #define lcdRefreshWait(...) // Backlight driver -void backlightInit(); -void backlightEnable(uint8_t dutyCycle); -bool isBacklightEnabled(); - #define BACKLIGHT_LEVEL_MAX 100 #define BACKLIGHT_FORCED_ON BACKLIGHT_LEVEL_MAX + 1 #define BACKLIGHT_LEVEL_MIN 1 extern bool boardBacklightOn; +void backlightInit(); +void backlightEnable(uint8_t dutyCycle); +void backlightFullOn(); +bool isBacklightEnabled(); -#define BACKLIGHT_ENABLE() \ - { \ - boardBacklightOn = true; \ - backlightEnable(globalData.unexpectedShutdown \ - ? BACKLIGHT_LEVEL_MAX \ - : BACKLIGHT_LEVEL_MAX - currentBacklightBright) \ +#define BACKLIGHT_ENABLE() \ + { \ + boardBacklightOn = true; \ + backlightEnable(globalData.unexpectedShutdown \ + ? BACKLIGHT_LEVEL_MAX \ + : BACKLIGHT_LEVEL_MAX - currentBacklightBright); \ } #define BACKLIGHT_DISABLE() \ @@ -441,7 +441,7 @@ extern bool boardBacklightOn; : ((g_eeGeneral.blOffBright == BACKLIGHT_LEVEL_MIN) && \ (g_eeGeneral.backlightMode != e_backlight_mode_off)) \ ? 0 \ - : g_eeGeneral.blOffBright) \ + : g_eeGeneral.blOffBright); \ } #if !defined(SIMU) diff --git a/radio/src/targets/simu/backlight_driver.cpp b/radio/src/targets/simu/backlight_driver.cpp index 409deb27b..0be329a99 100644 --- a/radio/src/targets/simu/backlight_driver.cpp +++ b/radio/src/targets/simu/backlight_driver.cpp @@ -21,6 +21,7 @@ bool boardBacklightOn = false; bool isBacklightEnabled() { return boardBacklightOn; } +void backlightFullOn() { boardBacklightOn = true; } void backlightEnable(unsigned char) {} void backlightEnable(unsigned char, unsigned char) {} diff --git a/radio/src/targets/taranis/backlight_driver.cpp b/radio/src/targets/taranis/backlight_driver.cpp index 84b217087..a5d8e90cd 100644 --- a/radio/src/targets/taranis/backlight_driver.cpp +++ b/radio/src/targets/taranis/backlight_driver.cpp @@ -25,6 +25,7 @@ // no backlight void backlightInit() {} void backlightEnable(uint8_t level) {} + void backlightFullOn() {} void backlightDisable() {} uint8_t isBacklightEnabled() {return false;} #elif defined(PCBX9E) @@ -55,6 +56,11 @@ void backlightEnable(uint8_t level, uint8_t color) BACKLIGHT_TIMER->CCR2 = ((100-level)*color)/20; } +void backlightFullOn() +{ + backlightEnable(0, 0); +} + void backlightDisable() { BACKLIGHT_TIMER->CCR1 = 0; @@ -94,6 +100,11 @@ void backlightEnable(uint8_t level, uint8_t color) BACKLIGHT_TIMER->CCR2 = ((100-level)*color)/20; } +void backlightFullOn() +{ + backlightEnable(0, 0); +} + void backlightDisable() { BACKLIGHT_TIMER->CCR4 = 0; @@ -136,6 +147,11 @@ void backlightEnable(uint8_t level) BACKLIGHT_COUNTER_REGISTER = 100 - level; } +void backlightFullOn() +{ + backlightEnable(0); +} + void backlightDisable() { BACKLIGHT_COUNTER_REGISTER = 0; @@ -170,6 +186,11 @@ void backlightEnable(uint8_t level) BACKLIGHT_TIMER->CCR1 = 100 - level; } +void backlightFullOn() +{ + backlightEnable(0); +} + void backlightDisable() { BACKLIGHT_TIMER->CCR1 = 0; diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index d728236df..77a3a4c52 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -699,19 +699,21 @@ void pwrResetHandler(); #endif // Backlight driver -void backlightInit(); -void backlightDisable(); #define BACKLIGHT_DISABLE() backlightDisable() #define BACKLIGHT_FORCED_ON 101 + +void backlightInit(); +void backlightDisable(); +void backlightFullOn(); uint8_t isBacklightEnabled(); -#if !defined(__cplusplus) - #define backlightEnable(...) -#elif defined(PCBX9E) || defined(PCBX9DP) - void backlightEnable(uint8_t level = 0, uint8_t color = 0); - #define BACKLIGHT_ENABLE() backlightEnable(currentBacklightBright, g_eeGeneral.backlightColor) + +#if defined(PCBX9E) || defined(PCBX9DP) + void backlightEnable(uint8_t level, uint8_t color); + #define BACKLIGHT_ENABLE() \ + backlightEnable(currentBacklightBright, g_eeGeneral.backlightColor) #else - void backlightEnable(uint8_t level = 0); - #define BACKLIGHT_ENABLE() backlightEnable(currentBacklightBright) + void backlightEnable(uint8_t level); + #define BACKLIGHT_ENABLE() backlightEnable(currentBacklightBright) #endif #if !defined(SIMU)