From b41ba50b530731e22d8d01af946cc190bd2750c3 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sun, 13 Jul 2014 14:44:42 +0200 Subject: [PATCH] Removed raw member that was introduced in commit 3f39352d954ef146969527f580d7c7214334acde. Its role now plays last member of values[] array. Same RAM usage, reduced FLASH usage. --- radio/src/telemetry/frsky.cpp | 10 +++++----- radio/src/telemetry/frsky.h | 9 ++++----- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index a31dae976..fa055de90 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -84,18 +84,18 @@ void FrskyValueWithMin::set(uint8_t value) this->value = value; } else { - //calculate the average from values[], raw, value + //calculate the average from values[] and value + //also shift readings in values [] array unsigned int sum = values[0]; for (int i=0; ivalue = sum/(TELEMETRY_AVERAGE_COUNT+2); + values[TELEMETRY_AVERAGE_COUNT-1] = value; + sum += value; + this->value = sum/(TELEMETRY_AVERAGE_COUNT+1); } - raw = value; #else if (this->value == 0) { this->value = value; diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index 5e6f09d02..3df6c2789 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -70,18 +70,17 @@ extern uint8_t telemetryState; #endif #if defined(CPUARM) -#define RAW_FRSKY_MINMAX(v) v.raw -#define TELEMETRY_AVERAGE_COUNT 2 //we actually average two more readings! +#define TELEMETRY_AVERAGE_COUNT 3 //we actually average one more reading! +#define RAW_FRSKY_MINMAX(v) v.values[TELEMETRY_AVERAGE_COUNT-1] class FrskyValueWithMin { public: - uint8_t value; //fitered value (average of last TELEMETRY_AVERAGE_COUNT+2 values) + uint8_t value; //fitered value (average of last TELEMETRY_AVERAGE_COUNT+1 values) uint8_t min; uint8_t values[TELEMETRY_AVERAGE_COUNT]; - uint8_t raw; //raw value (unfiltered) void set(uint8_t value); }; #else -#define RAW_FRSKY_MINMAX(v) v.value +#define RAW_FRSKY_MINMAX(v) v.value class FrskyValueWithMin { public: uint8_t value;