[all] Current consumption measured from A1/A2 was wrong

This commit is contained in:
bsongis
2012-09-03 08:55:36 +00:00
parent f4c52723d7
commit 9dc1a1fa53
3 changed files with 4 additions and 22 deletions
+4 -19
View File
@@ -59,7 +59,6 @@ uint8_t FrskyRxBufferReady = 0;
int8_t frskyStreaming = -1;
uint8_t frskyUsrStreaming = 0;
uint8_t link_counter = 0;
uint16_t currentConsumptionBoundary = 0;
FrskyData frskyData;
#if defined(FRSKY_HUB) || defined(WS_HOW_HIGH)
@@ -697,7 +696,7 @@ NOINLINE void check_frsky()
}
#endif
uint16_t voltage = 0;
uint16_t voltage = 0; /* unit: 1/10 volts */
for (uint8_t i=0; i<frskyData.hub.cellsCount; i++)
voltage += frskyData.hub.cellVolts[i];
voltage /= 5;
@@ -710,7 +709,7 @@ NOINLINE void check_frsky()
voltage = frskyData.hub.vfas;
}
uint16_t current = frskyData.hub.current;
uint16_t current = frskyData.hub.current; /* unit: 1/10 amps */
channel = g_model.frsky.currentSource - FRSKY_SOURCE_A1;
if (channel <= 1) {
current = applyChannelRatio(channel, frskyData.analog[channel].value) / 10;
@@ -719,9 +718,9 @@ NOINLINE void check_frsky()
frskyData.power = (current * voltage) / 100;
frskyData.currentPrescale += current;
if (frskyData.currentPrescale >= currentConsumptionBoundary) {
if (frskyData.currentPrescale >= 3600) {
frskyData.currentConsumption += 1;
frskyData.currentPrescale -= currentConsumptionBoundary;
frskyData.currentPrescale -= 3600;
}
#if defined(VARIO)
@@ -879,24 +878,10 @@ void FrskyValueWithMinMax::set(uint8_t value, uint8_t unit)
max = value;
}
void frskyEvalCurrentConsumptionBoundary()
{
currentConsumptionBoundary = 3600;
uint8_t channel = g_model.frsky.currentSource-FRSKY_SOURCE_A1;
if (channel <= 1) {
uint16_t divider = getChannelRatio(channel);
if (divider > 5) {
currentConsumptionBoundary = 360000L / divider;
}
}
}
void resetTelemetry()
{
memclear(&frskyData, sizeof(frskyData));
frskyEvalCurrentConsumptionBoundary();
#if defined(FRSKY_HUB)
frskyData.hub.gpsLatitude_bp = 2;
frskyData.hub.gpsLongitude_bp = 2;
-2
View File
@@ -204,8 +204,6 @@ inline void FRSKY_setModelAlarms(void)
frskyAlarmsSendState = SEND_MODEL_ALARMS;
}
extern void frskyEvalCurrentConsumptionBoundary();
bool FRSKY_alarmRaised(uint8_t idx);
void resetTelemetry();
-1
View File
@@ -2842,7 +2842,6 @@ void menuProcTelemetry(uint8_t event)
case EVT_KEY_BREAK(KEY_UP):
case EVT_KEY_BREAK(KEY_LEFT):
case EVT_KEY_BREAK(KEY_RIGHT):
frskyEvalCurrentConsumptionBoundary();
if (s_editMode>0 && sub<=ITEM_TELEMETRY_RSSI_ALARM2)
FRSKY_setModelAlarms(); // update Fr-Sky module when edit mode exited
break;