diff --git a/firmware/analog_input.cpp b/firmware/analog_input.cpp index c3dda05..e0bd8dc 100644 --- a/firmware/analog_input.cpp +++ b/firmware/analog_input.cpp @@ -17,7 +17,7 @@ ADCConversionGroup convGroup = ADC_CFGR1_CONT | ADC_CFGR1_RES_12BIT, // CFGR1 ADC_TR(0, 0), // TR ADC_SMPR_SMP_7P5, // SMPR - ADC_CHSELR_CHSEL0 | ADC_CHSELR_CHSEL1 | ADC_CHSELR_CHSEL2 + ADC_CHSELR_CHSEL0 | ADC_CHSELR_CHSEL2 | ADC_CHSELR_CHSEL3 }; static float AverageSamples(adcsample_t* buffer, size_t idx) @@ -42,7 +42,7 @@ AnalogResult AnalogSample() return { .NernstVoltage = AverageSamples(adcBuffer, 0) * NERNST_INPUT_GAIN, - .VirtualGroundVoltage = AverageSamples(adcBuffer, 1), - .PumpCurrentVoltage = AverageSamples(adcBuffer, 2), + .PumpCurrentVoltage = AverageSamples(adcBuffer, 1), + .VirtualGroundVoltageInt = AverageSamples(adcBuffer, 2), }; } diff --git a/firmware/analog_input.h b/firmware/analog_input.h index 7f25e61..784b556 100644 --- a/firmware/analog_input.h +++ b/firmware/analog_input.h @@ -3,8 +3,8 @@ struct AnalogResult { float NernstVoltage; - float VirtualGroundVoltage; float PumpCurrentVoltage; + float VirtualGroundVoltageInt; }; AnalogResult AnalogSample(); diff --git a/firmware/sampling.cpp b/firmware/sampling.cpp index 21b455c..2745133 100644 --- a/firmware/sampling.cpp +++ b/firmware/sampling.cpp @@ -43,7 +43,7 @@ static void SamplingThread(void*) nernstAc = f_abs(r2_opposite_phase - r_2); nernstDc = (r2_opposite_phase + r_2) / 2; - pumpCurrentSenseVoltage = 0.8f * pumpCurrentSenseVoltage + 0.2f * (result.PumpCurrentVoltage - HALF_VCC); + pumpCurrentSenseVoltage = 0.8f * pumpCurrentSenseVoltage + 0.2f * (result.PumpCurrentVoltage - result.VirtualGroundVoltageInt); // Shift history over by one r_3 = r_2;