diff --git a/ModbusThermometer.cpp b/ModbusThermometer.cpp index 3ff9fe2..e63a819 100644 --- a/ModbusThermometer.cpp +++ b/ModbusThermometer.cpp @@ -135,12 +135,16 @@ void loop() { switch (calibrationState) { case e_CAL_IDLE: + for (uint8_t i = 0; i < NUM_OF_CHANNELS; i++) { + ads1210[i].setCalOffset(0.0); + ads1210[i].setCalFactor(1.0); + } calibrationState = e_CAL_RUNNING; break; case e_CAL_RUNNING: calibrationCycleCnt++; for (uint8_t i = 0; i < NUM_OF_CHANNELS; i++) { - calibrationValueSum[i] += ads1210[i].getRRaw(); + calibrationValueSum[i] += ads1210[i].getR(); } if (calibrationCycleCnt >= CALIBRATION_CYCLES) { calibrationState = e_CAL_SET; diff --git a/ads1210.cpp b/ads1210.cpp index d1278e6..6f54d23 100644 --- a/ads1210.cpp +++ b/ads1210.cpp @@ -94,7 +94,7 @@ void ADS1210::exec() { m_u = (((float)m_value) / ((float)vMax)) * U_REF; m_rRaw = ((((float)vMax) / ((float)m_value)) - 1.0) * R_REF; - m_r = (m_rRaw + m_calOffset) * m_calFactor; + m_r = (m_rRaw - m_calOffset) * m_calFactor; } }