fix(ledc): prevent potential underflow causes multi-fade param calculation errors

Closes https://github.com/espressif/esp-idf/issues/17980
This commit is contained in:
Song Ruo Jing
2026-02-26 16:26:58 +08:00
parent 67290da88f
commit 6987aca1ce
+4
View File
@@ -1828,6 +1828,10 @@ esp_err_t ledc_fill_multi_fade_param_list(ledc_mode_t speed_mode, ledc_channel_t
scale = LEDC_LL_DUTY_SCALE_MAX;
}
step = duty_delta / scale;
// Ensure step * cycle doesn't exceed cycles_per_phase to prevent underflow to surplus_cycles_last_phase
if (step > cycles_per_phase) {
step = cycles_per_phase;
}
}
// Prepare for next phase calculation