mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 16:25:16 +03:00
Fixes #1163
This commit is contained in:
parent
148483819d
commit
0a0d6a18b6
2 changed files with 29 additions and 0 deletions
|
@ -99,6 +99,23 @@ TelemetryProtocol getTelemetryProtocol()
|
||||||
|
|
||||||
void FrskyValueWithMin::set(uint8_t value)
|
void FrskyValueWithMin::set(uint8_t value)
|
||||||
{
|
{
|
||||||
|
#if defined(CPUARM)
|
||||||
|
if (this->value == 0) {
|
||||||
|
memset(values, value, TELEMETRY_AVERAGE_COUNT);
|
||||||
|
this->value = value;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
unsigned int sum = 0;
|
||||||
|
for (int i=0; i<TELEMETRY_AVERAGE_COUNT-1; i++) {
|
||||||
|
uint8_t tmp = values[i+1];
|
||||||
|
values[i] = tmp;
|
||||||
|
sum += tmp;
|
||||||
|
}
|
||||||
|
values[TELEMETRY_AVERAGE_COUNT-1] = value;
|
||||||
|
sum += value;
|
||||||
|
this->value = sum/TELEMETRY_AVERAGE_COUNT;
|
||||||
|
}
|
||||||
|
#else
|
||||||
if (this->value == 0) {
|
if (this->value == 0) {
|
||||||
this->value = value;
|
this->value = value;
|
||||||
}
|
}
|
||||||
|
@ -109,6 +126,7 @@ void FrskyValueWithMin::set(uint8_t value)
|
||||||
sum = 0;
|
sum = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!min || value < min) {
|
if (!min || value < min) {
|
||||||
min = value;
|
min = value;
|
||||||
|
|
|
@ -69,6 +69,16 @@ enum TelemetryStates {
|
||||||
extern uint8_t telemetryState;
|
extern uint8_t telemetryState;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(CPUARM)
|
||||||
|
#define TELEMETRY_AVERAGE_COUNT 4
|
||||||
|
class FrskyValueWithMin {
|
||||||
|
public:
|
||||||
|
uint8_t value;
|
||||||
|
uint8_t min;
|
||||||
|
uint8_t values[TELEMETRY_AVERAGE_COUNT];
|
||||||
|
void set(uint8_t value);
|
||||||
|
};
|
||||||
|
#else
|
||||||
class FrskyValueWithMin {
|
class FrskyValueWithMin {
|
||||||
public:
|
public:
|
||||||
uint8_t value;
|
uint8_t value;
|
||||||
|
@ -76,6 +86,7 @@ class FrskyValueWithMin {
|
||||||
uint16_t sum;
|
uint16_t sum;
|
||||||
void set(uint8_t value);
|
void set(uint8_t value);
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
class FrskyValueWithMinMax: public FrskyValueWithMin {
|
class FrskyValueWithMinMax: public FrskyValueWithMin {
|
||||||
public:
|
public:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue