diff --git a/main/inputs.c b/main/inputs.c index 0f27cc6..a9ef723 100644 --- a/main/inputs.c +++ b/main/inputs.c @@ -155,11 +155,12 @@ void updateAverage(sMeasurement *pMeasurement) { if (pMeasurement->fCurrentValue > pMeasurement->fDampedValue) { - pMeasurement->fDampedValue = pMeasurement->fDampedValue + (DAMPING_FACTOR * (pMeasurement->fCurrentValue - pMeasurement->fDampedValue)); + pMeasurement->fDampedValue = pMeasurement->fDampedValue + (DAMPING_FACTOR_WARMER * (pMeasurement->fCurrentValue - pMeasurement->fDampedValue)); } - else + + if (pMeasurement->fCurrentValue < pMeasurement->fDampedValue) { - pMeasurement->fDampedValue = pMeasurement->fDampedValue - (DAMPING_FACTOR * (pMeasurement->fDampedValue - pMeasurement->fCurrentValue)); + pMeasurement->fDampedValue = pMeasurement->fDampedValue - (DAMPING_FACTOR_COLDER * (pMeasurement->fDampedValue - pMeasurement->fCurrentValue)); } } } diff --git a/main/inputs.h b/main/inputs.h index eed75b7..a005e3c 100644 --- a/main/inputs.h +++ b/main/inputs.h @@ -6,7 +6,8 @@ #define AVG60S_SAMPLE_SIZE 60U #define AVG24H_SAMPLE_SIZE 24U #define PRED60S_SAMPLE_SIZE 60U -#define DAMPING_FACTOR 0.01f +#define DAMPING_FACTOR_WARMER 0.001f +#define DAMPING_FACTOR_COLDER 0.005f typedef enum _BurnerErrorState {