diff options
| author | Keith Packard <keithp@keithp.com> | 2011-05-20 23:47:55 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-05-21 02:07:43 -0700 | 
| commit | 557522e447448023d7869c0fa15ed8337db7e1b8 (patch) | |
| tree | c45649e979e4852fef7e65ac5bcc52c01157e688 /src-avr/ao.h | |
| parent | f7e552a0f4b1382a076b0f3ffc50ef068bfa141f (diff) | |
src-avr: Add ADC routines to telescience
Note that SLEEP mode must be disabled or extra ADC interrupts occur,
which messes up saving ADC values to the right channel.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src-avr/ao.h')
| -rw-r--r-- | src-avr/ao.h | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/src-avr/ao.h b/src-avr/ao.h index 90298a3e..0d278525 100644 --- a/src-avr/ao.h +++ b/src-avr/ao.h @@ -65,6 +65,10 @@ extern __xdata struct ao_task *__data ao_cur_task;  #define AO_NUM_TASKS		16	/* maximum number of tasks */  #define AO_NO_TASK		0	/* no task id */ +#ifdef AVR +extern uint8_t	ao_cpu_sleep_disable; +#endif +  /*   ao_task.c   */ @@ -165,14 +169,22 @@ ao_clock_init(void);  /*   * One set of samples read from the A/D converter or telemetry   */ +#ifdef AVR +#define NUM_ADC		12 +#endif +  struct ao_adc {  	uint16_t	tick;		/* tick when the sample was read */ +#ifdef AVR +	uint16_t	adc[NUM_ADC];	/* samples */ +#else  	int16_t		accel;		/* accelerometer */  	int16_t		pres;		/* pressure sensor */  	int16_t		temp;		/* temperature sensor */  	int16_t		v_batt;		/* battery voltage */  	int16_t		sense_d;	/* drogue continuity sense */  	int16_t		sense_m;	/* main continuity sense */ +#endif  };  #if HAS_ADC @@ -190,6 +202,7 @@ struct ao_adc {   */  #define AO_ADC_RING	32 +  #define ao_adc_ring_next(n)	(((n) + 1) & (AO_ADC_RING - 1))  #define ao_adc_ring_prev(n)	(((n) - 1) & (AO_ADC_RING - 1))  | 
