diff options
author | Keith Packard <keithp@keithp.com> | 2011-01-15 12:12:02 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-01-16 20:24:34 -0800 |
commit | 69290588980bb15732a99eca5c911a3b6e9a37b9 (patch) | |
tree | c01008a4b61b64146eac95a2905f06d52d71f298 /src/ao_adc.c | |
parent | 1b8d7313504240ed04e0747e9b0f6e9a83d323e2 (diff) |
altos: Ensure flight code gets first crack at new ADC data
Instead of having everyone wait on the raw ADC ring, have the flight
code wait on that and have everyone else wait for the flight code to
finish looking at the data and move its pointer forwards.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/ao_adc.c')
-rw-r--r-- | src/ao_adc.c | 10 |
1 files changed, 2 insertions, 8 deletions
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)); } } |