From 395e8e8983d304ac1f043534ef5704dba75bcf34 Mon Sep 17 00:00:00 2001 From: ctzsnooze Date: Wed, 1 Feb 2023 01:20:36 +1100 Subject: [PATCH] Fix Bug causing Dynamic Idle to fail if RPM filtering is turned off (#12270) Init erpmToHz even if RPM filtering is disabled Fix for no RPM values sent to Dynamic Idle when RPM filtering was turned off --- src/main/flight/rpm_filter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/flight/rpm_filter.c b/src/main/flight/rpm_filter.c index 464795e966..e4f5266c2d 100644 --- a/src/main/flight/rpm_filter.c +++ b/src/main/flight/rpm_filter.c @@ -94,6 +94,8 @@ void rpmFilterInit(const rpmFilterConfig_t *config, const timeUs_t looptimeUs) pt1FilterInit(&motorFreqLpf[i], pt1FilterGain(config->rpm_filter_lpf_hz, looptimeUs * 1e-6f)); } + erpmToHz = ERPM_PER_LSB / SECONDS_PER_MINUTE / (motorConfig()->motorPoleCount / 2.0f); + // if RPM Filtering is configured to be off if (!config->rpm_filter_harmonics) { return; @@ -115,8 +117,6 @@ void rpmFilterInit(const rpmFilterConfig_t *config, const timeUs_t looptimeUs) } } - erpmToHz = ERPM_PER_LSB / SECONDS_PER_MINUTE / (motorConfig()->motorPoleCount / 2.0f); - const float loopIterationsPerUpdate = RPM_FILTER_DURATION_S / (looptimeUs * 1e-6f); const float numNotchesPerAxis = getMotorCount() * rpmFilter.numHarmonics; notchUpdatesPerIteration = ceilf(numNotchesPerAxis / loopIterationsPerUpdate); // round to ceiling