diff --git a/src/main/fc/config.c b/src/main/fc/config.c index 0a82618da..3b212bbb4 100755 --- a/src/main/fc/config.c +++ b/src/main/fc/config.c @@ -1042,6 +1042,13 @@ void validateAndFixGyroConfig(void) float samplingTime = 0.000125f; + if (gyroConfig()->gyro_lpf != GYRO_LPF_256HZ && gyroConfig()->gyro_lpf != GYRO_LPF_NONE) { + pidConfig()->pid_process_denom = 1; // When gyro set to 1khz always set pid speed 1:1 to sampling speed + gyroConfig()->gyro_sync_denom = 1; + gyroConfig()->gyro_use_32khz = false; + samplingTime = 0.001f; + } + if (gyroConfig()->gyro_use_32khz) { samplingTime = 0.00003125; // F1 and F3 can't handle high sample speed. @@ -1056,12 +1063,6 @@ void validateAndFixGyroConfig(void) gyroConfig()->gyro_isr_update = false; #endif - if (gyroConfig()->gyro_lpf != GYRO_LPF_256HZ && gyroConfig()->gyro_lpf != GYRO_LPF_NONE) { - pidConfig()->pid_process_denom = 1; // When gyro set to 1khz always set pid speed 1:1 to sampling speed - gyroConfig()->gyro_sync_denom = 1; - samplingTime = 0.001f; - } - // check for looptime restrictions based on motor protocol. Motor times have safety margin const float pidLooptime = samplingTime * gyroConfig()->gyro_sync_denom * pidConfig()->pid_process_denom; float motorUpdateRestriction;