|
@@ -20,18 +20,19 @@ uint16_t read_adc_channel(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.continuous = ADC_MEASUREMENT_IS_CONTINUOUS;
|
|
adc_params.continuous = ADC_MEASUREMENT_IS_CONTINUOUS;
|
|
|
if (channel == 0 || channel == 3) {
|
|
if (channel == 0 || channel == 3) {
|
|
|
// voltage measurement
|
|
// voltage measurement
|
|
|
// -> we can measure directly
|
|
// -> we can measure directly
|
|
|
adc_params.gain = 1;
|
|
adc_params.gain = 1;
|
|
|
adc_params.resolution = 12;
|
|
adc_params.resolution = 12;
|
|
|
|
|
+ adc_params.factor = 1;
|
|
|
} else {
|
|
} else {
|
|
|
// current measurement
|
|
// current measurement
|
|
|
// -> maximum gain, max resolution
|
|
// -> maximum gain, max resolution
|
|
|
adc_params.gain = 8;
|
|
adc_params.gain = 8;
|
|
|
adc_params.resolution = 16;
|
|
adc_params.resolution = 16;
|
|
|
|
|
+ adc_params.factor = 1000; // get microvolts
|
|
|
}
|
|
}
|
|
|
//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);
|
|
@@ -54,7 +55,7 @@ uint16_t read_adc_channel(uint8_t slot, uint8_t channel) {
|
|
|
case ADC_STATE_READ:
|
|
case ADC_STATE_READ:
|
|
|
adc_voltage = adc_hal.read_voltage(slot, &adc_params);
|
|
adc_voltage = adc_hal.read_voltage(slot, &adc_params);
|
|
|
#ifdef DEBUG_ADC
|
|
#ifdef DEBUG_ADC
|
|
|
- printf("[ADC] ADC reading completed. Slot %d Channel %d is %d mV.\n", slot, channel, adc_voltage);
|
|
|
|
|
|
|
+ printf("[ADC] ADC reading completed. Slot %d Channel %d is %d \n", slot, channel, adc_voltage);
|
|
|
#endif
|
|
#endif
|
|
|
adc_state = ADC_STATE_DONE;
|
|
adc_state = ADC_STATE_DONE;
|
|
|
|
|
|