diff --git a/src/main/flight/gyroanalyse.c b/src/main/flight/gyroanalyse.c index 749c263cf8..c643f8de20 100644 --- a/src/main/flight/gyroanalyse.c +++ b/src/main/flight/gyroanalyse.c @@ -118,16 +118,9 @@ static uint16_t FAST_DATA_ZERO_INIT dynNotchMaxFFT; static float FAST_DATA_ZERO_INIT smoothFactor; static uint8_t FAST_DATA_ZERO_INIT numSamples; -void gyroDataAnalyseInit(uint32_t targetLooptimeUs) +void gyroDataAnalyseInit(gyroAnalyseState_t *state, uint32_t targetLooptimeUs) { -#ifdef USE_MULTI_GYRO - static bool gyroAnalyseInitialized; - if (gyroAnalyseInitialized) { - return; - } - gyroAnalyseInitialized = true; -#endif - + // initialise even if FEATURE_DYNAMIC_FILTER not set, since it may be set later dynNotchBandwidthHz = gyroConfig()->dyn_notch_bandwidth_hz; dynNotchMinHz = gyroConfig()->dyn_notch_min_hz; dynNotchMaxHz = MAX(2 * dynNotchMinHz, gyroConfig()->dyn_notch_max_hz); @@ -152,12 +145,7 @@ void gyroDataAnalyseInit(uint32_t targetLooptimeUs) for (uint8_t axis = 0; axis < XYZ_AXIS_COUNT; axis++) { sdftInit(&sdft[axis], sdftStartBin, sdftEndBin, numSamples); } -} -void gyroDataAnalyseStateInit(gyroAnalyseState_t *state, uint32_t targetLooptimeUs) -{ - // initialise even if FEATURE_DYNAMIC_FILTER not set, since it may be set later - gyroDataAnalyseInit(targetLooptimeUs); state->maxSampleCount = numSamples; state->maxSampleCountRcp = 1.0f / state->maxSampleCount; diff --git a/src/main/flight/gyroanalyse.h b/src/main/flight/gyroanalyse.h index 9b0a7f1df4..b5e4246276 100644 --- a/src/main/flight/gyroanalyse.h +++ b/src/main/flight/gyroanalyse.h @@ -42,7 +42,7 @@ typedef struct gyroAnalyseState_s { } gyroAnalyseState_t; -void gyroDataAnalyseStateInit(gyroAnalyseState_t *state, uint32_t targetLooptimeUs); +void gyroDataAnalyseInit(gyroAnalyseState_t *state, uint32_t targetLooptimeUs); void gyroDataAnalysePush(gyroAnalyseState_t *state, const uint8_t axis, const float sample); void gyroDataAnalyse(gyroAnalyseState_t *state); uint16_t getMaxFFT(void); diff --git a/src/main/sensors/gyro_init.c b/src/main/sensors/gyro_init.c index 9fda10993d..6c6ac20e03 100644 --- a/src/main/sensors/gyro_init.c +++ b/src/main/sensors/gyro_init.c @@ -264,7 +264,7 @@ void gyroInitFilters(void) dynLpfFilterInit(); #endif #ifdef USE_GYRO_DATA_ANALYSE - gyroDataAnalyseStateInit(&gyro.gyroAnalyseState, gyro.targetLooptime); + gyroDataAnalyseInit(&gyro.gyroAnalyseState, gyro.targetLooptime); #endif }