Add backlight_invert

This commit is contained in:
fvanroie 2021-04-10 17:33:21 +02:00
parent b4aa18074b
commit cc18ff0a15
9 changed files with 33 additions and 18 deletions

View File

@ -115,6 +115,7 @@ void Esp32Device::update_backlight()
{ {
if(_backlight_pin < GPIO_NUM_MAX) { if(_backlight_pin < GPIO_NUM_MAX) {
uint32_t duty = _backlight_power ? map(_backlight_level, 0, 255, 0, 4095) : 0; uint32_t duty = _backlight_power ? map(_backlight_level, 0, 255, 0, 4095) : 0;
if(_backlight_invert) duty = 4095 - duty;
ledcWrite(BACKLIGHT_CHANNEL, duty); // ledChannel and value ledcWrite(BACKLIGHT_CHANNEL, duty); // ledChannel and value
} }
} }

View File

@ -21,7 +21,8 @@ class Esp32Device : public BaseDevice {
_hostname = "plate"; _hostname = "plate";
#endif #endif
_backlight_power = 1; _backlight_power = 1;
_backlight_level = 100; _backlight_invert = 0;
_backlight_level = 255;
#ifdef TFT_BCKL #ifdef TFT_BCKL
_backlight_pin = TFT_BCKL; _backlight_pin = TFT_BCKL;
#else #else
@ -55,6 +56,7 @@ class Esp32Device : public BaseDevice {
uint8_t _backlight_pin; uint8_t _backlight_pin;
uint8_t _backlight_level; uint8_t _backlight_level;
uint8_t _backlight_power; uint8_t _backlight_power;
uint8_t _backlight_invert;
void update_backlight(); void update_backlight();
}; };

View File

@ -82,9 +82,11 @@ bool Esp8266Device::get_backlight_power()
void Esp8266Device::update_backlight() void Esp8266Device::update_backlight()
{ {
if(_backlight_pin == -1) return; if(_backlight_pin < GPIO_NUM_MAX) {
uint32_t duty = _backlight_power ? map(_backlight_level, 0, 255, 0, 1023) : 0;
analogWrite(_backlight_pin, _backlight_power ? map(_backlight_level, 0, 255, 0, 1023) : 0); if(_backlight_invert) duty = 1023 - duty;
analogWrite(_backlight_pin, duty);
}
} }
size_t Esp8266Device::get_free_max_block() size_t Esp8266Device::get_free_max_block()

View File

@ -18,6 +18,7 @@ class Esp8266Device : public BaseDevice {
{ {
_hostname = "plate"; _hostname = "plate";
_backlight_power = 1; _backlight_power = 1;
_backlight_invert = 0;
_backlight_level = 100; _backlight_level = 100;
_core_version = ESP.getCoreVersion().c_str(); _core_version = ESP.getCoreVersion().c_str();
#ifdef TFT_BCKL #ifdef TFT_BCKL
@ -55,6 +56,7 @@ class Esp8266Device : public BaseDevice {
uint8_t _backlight_pin; uint8_t _backlight_pin;
uint8_t _backlight_level; uint8_t _backlight_level;
uint8_t _backlight_power; uint8_t _backlight_power;
uint8_t _backlight_invert;
void update_backlight(); void update_backlight();
}; };

View File

@ -39,6 +39,7 @@ PosixDevice::PosixDevice()
} }
_backlight_power = 1; _backlight_power = 1;
_backlight_invert = 0;
_backlight_level = 100; _backlight_level = 100;
} }
@ -115,6 +116,7 @@ bool PosixDevice::get_backlight_power()
void PosixDevice::update_backlight() void PosixDevice::update_backlight()
{ {
uint8_t level = _backlight_power ? _backlight_level : 0; uint8_t level = _backlight_power ? _backlight_level : 0;
if(_backlight_invert) level = 255 - level;
monitor_backlight(level); monitor_backlight(level);
// SDL_SetTextureColorMod(monitor.texture, level, level, level); // SDL_SetTextureColorMod(monitor.texture, level, level, level);
// window_update(&monitor); // window_update(&monitor);

View File

@ -60,6 +60,7 @@ class PosixDevice : public BaseDevice {
uint8_t _backlight_pin; uint8_t _backlight_pin;
uint8_t _backlight_level; uint8_t _backlight_level;
uint8_t _backlight_power; uint8_t _backlight_power;
uint8_t _backlight_invert;
void update_backlight(); void update_backlight();
}; };

View File

@ -18,6 +18,7 @@ class Stm32f4Device : public BaseDevice {
{ {
_hostname = "plate"; _hostname = "plate";
_backlight_power = 1; _backlight_power = 1;
_backlight_invert = 0;
_backlight_level = 100; _backlight_level = 100;
#ifdef TFT_BCKL #ifdef TFT_BCKL
_backlight_pin = TFT_BCKL; _backlight_pin = TFT_BCKL;
@ -53,6 +54,7 @@ class Stm32f4Device : public BaseDevice {
uint8_t _backlight_pin; uint8_t _backlight_pin;
uint8_t _backlight_level; uint8_t _backlight_level;
uint8_t _backlight_power; uint8_t _backlight_power;
uint8_t _backlight_invert;
void update_backlight(); void update_backlight();
}; };

View File

@ -95,6 +95,7 @@ bool Win32Device::get_backlight_power()
void Win32Device::update_backlight() void Win32Device::update_backlight()
{ {
uint8_t level = _backlight_power ? _backlight_level : 0; uint8_t level = _backlight_power ? _backlight_level : 0;
if(_backlight_invert) level = 255 - level;
monitor_backlight(level); monitor_backlight(level);
} }

View File

@ -48,7 +48,8 @@ class Win32Device : public BaseDevice {
// _backlight_pin = -1; // _backlight_pin = -1;
_backlight_power = 1; _backlight_power = 1;
_backlight_level = 100; _backlight_invert = 0;
_backlight_level = 255;
} }
void reboot() override; void reboot() override;
@ -79,6 +80,7 @@ class Win32Device : public BaseDevice {
uint8_t _backlight_pin; uint8_t _backlight_pin;
uint8_t _backlight_level; uint8_t _backlight_level;
uint8_t _backlight_power; uint8_t _backlight_power;
uint8_t _backlight_invert;
void update_backlight(); void update_backlight();
}; };