|
@@ -20,12 +20,18 @@ void updateADCReading(uint8_t slot, uint8_t channel) {
|
|
|
case ADC_STATE_CONFIGURE:
|
|
case ADC_STATE_CONFIGURE:
|
|
|
adc_params.channel = channel;
|
|
adc_params.channel = channel;
|
|
|
adc_params.resolution = 12;
|
|
adc_params.resolution = 12;
|
|
|
- //adc_params.continuous = 1;
|
|
|
|
|
|
|
+ adc_params.continuous = ADC_MEASUREMENT_IS_CONTINUOUS;
|
|
|
adc_params.gain = 1;
|
|
adc_params.gain = 1;
|
|
|
//printf("Config: Memory address of batteries: %p\n", &batteries[0]);
|
|
//printf("Config: Memory address of batteries: %p\n", &batteries[0]);
|
|
|
adc_hal.configure(slot, &adc_params);
|
|
adc_hal.configure(slot, &adc_params);
|
|
|
- //adc_state = ADC_STATE_WAIT;
|
|
|
|
|
- adc_state = ADC_STATE_READ;
|
|
|
|
|
|
|
+ if (adc_params.continuous == 1) {
|
|
|
|
|
+ // in one shot mode we wait first to get the result
|
|
|
|
|
+ adc_state = ADC_STATE_WAIT;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // in continuous mode we can directly read
|
|
|
|
|
+ adc_state = ADC_STATE_READ;
|
|
|
|
|
+ delay_cycles(ADC_CONTINUOUS_DELAY_CYCLES);
|
|
|
|
|
+ }
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
case ADC_STATE_WAIT:
|
|
case ADC_STATE_WAIT:
|