summaryrefslogtreecommitdiff
path: root/src/ao_adc.c
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2011-03-18 21:12:39 -0600
committerBdale Garbee <bdale@gag.com>2011-03-18 21:12:39 -0600
commit5db94e1e230bade966a997aa83165405a9ec9d83 (patch)
tree0c7c44b765a85fa76c596cee512806536aafedb9 /src/ao_adc.c
parent1a8f45e7b720d01d3ff0c35ed1caaf8cbe0c3119 (diff)
parentcbb968f5cf03625d453d84dc535758072a2c04c7 (diff)
Merge branch 'telemini' of ssh://git.gag.com/scm/git/fw/altos into telemini
Diffstat (limited to 'src/ao_adc.c')
-rw-r--r--src/ao_adc.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ao_adc.c b/src/ao_adc.c
index ce935716..d77e7753 100644
--- a/src/ao_adc.c
+++ b/src/ao_adc.c
@@ -30,7 +30,11 @@ ao_adc_poll(void)
#if HAS_ACCEL_REF
ADCCON3 = ADCCON3_EREF_VDD | ADCCON3_EDIV_512 | 2;
#else
+# ifdef TELENANO_V_0_1
+ ADCCON3 = ADCCON3_EREF_VDD | ADCCON3_EDIV_512 | 1;
+# else
ADCCON3 = ADCCON3_EREF_VDD | ADCCON3_EDIV_512 | 0;
+# endif
#endif
}
@@ -62,6 +66,7 @@ ao_adc_isr(void) __interrupt 1
a = (uint8_t __xdata *) (&ao_adc_ring[ao_adc_head].accel + sequence);
sequence++;
}
+#define GOT_ADC
a[0] = ADCL;
a[1] = ADCH;
if (sequence < 6) {
@@ -79,6 +84,7 @@ ao_adc_isr(void) __interrupt 1
#if IGNITE_ON_P0
/* TeleMini readings */
a = (uint8_t __xdata *) (&ao_adc_ring[ao_adc_head].pres);
+#ifdef TELEMINI_V_0_1
switch (sequence) {
case 0:
/* pressure */
@@ -105,6 +111,27 @@ ao_adc_isr(void) __interrupt 1
sequence = 0;
break;
}
+#define GOT_ADC
+#endif
+#ifdef TELENANO_V_0_1
+ switch (sequence) {
+ case 1:
+ /* pressure */
+ a += 0;
+ sequence = ADCCON3_EREF_VDD | ADCCON3_EDIV_512 | 3;
+ break;
+ case 3:
+ /* battery */
+ a += 4;
+ sequence = ADCCON3_EREF_1_25 | ADCCON3_EDIV_512 | ADCCON3_ECH_TEMP;
+ break;
+ case ADCCON3_ECH_TEMP:
+ a += 2;
+ sequence = 0;
+ break;
+ }
+#define GOT_ADC
+#endif
a[0] = ADCL;
a[1] = ADCH;
if (sequence) {
@@ -112,6 +139,9 @@ ao_adc_isr(void) __interrupt 1
ADCCON3 = sequence;
}
#endif
+#ifndef GOT_ADC
+#error No known ADC configuration set
+#endif
else {
/* record this conversion series */