|
@@ -21,19 +21,15 @@ 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.continuous = ADC_MEASUREMENT_IS_CONTINUOUS;
|
|
adc_params.continuous = ADC_MEASUREMENT_IS_CONTINUOUS;
|
|
|
- if (channel == 0 || channel == 3) {
|
|
|
|
|
- // voltage measurement
|
|
|
|
|
- // -> we can measure directly
|
|
|
|
|
- adc_params.gain = 1;
|
|
|
|
|
- adc_params.resolution = 12;
|
|
|
|
|
- adc_params.factor = 1;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ adc_params.gain = 1;
|
|
|
|
|
+ adc_params.resolution = 12;
|
|
|
|
|
+ if (channel == 1 || channel == 2) {
|
|
|
|
|
+ adc_params.factor = 1000;
|
|
|
} else {
|
|
} else {
|
|
|
- // current measurement
|
|
|
|
|
- // -> maximum gain, max resolution
|
|
|
|
|
- //adc_params.gain = 8;
|
|
|
|
|
- //adc_params.resolution = 16;
|
|
|
|
|
- adc_params.factor = 1000; // get microvolts
|
|
|
|
|
|
|
+ adc_params.factor = 1;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
//printf("Config: Memory address of batteries: %p\n", &batteries[0]);
|
|
//printf("Config: Memory address of batteries: %p\n", &batteries[0]);
|
|
|
if (!adc_hal.configure(slot, &adc_params)) {
|
|
if (!adc_hal.configure(slot, &adc_params)) {
|
|
|
return 0xffff;
|
|
return 0xffff;
|
|
@@ -44,11 +40,7 @@ uint16_t read_adc_channel(uint8_t slot, uint8_t channel) {
|
|
|
} else {
|
|
} else {
|
|
|
// in continuous mode we can directly read
|
|
// in continuous mode we can directly read
|
|
|
adc_state = ADC_STATE_READ;
|
|
adc_state = ADC_STATE_READ;
|
|
|
- if (adc_params.resolution == 16) {
|
|
|
|
|
- delay_cycles(ADC_CONTINUOUS_DELAY_CYCLES_SHUNT);
|
|
|
|
|
- } else {
|
|
|
|
|
- delay_cycles(ADC_CONTINUOUS_DELAY_CYCLES_VOLTAGES);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ delay_cycles(ADC_CONTINUOUS_DELAY_CYCLES_VOLTAGES);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
|