C code and C++ library, driver software for Maxim Integrated DS1775, DS75 thermometer and thermostat temperature sensor. Code supports continuous or shut-down/standby, hysteresis, alarm limits, comparator or interrupt mode, fault filtering, and active low/high. Compact 5-pin SOT23 packaging

Dependents:   DS1775_Digital_Thermostat_Temperature

Revision:
14:c74a5b4d6715
Parent:
12:3ca79cd71289
Child:
15:449134e4b43f
--- a/ds1775_cpp.cpp	Sun Apr 07 11:05:28 2019 +0000
+++ b/ds1775_cpp.cpp	Sun Apr 07 11:24:02 2019 +0000
@@ -87,8 +87,7 @@
     ds1775_raw_data tmp;
      
     if (reg == DS1775_REG_TEMPERATURE || 
-        (reg == DS1775_REG_THYST_LOW_TRIP ||
-        reg == DS1775_REG_TOS_HIGH_TRIP)) {
+        reg == DS1775_REG_THYST_LOW_TRIP || reg == DS1775_REG_TOS_HIGH_TRIP) {
         /* write to the Register Select, true is for repeated start */
         ret = m_i2c.write(m_write_address, &reg, 1, true);
         /* read the two bytes of data */
@@ -122,10 +121,9 @@
     if (reg == DS1775_REG_TEMPERATURE ||
         reg == DS1775_REG_THYST_LOW_TRIP || reg == DS1775_REG_TOS_HIGH_TRIP) {
         read_reg(&tmp.swrd, reg);
-        temperature = (float)tmp.swrd;
+        temperature = (float)tmp.swrd;  /* values are 2's complement */
         temperature *= DS1775_CF_LSB;
         return temperature;
-        
     } else {
         printf("%s: register is invalid, %d r\n", __func__, reg);
         return 0;
@@ -139,7 +137,7 @@
     char cmd[3];
     ds1775_raw_data tmp;
 
-    if (reg >= DS1775_REG_CONFIGURATION && reg <= DS1775_REG_MAX) {
+    if (reg >= DS1775_REG_THYST_LOW_TRIP && reg <= DS1775_REG_MAX) {
         cmd[0] = reg;
         tmp.swrd = value;
         cmd[1] = tmp.msb;