Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / kernel / ao_telemetry.h
index b718085f8e11eb83d295322c135416bc785ec852..251a3fcda3fd36934d4e336617cbb20ef267fed9 100644 (file)
@@ -131,8 +131,8 @@ struct ao_telemetry_location {
 typedef int32_t                gps_alt_t;
 #define AO_TELEMETRY_LOCATION_ALTITUDE(l)      (((gps_alt_t) (l)->altitude_high << 16) | ((l)->altitude_low))
 #define AO_TELEMETRY_LOCATION_SET_ALTITUDE(l,a) (((l)->mode |= AO_GPS_MODE_ALTITUDE_24), \
-                                                ((l)->altitude_high = (a) >> 16), \
-                                                ((l)->altitude_low = (a)))
+                                                ((l)->altitude_high = (int8_t) ((a) >> 16)), \
+                                                ((l)->altitude_low = (uint16_t) (a)))
 #else
 typedef int16_t                gps_alt_t;
 #define AO_TELEMETRY_LOCATION_ALTITUDE(l)      ((gps_alt_t) (l)->altitude_low)