diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ao.h | 2 | ||||
| -rw-r--r-- | src/ao_adc.c | 10 | ||||
| -rw-r--r-- | src/ao_config.c | 6 | ||||
| -rw-r--r-- | src/ao_flight.c | 3 | ||||
| -rw-r--r-- | src/ao_flight_test.c | 2 | ||||
| -rw-r--r-- | src/ao_ignite.c | 1 | ||||
| -rw-r--r-- | src/ao_log.c | 4 | ||||
| -rw-r--r-- | src/ao_test.c | 2 | 
8 files changed, 12 insertions, 18 deletions
@@ -649,7 +649,7 @@ enum ao_flight_state {  	ao_flight_invalid = 9  }; -extern __xdata struct ao_adc		ao_flight_data; +extern __data uint8_t			ao_flight_adc;  extern __pdata enum ao_flight_state	ao_flight_state;  extern __pdata uint16_t			ao_flight_tick;  extern __pdata int16_t			ao_flight_accel; diff --git a/src/ao_adc.c b/src/ao_adc.c index 49d2519e..f577b458 100644 --- a/src/ao_adc.c +++ b/src/ao_adc.c @@ -28,15 +28,9 @@ ao_adc_poll(void)  }  void -ao_adc_sleep(void) -{ -	ao_sleep(&ao_adc_ring); -} - -void  ao_adc_get(__xdata struct ao_adc *packet)  { -	uint8_t	i = ao_adc_ring_prev(ao_adc_head); +	uint8_t	i = ao_adc_ring_prev(ao_flight_adc);  	memcpy(packet, &ao_adc_ring[i], sizeof (struct ao_adc));  } @@ -65,7 +59,7 @@ ao_adc_isr(void) __interrupt 1  		/* record this conversion series */  		ao_adc_ring[ao_adc_head].tick = ao_time();  		ao_adc_head = ao_adc_ring_next(ao_adc_head); -		ao_wakeup(ao_adc_ring); +		ao_wakeup(DATA_TO_XDATA(&ao_adc_head));  	}  } diff --git a/src/ao_config.c b/src/ao_config.c index e97b7eb1..bbee3b44 100644 --- a/src/ao_config.c +++ b/src/ao_config.c @@ -209,10 +209,10 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant  	puts("Calibrating..."); flush();  	i = ACCEL_CALIBRATE_SAMPLES;  	accel_total = 0; -	cal_adc_ring = ao_adc_head; +	cal_adc_ring = ao_flight_adc;  	while (i) { -		ao_sleep(&ao_adc_ring); -		while (i && cal_adc_ring != ao_adc_head) { +		ao_sleep(DATA_TO_XDATA(&ao_flight_adc)); +		while (i && cal_adc_ring != ao_flight_adc) {  			accel_total += (int32_t) ao_adc_ring[cal_adc_ring].accel;  			cal_adc_ring = ao_adc_ring_next(cal_adc_ring);  			i--; diff --git a/src/ao_flight.c b/src/ao_flight.c index e99692a3..9eb9a014 100644 --- a/src/ao_flight.c +++ b/src/ao_flight.c @@ -146,7 +146,8 @@ ao_flight(void)  	ao_raw_pres = 0;  	ao_flight_tick = 0;  	for (;;) { -		ao_sleep(&ao_adc_ring); +		ao_wakeup(DATA_TO_XDATA(&ao_flight_adc)); +		ao_sleep(DATA_TO_XDATA(&ao_adc_head));  		while (ao_flight_adc != ao_adc_head) {  			__pdata uint8_t ticks;  			__pdata int16_t ao_vel_change; diff --git a/src/ao_flight_test.c b/src/ao_flight_test.c index 108d2c19..5c619518 100644 --- a/src/ao_flight_test.c +++ b/src/ao_flight_test.c @@ -180,7 +180,7 @@ void  ao_sleep(void *wchan)  {  	ao_dump_state(); -	if (wchan == &ao_adc_ring) { +	if (wchan == &ao_adc_head) {  		char		type;  		uint16_t	tick;  		uint16_t	a, b; diff --git a/src/ao_ignite.c b/src/ao_ignite.c index f2b15dd2..603fcd25 100644 --- a/src/ao_ignite.c +++ b/src/ao_ignite.c @@ -52,7 +52,6 @@ ao_igniter_status(enum ao_igniter igniter)  	__xdata uint8_t request, firing, fired;  	__critical { -		ao_adc_sleep();  		ao_adc_get(&adc);  		request = ao_ignition[igniter].request;  		fired = ao_ignition[igniter].fired; diff --git a/src/ao_log.c b/src/ao_log.c index fa072550..099c5f6f 100644 --- a/src/ao_log.c +++ b/src/ao_log.c @@ -99,10 +99,10 @@ ao_log(void)  	/* Write the whole contents of the ring to the log  	 * when starting up.  	 */ -	ao_log_adc_pos = ao_adc_ring_next(ao_adc_head); +	ao_log_adc_pos = ao_adc_ring_next(ao_flight_adc);  	for (;;) {  		/* Write samples to EEPROM */ -		while (ao_log_adc_pos != ao_adc_head) { +		while (ao_log_adc_pos != ao_flight_adc) {  			log.type = AO_LOG_SENSOR;  			log.tick = ao_adc_ring[ao_log_adc_pos].tick;  			log.u.sensor.accel = ao_adc_ring[ao_log_adc_pos].accel; diff --git a/src/ao_test.c b/src/ao_test.c index b9f7d338..14c2eb75 100644 --- a/src/ao_test.c +++ b/src/ao_test.c @@ -53,7 +53,7 @@ blink_1(void)  	static __xdata struct ao_adc adc;  	for (;;) { -		ao_sleep(&ao_adc_ring); +		ao_sleep(&ao_adc_head);  		ao_adc_get(&adc);  		if (adc.accel < 15900)  			ao_led_on(AO_LED_RED);  | 
