summaryrefslogtreecommitdiff
path: root/src/cc1111
diff options
context:
space:
mode:
Diffstat (limited to 'src/cc1111')
-rw-r--r--src/cc1111/ao_adc.c36
-rw-r--r--src/cc1111/ao_arch.h3
-rw-r--r--src/cc1111/ao_ignite.c9
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)