X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao_adc.c;h=d77e775331141b7bbdc38ce37aadd78dcf174476;hp=ce935716a1142b2d3be4a7bc1106ccca5f0e63e8;hb=cbb968f5cf03625d453d84dc535758072a2c04c7;hpb=ddd7485f05d0cad8f5b3e1ee9b9a4d2812ea1837 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,12 +111,36 @@ 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) { /* Start next conversion */ ADCCON3 = sequence; } +#endif +#ifndef GOT_ADC +#error No known ADC configuration set #endif else {