mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 11:16:34 +00:00
animate PWM dimmer brightness LEDs during transitions and with variable brightness
This commit is contained in:
parent
b2e1258e22
commit
c8e13366c6
@ -505,9 +505,6 @@ class LightStateClass {
|
||||
uint8_t prev_bri = _briRGB;
|
||||
_briRGB = bri_rgb;
|
||||
if (bri_rgb > 0) { addRGBMode(); }
|
||||
#ifdef USE_PWM_DIMMER
|
||||
if (PWM_DIMMER == TasmotaGlobal.module_type) PWMDimmerSetBrightnessLeds(-1);
|
||||
#endif // USE_PWM_DIMMER
|
||||
return prev_bri;
|
||||
}
|
||||
|
||||
@ -516,9 +513,6 @@ class LightStateClass {
|
||||
uint8_t prev_bri = _briCT;
|
||||
_briCT = bri_ct;
|
||||
if (bri_ct > 0) { addCTMode(); }
|
||||
#ifdef USE_PWM_DIMMER
|
||||
if (PWM_DIMMER == TasmotaGlobal.module_type) PWMDimmerSetBrightnessLeds(-1);
|
||||
#endif // USE_PWM_DIMMER
|
||||
return prev_bri;
|
||||
}
|
||||
|
||||
@ -1958,6 +1952,10 @@ void LightSetOutputs(const uint16_t *cur_col_10) {
|
||||
if (!Settings.flag4.zerocross_dimmer) {
|
||||
analogWrite(Pin(GPIO_PWM1, i), bitRead(TasmotaGlobal.pwm_inverted, i) ? Settings.pwm_range - cur_col : cur_col);
|
||||
}
|
||||
#ifdef USE_PWM_DIMMER
|
||||
// Animate brightness LEDs to follow PWM dimmer brightness
|
||||
if (PWM_DIMMER == TasmotaGlobal.module_type) PWMDimmerSetBrightnessLeds(change10to8(cur_col));
|
||||
#endif // USE_PWM_DIMMER
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -167,6 +167,7 @@ void PWMDimmerSetBrightnessLeds(int32_t bri)
|
||||
uint32_t level = 0;
|
||||
led = -1;
|
||||
mask = 0;
|
||||
uint16_t pwm_led_bri = 0;
|
||||
for (uint32_t count = 0; count < leds; count++) {
|
||||
level += step;
|
||||
for (;;) {
|
||||
@ -175,7 +176,8 @@ void PWMDimmerSetBrightnessLeds(int32_t bri)
|
||||
if (!mask) mask = 1;
|
||||
if (Settings.ledmask & mask) break;
|
||||
}
|
||||
SetLedPowerIdx(led, bri >= level);
|
||||
pwm_led_bri = changeUIntScale((bri > level ? bri - level : 0), 0, step, 0, Settings.pwm_range);
|
||||
analogWrite(Pin(GPIO_LED1, led), bitRead(TasmotaGlobal.led_inverted, led) ? Settings.pwm_range - pwm_led_bri : pwm_led_bri);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -193,7 +195,6 @@ void PWMDimmerSetPoweredOffLed(void)
|
||||
void PWMDimmerSetPower(void)
|
||||
{
|
||||
DigitalWrite(GPIO_REL1, 0, bitRead(TasmotaGlobal.rel_inverted, 0) ? !TasmotaGlobal.power : TasmotaGlobal.power);
|
||||
PWMDimmerSetBrightnessLeds(-1);
|
||||
PWMDimmerSetPoweredOffLed();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user