From b8139084931e73521115fa54c919185b36cb8028 Mon Sep 17 00:00:00 2001 From: "maxim.karban@gmail.com" Date: Sat, 28 Apr 2012 10:12:47 +0000 Subject: [PATCH] VSpd bug fixed --- src/frsky.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/frsky.cpp b/src/frsky.cpp index 72fbc51ef..ce85a7796 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -167,9 +167,9 @@ int16_t applyChannelRatio(uint8_t channel, int16_t val) return ((int32_t)val+g_model.frsky.channels[channel].offset) * (g_model.frsky.channels[channel].ratio << g_model.frsky.channels[channel].multiplier) * 2 / 51; } -inline void evalVario(int16_t altitude_bp, uint8_t altitude_ap) +inline void evalVario(int16_t altitude_bp, uint16_t altitude_ap) { - int16_t varioAltitude_cm = altitude_bp * 100 + (altitude_bp > 0 ? altitude_ap : -altitude_ap); + int32_t varioAltitude_cm = (int32_t)altitude_bp * 100 + (altitude_bp > 0 ? altitude_ap : -altitude_ap); uint8_t varioAltitudeQueuePointer = frskyHubData.varioAltitudeQueuePointer + 1; if (varioAltitudeQueuePointer == VARIO_QUEUE_LENGTH) @@ -276,7 +276,7 @@ void parseTelemHubByte(uint8_t byte) case offsetof(FrskyHubData, baroAltitude_ap): if (g_model.varioSource == VARIO_SOURCE_BARO) { - evalVario(frskyHubData.baroAltitude_bp, frskyHubData.baroAltitude_ap); + evalVario(frskyHubData.baroAltitude_bp-frskyHubData.baroAltitudeOffset, frskyHubData.baroAltitude_ap); } break;