diff --git a/src/codecs/aprs/aprs.c b/src/codecs/aprs/aprs.c index b580410..f7e9a07 100644 --- a/src/codecs/aprs/aprs.c +++ b/src/codecs/aprs/aprs.c @@ -4,19 +4,19 @@ volatile uint16_t aprs_packet_counter = 0; -void convert_degrees_to_dmh(long x, int8_t *degrees, uint8_t *minutes, uint8_t *h_minutes) +void convert_degrees_to_dmh(long x, int16_t *degrees, uint8_t *minutes, uint8_t *h_minutes) { uint8_t sign = (uint8_t) (x > 0 ? 1 : 0); if (!sign) { x = -(x); } - *degrees = (int8_t) (x / 1000000); + *degrees = (int16_t) (x / 1000000); x = x - (*degrees * 1000000); x = (x) * 60 / 10000; *minutes = (uint8_t) (x / 100); *h_minutes = (uint8_t) (x - (*minutes * 100)); if (!sign) { - *degrees = -*degrees; + *degrees = (int16_t ) -*degrees; } } diff --git a/src/codecs/aprs/aprs.h b/src/codecs/aprs/aprs.h index bc8c9df..3439108 100644 --- a/src/codecs/aprs/aprs.h +++ b/src/codecs/aprs/aprs.h @@ -7,7 +7,7 @@ #include "gps.h" #include "telemetry.h" -void convert_degrees_to_dmh(long x, int8_t *degrees, uint8_t *minutes, uint8_t *h_minutes); +void convert_degrees_to_dmh(long x, int16_t *degrees, uint8_t *minutes, uint8_t *h_minutes); void aprs_generate_timestamp(char *timestamp, size_t length, telemetry_data *data); extern volatile uint16_t aprs_packet_counter; diff --git a/src/codecs/aprs/aprs_position.c b/src/codecs/aprs/aprs_position.c index 16349ac..cb63262 100644 --- a/src/codecs/aprs/aprs_position.c +++ b/src/codecs/aprs/aprs_position.c @@ -10,7 +10,7 @@ size_t aprs_generate_position(uint8_t *payload, size_t length, telemetry_data *d { char timestamp[12]; - int8_t la_degrees, lo_degrees; + int16_t la_degrees, lo_degrees; uint8_t la_minutes, la_h_minutes, lo_minutes, lo_h_minutes; convert_degrees_to_dmh(data->gps.latitude_degrees_1000000 / 10, &la_degrees, &la_minutes, &la_h_minutes); diff --git a/src/codecs/aprs/aprs_weather.c b/src/codecs/aprs/aprs_weather.c index 3c14b26..4e1f6f8 100644 --- a/src/codecs/aprs/aprs_weather.c +++ b/src/codecs/aprs/aprs_weather.c @@ -10,7 +10,7 @@ size_t aprs_generate_weather_report(uint8_t *payload, size_t length, telemetry_d { char timestamp[12]; - int8_t la_degrees, lo_degrees; + int16_t la_degrees, lo_degrees; uint8_t la_minutes, la_h_minutes, lo_minutes, lo_h_minutes; convert_degrees_to_dmh(data->gps.latitude_degrees_1000000 / 10, &la_degrees, &la_minutes, &la_h_minutes);