From f8efcf420a996a80a6ef7e8ad8fbb2b0e1bedf9f Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 8 Jul 2014 11:38:47 +0200 Subject: [PATCH] 200 extra bytes used on 9x with FRSKY_HUB option. I return to previous implementation. Only ARM boards will have the extra features. --- radio/src/telemetry/frsky.cpp | 26 +++++++++++++++++++++++--- radio/src/telemetry/frsky.h | 2 +- radio/src/telemetry/frsky_d.cpp | 2 -- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index 5739c1e91..ad19ce4fe 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -428,9 +428,10 @@ void telemetryWakeup() void telemetryInterrupt10ms() { +#if defined(CPUARM) uint16_t voltage = frskyData.hub.cellsSum; /* unit: 1/10 volts */ - -#if defined(FRSKY_HUB) +#elif defined(FRSKY_HUB) + uint16_t voltage = 0; /* unit: 1/10 volts */ for (uint8_t i=0; i> 8) + ((frskyData.hub.volts & 0x000F) << 8))) / (5*TELEMETRY_CELL_VOLTAGE_MUTLIPLIER)); frskySetCellVoltage(battnumber, cellVolts); } +#elif defined(FRSKY_HUB) +void frskyUpdateCells(void) +{ + // Voltage => Cell number + Cell voltage + uint8_t battnumber = ((frskyData.hub.volts & 0x00F0) >> 4); + if (battnumber < 12) { + if (frskyData.hub.cellsCount < battnumber+1) { + frskyData.hub.cellsCount = battnumber+1; + } + uint8_t cellVolts = (uint8_t)(((((frskyData.hub.volts & 0xFF00) >> 8) + ((frskyData.hub.volts & 0x000F) << 8))) / 10); + frskyData.hub.cellVolts[battnumber] = cellVolts; + if (!frskyData.hub.minCellVolts || cellVolts