1
0
forked from me/IronOS
Files
IronOS/source/Core/Inc/expMovingAverage.h
2022-04-18 19:21:40 +10:00

19 lines
399 B
C++

/*
* expMovingAverage.h
*
* Created on: 8 Oct 2019
* Author: ralim
*/
#ifndef INC_EXPMOVINGAVERAGE_H_
#define INC_EXPMOVINGAVERAGE_H_
template <class T, uint8_t weighting> struct expMovingAverage {
int32_t sum;
void update(T const val) { sum = ((val * weighting) + (sum * (256 - weighting))) / 256; }
T average() const { return sum; }
};
#endif /* INC_EXPMOVINGAVERAGE_H_ */