C++ driver software code for Maxim Integrated MAX31723/MAX31722 device temperature sensor. The MAX31723 provides 9 to 12 bits of resolution.

Dependents:   MAX31723_Thermostat_Thermometer_Sensor

Revision:
2:7a20e65da621
Parent:
1:bb6f11be119f
Child:
3:f39791139435
--- a/max31723.cpp	Sun Jan 27 02:49:07 2019 +0000
+++ b/max31723.cpp	Sun Jan 27 07:26:37 2019 +0000
@@ -55,12 +55,14 @@
     return MAX31723_NO_ERROR;
 }
 
-int MAX31723::perform_one_shot(uint8_t resolution)
+int MAX31723::perform_one_shot_int(uint8_t resolution)
 {
-    if (resolution <= MAX31723_CFG_RESOLUTION_12BIT)
-        write_reg(resolution | MAX31723_CFG_1SHOT | MAX31723_CFG_STANDBY,
+    if (resolution <= MAX31723_CFG_RESOLUTION_12BIT) {
+        write_reg(0, MAX31723_REG_CFG | MAX31723_WRITE_MASK);
+        write_reg(MAX31723_CFG_TM_MODE_INTERRUPT | MAX31723_CFG_1SHOT |
+            resolution | MAX31723_CFG_STANDBY,
             MAX31723_REG_CFG | MAX31723_WRITE_MASK);
-    else
+    } else
         return MAX31723_ERROR;
     return MAX31723_NO_ERROR;
 }
@@ -70,10 +72,9 @@
     uint8_t lsb, msb;
     uint16_t raw_temp;
     float temperature;
-    
+    wait(0.2);
     read_reg(lsb, MAX31723_REG_TEMP_LSB);
     read_reg(msb, MAX31723_REG_TEMP_MSB);
-
     raw_temp =  int16_t((msb << 8) | (lsb));
     raw_temp =  raw_temp >> 4;
     temperature = raw_temp * 0.0625 ;