summaryrefslogtreecommitdiff
path: root/ao.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-04-12 23:17:16 -0700
committerKeith Packard <keithp@keithp.com>2009-04-12 23:17:16 -0700
commite14f07bfdb8824fc7ed6df1129c66ee39ffd6d54 (patch)
treebd0baa50ee2d25fe88dbbe8710a2ef9ee177d48d /ao.h
parent823f4f92de0c1f8dd7a644a8e56ffe9822bee6e2 (diff)
Add A/D sampler
Sample A/D at the timer tick, placing data in a ring of samples. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao.h')
-rw-r--r--ao.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/ao.h b/ao.h
index 2d434134..fdf6b027 100644
--- a/ao.h
+++ b/ao.h
@@ -20,11 +20,12 @@
#include <stdint.h>
#include <stdio.h>
+#include <string.h>
#include "cc1111.h"
#define DATA_TO_XDATA(a) ((void __xdata *) ((uint8_t) (a) | 0xff00))
-#define AO_STACK_START 0x21
+#define AO_STACK_START 0x27
#define AO_STACK_END 0xfe
#define AO_STACK_SIZE (AO_STACK_END - AO_STACK_START + 1)
@@ -58,4 +59,26 @@ void ao_timer_init(void);
uint16_t ao_time_atomic(void);
void ao_delay(uint16_t ticks);
+/* ao_adc.c */
+
+#define ADC_RING 32
+
+struct ao_adc {
+ uint16_t tick;
+ int16_t accel;
+ int16_t pres;
+ int16_t temp;
+ int16_t v_batt;
+ int16_t sense_d;
+ int16_t sense_m;
+};
+
+extern __xdata struct ao_adc ao_adc_ring[ADC_RING];
+extern __data uint8_t ao_adc_head;
+
+void ao_adc_isr(void) interrupt 1;
+void ao_adc_init(void);
+void ao_adc_poll(void);
+void ao_adc_get(__xdata struct ao_adc *packet);
+
#endif /* _AO_H_ */