diff --git a/src/main/common/filter.c b/src/main/common/filter.c index a46f68423..8258103f4 100644 --- a/src/main/common/filter.c +++ b/src/main/common/filter.c @@ -420,11 +420,8 @@ FAST_CODE float lmaSmoothingUpdate(laggedMovingAverage_t *filter, float input) filter->buf[filter->movingWindowIndex] = input; filter->movingSum += input; - uint8_t windowIndex = filter->movingWindowIndex; - if (++windowIndex >= filter->windowSize) { + if (++filter->movingWindowIndex == filter->windowSize) { filter->movingWindowIndex = 0; - } else { - filter->movingWindowIndex = windowIndex; } return input + (((filter->movingSum / filter->windowSize) - input) * filter->weight); diff --git a/src/main/common/filter.h b/src/main/common/filter.h index 94e8e6a6a..08257cb59 100644 --- a/src/main/common/filter.h +++ b/src/main/common/filter.h @@ -69,8 +69,8 @@ typedef struct fastKalman_s { } fastKalman_t; typedef struct laggedMovingAverage_s { - uint8_t movingWindowIndex; - uint8_t windowSize; + uint16_t movingWindowIndex; + uint16_t windowSize; float weight; float movingSum; float buf[MAX_LMA_WINDOW_SIZE];