From 3e9a6b79d3ee8ad2017af22b243de555119fd16a Mon Sep 17 00:00:00 2001 From: ErNis <4658853+erstec@users.noreply.github.com> Date: Sat, 20 Nov 2021 13:55:15 +0200 Subject: [PATCH] Taranis-based B/W: Initial Contrast fix --- radio/src/gui/128x64/lcd.cpp | 13 +++++++++---- radio/src/gui/212x64/lcd.cpp | 13 +++++++++---- radio/src/targets/taranis/board.cpp | 4 ++++ radio/src/targets/taranis/board.h | 4 +++- radio/src/targets/taranis/bootloader/boot_menu.cpp | 1 + 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/radio/src/gui/128x64/lcd.cpp b/radio/src/gui/128x64/lcd.cpp index 09f602a1b..5652471db 100644 --- a/radio/src/gui/128x64/lcd.cpp +++ b/radio/src/gui/128x64/lcd.cpp @@ -952,10 +952,6 @@ void drawGPSSensorValue(coord_t x, coord_t y, TelemetryItem & telemetryItem, Lcd drawGPSPosition(x, y, telemetryItem.gps.longitude, telemetryItem.gps.latitude, flags); } -void lcdSetContrast() -{ - lcdSetRefVolt(g_eeGeneral.contrast); -} #define LCD_BYTE_FILTER(p, keep, add) *(p) = (*(p) & (keep)) | (add) @@ -999,6 +995,15 @@ void lcdDraw1bitBitmap(coord_t x, coord_t y, const uint8_t * img, uint8_t idx, L #endif +void lcdSetContrast(bool useDefault) +{ +#if defined(BOOT) + lcdSetRefVolt(LCD_CONTRAST_DEFAULT); +#else + lcdSetRefVolt(useDefault ? LCD_CONTRAST_DEFAULT : g_eeGeneral.contrast); +#endif +} + void lcdMaskPoint(uint8_t * p, uint8_t mask, LcdFlags att) { ASSERT_IN_DISPLAY(p); diff --git a/radio/src/gui/212x64/lcd.cpp b/radio/src/gui/212x64/lcd.cpp index 15dafe646..7da7583a8 100644 --- a/radio/src/gui/212x64/lcd.cpp +++ b/radio/src/gui/212x64/lcd.cpp @@ -820,12 +820,17 @@ void drawGPSSensorValue(coord_t x, coord_t y, TelemetryItem & telemetryItem, Lcd } } -void lcdSetContrast() -{ - lcdSetRefVolt(g_eeGeneral.contrast); -} #endif // BOOT +void lcdSetContrast(bool useDefault) +{ +#if defined(BOOT) + lcdSetRefVolt(LCD_CONTRAST_DEFAULT); +#else + lcdSetRefVolt(useDefault ? LCD_CONTRAST_DEFAULT : g_eeGeneral.contrast); +#endif +} + void lcdMaskPoint(uint8_t *p, uint8_t mask, LcdFlags att) { if ((p) >= DISPLAY_END) { diff --git a/radio/src/targets/taranis/board.cpp b/radio/src/targets/taranis/board.cpp index 2f2ce2e94..eb2b3508f 100644 --- a/radio/src/targets/taranis/board.cpp +++ b/radio/src/targets/taranis/board.cpp @@ -226,6 +226,10 @@ void boardInit() #endif backlightInit(); + +#if defined(GUI) + lcdSetContrast(true); +#endif } void boardOff() diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index f9422faa6..104340d40 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -951,7 +951,9 @@ void lcdRefresh(); void lcdRefresh(bool wait=true); // TODO uint8_t wait to simplify this #endif void lcdSetRefVolt(unsigned char val); -void lcdSetContrast(); +#ifdef __cplusplus +void lcdSetContrast(bool useDefault = false); +#endif // Top LCD driver #if defined(TOPLCD_GPIO) diff --git a/radio/src/targets/taranis/bootloader/boot_menu.cpp b/radio/src/targets/taranis/bootloader/boot_menu.cpp index 680e6d488..a16d6e714 100644 --- a/radio/src/targets/taranis/bootloader/boot_menu.cpp +++ b/radio/src/targets/taranis/bootloader/boot_menu.cpp @@ -27,6 +27,7 @@ extern MemoryType memoryType; void bootloaderInitScreen() { + lcdSetContrast(true); } static void bootloaderDrawMsg(unsigned int x, const char *str, uint8_t line, bool inverted)