1
0
forked from me/IronOS
Files
IronOS/source/Core/Inc/expMovingAverage.h
Ben V. Brown bf5055edaa Format headers
2021-01-17 10:53:49 +11:00

20 lines
417 B
C++

/*
* expMovingAverage.h
*
* Created on: 8 Oct 2019
* Author: ralim
*/
#ifndef INC_EXPMOVINGAVERAGE_H_
#define INC_EXPMOVINGAVERAGE_H_
// max size = 127
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_ */