mirror of https://github.com/arendst/Tasmota.git
Fix initial displaydimmer state
This commit is contained in:
parent
c699131103
commit
9517677fb2
|
@ -237,6 +237,7 @@ uint16_t dsp_rad;
|
||||||
uint16_t dsp_color;
|
uint16_t dsp_color;
|
||||||
int16_t dsp_len;
|
int16_t dsp_len;
|
||||||
|
|
||||||
|
bool disp_apply_display_dimmer_request = false;
|
||||||
int8_t disp_power = -1;
|
int8_t disp_power = -1;
|
||||||
uint8_t disp_device = 0;
|
uint8_t disp_device = 0;
|
||||||
uint8_t disp_refresh = 1;
|
uint8_t disp_refresh = 1;
|
||||||
|
@ -1840,15 +1841,12 @@ void DisplayLocalSensor(void)
|
||||||
\*********************************************************************************************/
|
\*********************************************************************************************/
|
||||||
|
|
||||||
void DisplayInitDriver(void) {
|
void DisplayInitDriver(void) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
XdspCall(FUNC_DISPLAY_INIT_DRIVER);
|
XdspCall(FUNC_DISPLAY_INIT_DRIVER);
|
||||||
|
|
||||||
// AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "Display model %d"), Settings->display_model);
|
// AddLog(LOG_LEVEL_DEBUG, PSTR(D_LOG_DEBUG "Display model %d"), Settings->display_model);
|
||||||
|
|
||||||
if (Settings->display_model) {
|
if (Settings->display_model) {
|
||||||
// ApplyDisplayDimmer(); // Not allowed here. Way too early in initi sequence. IE power state has not even been set at this point in time
|
// ApplyDisplayDimmer(); // Not allowed here. Way too early in init sequence. Global power state has not been set at this point in time
|
||||||
|
|
||||||
#ifdef USE_MULTI_DISPLAY
|
#ifdef USE_MULTI_DISPLAY
|
||||||
Set_display(0);
|
Set_display(0);
|
||||||
|
@ -1999,7 +1997,9 @@ void CmndDisplayMode(void) {
|
||||||
|
|
||||||
// Apply the current display dimmer
|
// Apply the current display dimmer
|
||||||
void ApplyDisplayDimmer(void) {
|
void ApplyDisplayDimmer(void) {
|
||||||
|
disp_apply_display_dimmer_request = true;
|
||||||
if ((disp_power < 0) || !disp_device) { return; } // Not initialized yet
|
if ((disp_power < 0) || !disp_device) { return; } // Not initialized yet
|
||||||
|
disp_apply_display_dimmer_request = false;
|
||||||
|
|
||||||
uint8_t dimmer8 = changeUIntScale(GetDisplayDimmer(), 0, 100, 0, 255);
|
uint8_t dimmer8 = changeUIntScale(GetDisplayDimmer(), 0, 100, 0, 255);
|
||||||
uint16_t dimmer10_gamma = ledGamma10(dimmer8);
|
uint16_t dimmer10_gamma = ledGamma10(dimmer8);
|
||||||
|
@ -2896,6 +2896,11 @@ bool Xdrv13(uint32_t function)
|
||||||
case FUNC_PRE_INIT:
|
case FUNC_PRE_INIT:
|
||||||
DisplayInitDriver();
|
DisplayInitDriver();
|
||||||
break;
|
break;
|
||||||
|
case FUNC_INIT:
|
||||||
|
if (disp_apply_display_dimmer_request) {
|
||||||
|
ApplyDisplayDimmer(); // Allowed here.
|
||||||
|
}
|
||||||
|
break;
|
||||||
case FUNC_EVERY_50_MSECOND:
|
case FUNC_EVERY_50_MSECOND:
|
||||||
if (Settings->display_model) { XdspCall(FUNC_DISPLAY_EVERY_50_MSECOND); }
|
if (Settings->display_model) { XdspCall(FUNC_DISPLAY_EVERY_50_MSECOND); }
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue