1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-16 12:55:19 +03:00

Reset d_min to 0 if >= D gain for a given axis

Eliminates the dual-mode disabled logic for d_min for consistency. Previously d_min would logically be disabled if set to 0, or if >= the related D gain. This produces an inconsistent behavior with the Configurator in that it applies validation and will reset d_min to 0 in this case - causing an unexpected settings change just by saving on the PID Tuning tab.

This change aligns the validation in the firmware and Configurator.
This commit is contained in:
Bruce Luckcuck 2019-05-04 10:40:19 -04:00
parent de1c1d5377
commit 6e72d5bd5b

View file

@ -214,6 +214,13 @@ static void validateAndFixConfig(void)
if (pidProfilesMutable(i)->auto_profile_cell_count > MAX_AUTO_DETECT_CELL_COUNT || pidProfilesMutable(i)->auto_profile_cell_count < AUTO_PROFILE_CELL_COUNT_CHANGE) {
pidProfilesMutable(i)->auto_profile_cell_count = AUTO_PROFILE_CELL_COUNT_STAY;
}
// If the d_min value for any axis is >= the D gain then reset d_min to 0 for consistent Configurator behavior
for (unsigned axis = 0; axis <= FD_YAW; axis++) {
if (pidProfilesMutable(i)->d_min[axis] >= pidProfilesMutable(i)->pid[axis].D) {
pidProfilesMutable(i)->d_min[axis] = 0;
}
}
}
if (motorConfig()->dev.motorPwmProtocol == PWM_TYPE_BRUSHED) {