From f5d7b0428db5257d62c080daa2757199c27ef784 Mon Sep 17 00:00:00 2001 From: jaseg Date: Mon, 24 Dec 2018 19:09:46 +0900 Subject: Add untested ADC mode switching code --- fw/adc.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'fw/adc.h') diff --git a/fw/adc.h b/fw/adc.h index 8c0c6cc..9d89cb5 100644 --- a/fw/adc.h +++ b/fw/adc.h @@ -20,8 +20,6 @@ #include "global.h" -#define ADC_OVERSAMPLING 0 - struct adc_measurements { int16_t adc_vcc_mv; int16_t adc_temp_celsius_tenths; @@ -29,8 +27,29 @@ struct adc_measurements { int16_t adc_vmeas_b_mv; }; +enum channel_mask { + MASK_VMEAS_A = ADC_CHSELR_CHSEL0, + MASK_VMEAS_B = ADC_CHSELR_CHSEL1 +}; + +enum adc_mode { + ADC_UNINITIALIZED, + ADC_MONITOR, + ADC_SCOPE +}; + +enum sampling_mode { + SAMPLE_FAST = 0 +}; + + extern volatile struct adc_measurements adc_data; +extern volatile uint16_t adc_buf[ADC_BUFSIZE]; +extern enum adc_mode adc_mode; +extern int adc_oversampling; void adc_init(void); +void adc_configure_scope_mode(uint8_t channel_mask, int sampling_interval_ns); +void adc_configure_monitor_mode(int oversampling); #endif/*__ADC_H__*/ -- cgit