diff --git a/src/main/flight/pid.c b/src/main/flight/pid.c index 1129138154..9d5d09fa7e 100644 --- a/src/main/flight/pid.c +++ b/src/main/flight/pid.c @@ -1053,7 +1053,7 @@ void pidInit(void) #endif if (pidProfile()->pidControllerType == PID_TYPE_AUTO) { - if (STATE(FIXED_WING)) { + if (mixerConfig()->platformType == PLATFORM_AIRPLANE) { usedPidControllerType = PID_TYPE_PIFF; } else { usedPidControllerType = PID_TYPE_PID; @@ -1076,3 +1076,10 @@ void pidInit(void) pidControllerApplyFn = nullRateController; } } + +const pidBank_t FAST_CODE NOINLINE * pidBank(void) { + return usedPidControllerType == PID_TYPE_PIFF ? &pidProfile()->bank_fw : &pidProfile()->bank_mc; +} +pidBank_t FAST_CODE NOINLINE * pidBankMutable(void) { + return usedPidControllerType == PID_TYPE_PIFF ? &pidProfileMutable()->bank_fw : &pidProfileMutable()->bank_mc; +} diff --git a/src/main/flight/pid.h b/src/main/flight/pid.h index 41f30dbf2d..4cf0f1110c 100644 --- a/src/main/flight/pid.h +++ b/src/main/flight/pid.h @@ -157,10 +157,8 @@ typedef struct pidAutotuneConfig_s { PG_DECLARE_PROFILE(pidProfile_t, pidProfile); PG_DECLARE(pidAutotuneConfig_t, pidAutotuneConfig); -static uint8_t usedPidControllerType; - -static inline const pidBank_t * pidBank(void) { return usedPidControllerType == PID_TYPE_PIFF ? &pidProfile()->bank_fw : &pidProfile()->bank_mc; } -static inline pidBank_t * pidBankMutable(void) { return usedPidControllerType == PID_TYPE_PIFF ? &pidProfileMutable()->bank_fw : &pidProfileMutable()->bank_mc; } +const pidBank_t * pidBank(void); +pidBank_t * pidBankMutable(void); extern int16_t axisPID[]; extern int32_t axisPID_P[], axisPID_I[], axisPID_D[], axisPID_Setpoint[];