A feature complete driver for the LM75B temperature sensor from NXP.

Fork of LM75B by Neil Thiessen

Revision:
2:9ecc39b2ca70
Parent:
1:3da8df4319e8
Child:
3:9d68eed28bfb
--- a/LM75B.cpp	Wed Jul 31 22:11:31 2013 +0000
+++ b/LM75B.cpp	Thu Aug 01 16:41:49 2013 +0000
@@ -1,169 +1,170 @@
-/* Copyright (c) 2013 Neil Thiessen, MIT License
+/* LM75B Driver Library
+ * Copyright (c) 2013 Neil Thiessen, MIT License
  *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 
- * and associated documentation files (the "Software"), to deal in the Software without restriction, 
- * including without limitation the rights to use, copy, modify, merge, publish, distribute, 
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ * and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
  *
- * The above copyright notice and this permission notice shall be included in all copies or 
+ * The above copyright notice and this permission notice shall be included in all copies or
  * substantial portions of the Software.
  *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
 #include "LM75B.h"
 #include "mbed.h"
 
-LM75B::LM75B(PinName sda, PinName scl, int addr) : _i2c(sda, scl)
+LM75B::LM75B(PinName sda, PinName scl, Address addr) : _i2c(sda, scl)
 {
     //Set the internal device address
-    _addr = addr;
+    _addr = (int)addr;
 }
 
-LM75B_Power_t LM75B::getPowerMode(void)
+LM75B::PowerMode LM75B::getPowerMode(void)
 {
     //Read the 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Return the status of the SHUTDOWN bit
     if (value & (1 << 0))
-        return LM75B_Power_Shutdown;
+        return POWER_SHUTDOWN;
     else
-        return LM75B_Power_Normal;
+        return POWER_NORMAL;
 }
 
-void LM75B::setPowerMode(LM75B_Power_t mode)
+void LM75B::setPowerMode(PowerMode mode)
 {
     //Read the current 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Set or clear the SHUTDOWN bit
-    if (mode == LM75B_Power_Shutdown)
+    if (mode == POWER_SHUTDOWN)
         value |= (1 << 0);
     else
         value &= ~(1 << 0);
 
     //Write the value back out
-    _write8(LM75B_REG_CONF, value);
+    _write8(__LM75B_REG_CONF, value);
 }
 
-LM75B_OS_Mode_t LM75B::getOSMode(void)
+LM75B::OSMode LM75B::getOSMode(void)
 {
     //Read the 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Return the status of the OS_COMP_INT bit
     if (value & (1 << 1))
-        return LM75B_OS_Interrupt;
+        return OS_INTERRUPT;
     else
-        return LM75B_OS_Comparator;
+        return OS_COMPARATOR;
 }
 
-void LM75B::setOSMode(LM75B_OS_Mode_t mode)
+void LM75B::setOSMode(OSMode mode)
 {
     //Read the current 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Set or clear the OS_COMP_INT bit
-    if (mode == LM75B_OS_Interrupt)
+    if (mode == OS_INTERRUPT)
         value |= (1 << 1);
     else
         value &= ~(1 << 1);
 
     //Write the value back out
-    _write8(LM75B_REG_CONF, value);
+    _write8(__LM75B_REG_CONF, value);
 }
 
-LM75B_OS_Polarity_t LM75B::getOSPolarity(void)
+LM75B::OSPolarity LM75B::getOSPolarity(void)
 {
     //Read the 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Return the status of the OS_POL bit
     if (value & (1 << 2))
-        return LM75B_OS_ActiveHigh;
+        return OS_ACTIVE_HIGH;
     else
-        return LM75B_OS_ActiveLow;
+        return OS_ACTIVE_LOW;
 }
 
-void LM75B::setOSPolarity(LM75B_OS_Polarity_t polarity)
+void LM75B::setOSPolarity(OSPolarity polarity)
 {
     //Read the current 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Set or clear the OS_POL bit
-    if (polarity == LM75B_OS_ActiveHigh)
+    if (polarity == OS_ACTIVE_HIGH)
         value |= (1 << 2);
     else
         value &= ~(1 << 2);
 
     //Write the value back out
-    _write8(LM75B_REG_CONF, value);
+    _write8(__LM75B_REG_CONF, value);
 }
 
-LM75B_OS_FaultQueue_t LM75B::getOSFaultQueue(void)
+LM75B::OSFaultQueue LM75B::getOSFaultQueue(void)
 {
     //Read the 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Return the status of the OS_F_QUE bits
     if ((value & (1 << 3)) && (value & (1 << 4)))
-        return LM75B_OS_FaultQueue_6;
+        return OS_FAULT_QUEUE_6;
     else if (!(value & (1 << 3)) && (value & (1 << 4)))
-        return LM75B_OS_FaultQueue_4;
+        return OS_FAULT_QUEUE_4;
     else if ((value & (1 << 3)) && !(value & (1 << 4)))
-        return LM75B_OS_FaultQueue_2;
+        return OS_FAULT_QUEUE_2;
     else
-        return LM75B_OS_FaultQueue_1;
+        return OS_FAULT_QUEUE_1;
 }
 
-void LM75B::setOSFaultQueue(LM75B_OS_FaultQueue_t queue)
+void LM75B::setOSFaultQueue(OSFaultQueue queue)
 {
     //Read the current 8-bit register value
-    char value = _read8(LM75B_REG_CONF);
+    char value = _read8(__LM75B_REG_CONF);
 
     //Clear the old OS_F_QUE bits
     value &= ~(3 << 3);
 
     //Set the new OS_F_QUE bits
-    if (queue == LM75B_OS_FaultQueue_2)
+    if (queue == OS_FAULT_QUEUE_2)
         value |= (1 << 3);
-    else if (queue == LM75B_OS_FaultQueue_4)
+    else if (queue == OS_FAULT_QUEUE_4)
         value |= (2 << 3);
-    else if (queue == LM75B_OS_FaultQueue_6)
+    else if (queue == OS_FAULT_QUEUE_6)
         value |= (3 << 3);
 
     //Write the value back out
-    _write8(LM75B_REG_CONF, value);
+    _write8(__LM75B_REG_CONF, value);
 }
 
 float LM75B::getAlertTemp(void)
 {
     //Use the 9-bit helper to read the TOS register
-    return _readTempHelper(LM75B_REG_TOS);
+    return _readTempHelper(__LM75B_REG_TOS);
 }
 
 void LM75B::setAlertTemp(float temp)
 {
     //Use the 9-bit helper to write to the TOS register
-    return _writeTempHelper(LM75B_REG_TOS, temp);
+    return _writeTempHelper(__LM75B_REG_TOS, temp);
 }
 
 float LM75B::getAlertHyst(void)
 {
     //Use the 9-bit helper to read the THYST register
-    return _readTempHelper(LM75B_REG_THYST);
+    return _readTempHelper(__LM75B_REG_THYST);
 }
 
 void LM75B::setAlertHyst(float temp)
 {
     //Use the 9-bit helper to write to the THYST register
-    return _writeTempHelper(LM75B_REG_THYST, temp);
+    return _writeTempHelper(__LM75B_REG_THYST, temp);
 }
 
 float LM75B::getTemp(void)
@@ -172,7 +173,7 @@
     short value;
 
     //Read the 11-bit raw temperature value
-    value = _read16(LM75B_REG_TEMP) >> 5;
+    value = _read16(__LM75B_REG_TEMP) >> 5;
 
     //Sign extend negative numbers
     if (value & (1 << 10))