diff options
Diffstat (limited to 'src/ao_gps_skytraq.c')
| -rw-r--r-- | src/ao_gps_skytraq.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/src/ao_gps_skytraq.c b/src/ao_gps_skytraq.c index 0dd45c0c..ae8c7ef7 100644 --- a/src/ao_gps_skytraq.c +++ b/src/ao_gps_skytraq.c @@ -28,9 +28,11 @@ static __xdata char ao_gps_char;  static __xdata uint8_t ao_gps_cksum;  static __xdata uint8_t ao_gps_error; +__xdata uint16_t ao_gps_tick;  __xdata struct ao_gps_data	ao_gps_data;  __xdata struct ao_gps_tracking_data	ao_gps_tracking_data; +static __xdata uint16_t				ao_gps_next_tick;  static __xdata struct ao_gps_data		ao_gps_next;  static __xdata uint8_t				ao_gps_date_flags;  static __xdata struct ao_gps_tracking_data	ao_gps_tracking_next; @@ -248,6 +250,7 @@ ao_gps(void) __reentrant  			 *	   *66		checksum  			 */ +			ao_gps_next_tick = ao_time();  			ao_gps_next.flags = AO_GPS_RUNNING | ao_gps_date_flags;  			ao_gps_next.hour = ao_gps_decimal(2);  			ao_gps_next.minute = ao_gps_decimal(2); @@ -297,6 +300,7 @@ ao_gps(void) __reentrant  				ao_gps_error = 1;  			if (!ao_gps_error) {  				ao_mutex_get(&ao_gps_mutex); +				ao_gps_tick = ao_gps_next_tick;  				memcpy(&ao_gps_data, &ao_gps_next, sizeof (struct ao_gps_data));  				ao_mutex_put(&ao_gps_mutex);  				ao_wakeup(&ao_gps_data);  | 
