diff options
| author | Keith Packard <keithp@keithp.com> | 2012-05-27 17:24:09 -0600 |
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-05-27 17:24:09 -0600 |
| commit | ce8153472069ed56b24ac36f297ac569d1f767d4 (patch) | |
| tree | 5162696d765800ccc6ffe1018de395745e908df8 /src/cc1111 | |
| parent | ed635545e0b965901032ed2c3474ffe997c73de3 (diff) | |
altos: Make telemetrum-v1.1 compile with new ao_data structure
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/cc1111')
| -rw-r--r-- | src/cc1111/ao_adc.c | 36 | ||||
| -rw-r--r-- | src/cc1111/ao_arch.h | 3 | ||||
| -rw-r--r-- | src/cc1111/ao_ignite.c | 9 |
3 files changed, 22 insertions, 26 deletions
diff --git a/src/cc1111/ao_adc.c b/src/cc1111/ao_adc.c index 1688eceb..1e3d8cab 100644 --- a/src/cc1111/ao_adc.c +++ b/src/cc1111/ao_adc.c @@ -16,13 +16,9 @@ */ #include "ao.h" -#include "ao_pins.h" -volatile __xdata struct ao_adc ao_adc_ring[AO_ADC_RING]; -#if HAS_ACCEL_REF -volatile __xdata uint16_t ao_accel_ref[AO_ADC_RING]; -#endif -volatile __data uint8_t ao_adc_head; +volatile __xdata struct ao_data ao_data_ring[AO_DATA_RING]; +volatile __data uint8_t ao_data_head; void ao_adc_poll(void) @@ -39,14 +35,14 @@ ao_adc_poll(void) } void -ao_adc_get(__xdata struct ao_adc *packet) +ao_data_get(__xdata struct ao_data *packet) { #if HAS_FLIGHT - uint8_t i = ao_adc_ring_prev(ao_sample_adc); + uint8_t i = ao_data_ring_prev(ao_sample_data); #else - uint8_t i = ao_adc_ring_prev(ao_adc_head); + uint8_t i = ao_data_ring_prev(ao_data_head); #endif - ao_xmemcpy(packet, &ao_adc_ring[i], sizeof (struct ao_adc)); + ao_xmemcpy(packet, (void __xdata *) &ao_data_ring[i], sizeof (struct ao_data)); } void @@ -60,14 +56,14 @@ ao_adc_isr(void) __interrupt 1 /* TeleMetrum readings */ #if HAS_ACCEL_REF if (sequence == 2) { - a = (uint8_t __xdata *) (&ao_accel_ref[ao_adc_head]); + a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].accel_ref); sequence = 0; } else #endif { if (sequence == ADCCON3_ECH_TEMP) sequence = 2; - a = (uint8_t __xdata *) (&ao_adc_ring[ao_adc_head].accel + sequence); + a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].adc.accel + sequence); sequence++; } #define GOT_ADC @@ -87,7 +83,7 @@ ao_adc_isr(void) __interrupt 1 #if IGNITE_ON_P0 /* TeleMini readings */ - a = (uint8_t __xdata *) (&ao_adc_ring[ao_adc_head].pres); + a = (uint8_t __xdata *) (&ao_data_ring[ao_data_head].pres); #ifdef TELEMINI_V_1_0 switch (sequence) { case 0: @@ -149,20 +145,20 @@ ao_adc_isr(void) __interrupt 1 else { /* 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(DATA_TO_XDATA(&ao_adc_head)); + ao_data_ring[ao_data_head].tick = ao_time(); + ao_data_head = ao_data_ring_next(ao_data_head); + ao_wakeup(DATA_TO_XDATA(&ao_data_head)); } } static void ao_adc_dump(void) __reentrant { - static __xdata struct ao_adc packet; - ao_adc_get(&packet); + static __xdata struct ao_data packet; + ao_data_get(&packet); printf("tick: %5u accel: %5d pres: %5d temp: %5d batt: %5d drogue: %5d main: %5d\n", - packet.tick, packet.accel, packet.pres, packet.temp, - packet.v_batt, packet.sense_d, packet.sense_m); + packet.tick, packet.adc.accel, packet.adc.pres, packet.adc.temp, + packet.adc.v_batt, packet.adc.sense_d, packet.adc.sense_m); } __code struct ao_cmds ao_adc_cmds[] = { diff --git a/src/cc1111/ao_arch.h b/src/cc1111/ao_arch.h index 9d0643b4..704ae4f9 100644 --- a/src/cc1111/ao_arch.h +++ b/src/cc1111/ao_arch.h @@ -199,7 +199,6 @@ extern __code __at (0x00a6) uint32_t ao_radio_cal; #define ao_arch_critical(b) __critical { b } struct ao_adc { - uint16_t tick; /* tick when the sample was read */ int16_t accel; /* accelerometer */ int16_t pres; /* pressure sensor */ int16_t temp; /* temperature sensor */ @@ -208,7 +207,7 @@ struct ao_adc { int16_t sense_m; /* main continuity sense */ }; -#define AO_ADC_RING 32 +#define AO_DATA_RING 32 /* ao_button.c */ #ifdef HAS_BUTTON diff --git a/src/cc1111/ao_ignite.c b/src/cc1111/ao_ignite.c index dd529088..cf07dfe8 100644 --- a/src/cc1111/ao_ignite.c +++ b/src/cc1111/ao_ignite.c @@ -16,6 +16,7 @@ */ #include "ao.h" +#include <ao_data.h> __xdata struct ao_ignition ao_ignition[2]; @@ -29,12 +30,12 @@ ao_ignite(enum ao_igniter igniter) __critical enum ao_igniter_status ao_igniter_status(enum ao_igniter igniter) { - __xdata struct ao_adc adc; + __xdata struct ao_data packet; __pdata int16_t value; __pdata uint8_t request, firing, fired; __critical { - ao_adc_get(&adc); + ao_data_get(&packet); request = ao_ignition[igniter].request; fired = ao_ignition[igniter].fired; firing = ao_ignition[igniter].firing; @@ -45,10 +46,10 @@ ao_igniter_status(enum ao_igniter igniter) value = (AO_IGNITER_CLOSED>>1); switch (igniter) { case ao_igniter_drogue: - value = adc.sense_d; + value = packet.adc.sense_d; break; case ao_igniter_main: - value = adc.sense_m; + value = packet.adc.sense_m; break; } if (value < AO_IGNITER_OPEN) |
