X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao.h;h=d4df159553352b5da135e973b696ebb5d077042a;hp=20431b98d28080d6a848e3fd789d7cf9c86d05c6;hb=ee4919dd771b00e2a2dd1083c9528efa7baab50f;hpb=5834a12c1d3d71105c9e3d1ceaf9f3ffac9ff1eb diff --git a/src/ao.h b/src/ao.h index 20431b98..d4df1595 100644 --- a/src/ao.h +++ b/src/ao.h @@ -21,6 +21,7 @@ #include #include #include +#include #include "cc1111.h" #define TRUE 1 @@ -121,6 +122,10 @@ ao_timer_isr(void) interrupt 9; void ao_timer_init(void); +/* Initialize the hardware clock. Must be called first */ +void +ao_clock_init(void); + /* * ao_adc.c */ @@ -419,14 +424,6 @@ ao_ee_init(void); * ao_log.c */ -/* Structure containing GPS position, either lat or lon */ - -struct ao_gps_pos { - uint8_t degrees; - uint8_t minutes; - uint16_t minutes_fraction; /* in units of 1/10000 minutes */ -}; - /* * The data log is recorded in the eeprom as a sequence * of data packets. @@ -495,8 +492,8 @@ struct ao_log_record { uint8_t second; uint8_t flags; } gps_time; - struct ao_gps_pos gps_latitude; - struct ao_gps_pos gps_longitude; + int32_t gps_latitude; + int32_t gps_longitude; struct { int16_t altitude; uint16_t unused; @@ -556,7 +553,7 @@ enum ao_flight_state { ao_flight_pad = 2, ao_flight_boost = 3, ao_flight_fast = 4, - ao_flight_apogee = 5, + ao_flight_coast = 5, ao_flight_drogue = 6, ao_flight_main = 7, ao_flight_landed = 8, @@ -675,21 +672,14 @@ ao_serial_init(void); #define AO_GPS_NUM_SAT_SHIFT (0) #define AO_GPS_VALID (1 << 4) -#define AO_GPS_LONGITUDE_MASK (1 << 5) -#define AO_GPS_LONGITUDE_EAST (0 << 5) -#define AO_GPS_LONGITUDE_WEST (1 << 5) - -#define AO_GPS_LATITUDE_MASK (1 << 6) -#define AO_GPS_LATITUDE_NORTH (0 << 6) -#define AO_GPS_LATITUDE_SOUTH (1 << 6) struct ao_gps_data { uint8_t hour; uint8_t minute; uint8_t second; uint8_t flags; - struct ao_gps_pos latitude; - struct ao_gps_pos longitude; + int32_t latitude; + int32_t longitude; int16_t altitude; };