diff --git a/src/main/cms/cms_menu_imu.c b/src/main/cms/cms_menu_imu.c index 57ecc67ba9..3ad2818c3c 100644 --- a/src/main/cms/cms_menu_imu.c +++ b/src/main/cms/cms_menu_imu.c @@ -130,6 +130,7 @@ static long cmsx_PidWriteback(const OSD_Entry *self) masterConfig.profile[profileIndex].pidProfile.I8[i] = tempPid[i][1]; masterConfig.profile[profileIndex].pidProfile.D8[i] = tempPid[i][2]; } + pidInitConfig(¤tProfile->pidProfile); return 0; } @@ -248,6 +249,7 @@ static long cmsx_profileOtherOnExit(const OSD_Entry *self) masterConfig.profile[profileIndex].pidProfile.dtermSetpointWeight = cmsx_dtermSetpointWeight; masterConfig.profile[profileIndex].pidProfile.setpointRelaxRatio = cmsx_setpointRelaxRatio; + pidInitConfig(¤tProfile->pidProfile); masterConfig.profile[profileIndex].pidProfile.P8[PIDLEVEL] = cmsx_angleStrength; masterConfig.profile[profileIndex].pidProfile.I8[PIDLEVEL] = cmsx_horizonStrength; diff --git a/src/main/fc/rc_controls.c b/src/main/fc/rc_controls.c index 96061c5b51..0e95b485c1 100644 --- a/src/main/fc/rc_controls.c +++ b/src/main/fc/rc_controls.c @@ -579,7 +579,7 @@ static void applyStepAdjustment(controlRateConfig_t *controlRateConfig, uint8_t case ADJUSTMENT_ROLL_D: newValue = constrain((int)pidProfile->D8[PIDROLL] + delta, 0, 200); // FIXME magic numbers repeated in serial_cli.c pidProfile->D8[PIDROLL] = newValue; - blackboxLogInflightAdjustmentEvent(ADJUSTMENT_ROLL_D, newValue); + blackboxLogInflightAdjustmentEvent(ADJUSTMENT_ROLL_D, newValue); break; case ADJUSTMENT_YAW_P: newValue = constrain((int)pidProfile->P8[PIDYAW] + delta, 0, 200); // FIXME magic numbers repeated in serial_cli.c @@ -676,7 +676,8 @@ void processRcAdjustments(controlRateConfig_t *controlRateConfig, rxConfig_t *rx continue; } - applyStepAdjustment(controlRateConfig, adjustmentFunction, delta); + applyStepAdjustment(controlRateConfig,adjustmentFunction,delta); + pidInitConfig(pidProfile); } else if (adjustmentState->config->mode == ADJUSTMENT_MODE_SELECT) { uint16_t rangeWidth = ((2100 - 900) / adjustmentState->config->data.selectConfig.switchPositions); uint8_t position = (constrain(rcData[channelIndex], 900, 2100 - 1) - 900) / rangeWidth; diff --git a/src/main/target/COLIBRI_RACE/i2c_bst.c b/src/main/target/COLIBRI_RACE/i2c_bst.c index 5774973293..b4d99b2166 100644 --- a/src/main/target/COLIBRI_RACE/i2c_bst.c +++ b/src/main/target/COLIBRI_RACE/i2c_bst.c @@ -708,6 +708,7 @@ static bool bstSlaveProcessFeedbackCommand(uint8_t bstRequest) bstWrite8(currentProfile->pidProfile.I8[i]); bstWrite8(currentProfile->pidProfile.D8[i]); } + pidInitConfig(¤tProfile->pidProfile); break; case BST_PIDNAMES: bstWriteNames(pidnames);