优化闪烁和呼吸最低亮度

This commit is contained in:
2026-07-27 13:03:43 +08:00
parent 9e64addaec
commit 18f0a2e2a4
@@ -6,6 +6,7 @@ volatile uint8_t Light_Transition_FadeActive;
#define LIGHT_FADE_STEP 1U
#define BRIGHTNESS_SMOOTH_SHIFT 4U
#define BREATH_MIN_OUTPUT 1U
/*
* Gamma 1.8, mapping APP levels 1..100 to a stable physical range of
@@ -94,8 +95,25 @@ void Light_Transition_Task(void)
(uint16_t)(((uint32_t)W_PWM * brightness_scale + 2048U) >> 12);
target_c =
(uint16_t)(((uint32_t)C_PWM * brightness_scale + 2048U) >> 12);
W_PWM_duty = approach_target(W_PWM_duty, target_w);
C_PWM_duty = approach_target(C_PWM_duty, target_c);
if(Mode == mode1 && target_brightness != 0U)
{
if(W_PWM != 0U && target_w < BREATH_MIN_OUTPUT)
target_w = BREATH_MIN_OUTPUT;
if(C_PWM != 0U && target_c < BREATH_MIN_OUTPUT)
target_c = BREATH_MIN_OUTPUT;
}
if(Mode == mode2 && deviceStatus != POWEROFF)
{
W_PWM_duty = target_w;
C_PWM_duty = target_c;
}
else
{
W_PWM_duty = approach_target(W_PWM_duty, target_w);
C_PWM_duty = approach_target(C_PWM_duty, target_c);
}
Light_Transition_FadeActive =
deviceStatus == POWEROFF && (W_PWM_duty != 0U || C_PWM_duty != 0U);