X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_convert_volt.c;h=1f04df64a98f174a14e193a1931d94041e979fba;hb=d7a91278051ff75e3edc3e999a6d8096fa4deec4;hp=5afedfa5bcd5c72c98af9ec0a8e4ed67cdaaa3e6;hpb=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a;p=fw%2Faltos diff --git a/src/kernel/ao_convert_volt.c b/src/kernel/ao_convert_volt.c index 5afedfa5..1f04df64 100644 --- a/src/kernel/ao_convert_volt.c +++ b/src/kernel/ao_convert_volt.c @@ -19,15 +19,15 @@ #include "ao.h" #define MUL(p,m) ((int32_t) AO_ADC_REFERENCE_DV * ((p) + (m))) -#define ADD(p,m) (MUL(p,m)/2) #define DIV(p,m) ((int32_t) AO_ADC_MAX * (m)) +#define ADD(p,m) (DIV(p,m) / 2) #define scale(v,p,m) (((int32_t) (v) * MUL(p,m) + ADD(p,m)) / DIV(p,m)) #if HAS_APRS || HAS_BATTERY_REPORT int16_t ao_battery_decivolt(int16_t adc) { - return scale(adc, AO_BATTERY_DIV_PLUS, AO_BATTERY_DIV_MINUS); + return (int16_t) scale(adc, AO_BATTERY_DIV_PLUS, AO_BATTERY_DIV_MINUS); } #endif @@ -35,6 +35,6 @@ ao_battery_decivolt(int16_t adc) int16_t ao_ignite_decivolt(int16_t adc) { - return scale(adc, AO_IGNITE_DIV_PLUS, AO_IGNITE_DIV_MINUS); + return (int16_t) scale(adc, AO_IGNITE_DIV_PLUS, AO_IGNITE_DIV_MINUS); } #endif