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