aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core/tool/mbed/mbed-sdk/libraries/tests/peripherals/TMP102/TMP102.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/tool/mbed/mbed-sdk/libraries/tests/peripherals/TMP102/TMP102.cpp')
-rw-r--r--tmk_core/tool/mbed/mbed-sdk/libraries/tests/peripherals/TMP102/TMP102.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tmk_core/tool/mbed/mbed-sdk/libraries/tests/peripherals/TMP102/TMP102.cpp b/tmk_core/tool/mbed/mbed-sdk/libraries/tests/peripherals/TMP102/TMP102.cpp
new file mode 100644
index 000000000..934c690ed
--- /dev/null
+++ b/tmk_core/tool/mbed/mbed-sdk/libraries/tests/peripherals/TMP102/TMP102.cpp
@@ -0,0 +1,23 @@
+#include "TMP102.h"
+
+#define TEMP_REG_ADDR 0x00
+
+TMP102::TMP102(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) {
+ m_i2c.frequency(400000);
+}
+TMP102::~TMP102() { }
+
+float TMP102::read() {
+ const char tempRegAddr = TEMP_REG_ADDR;
+
+ m_i2c.write(m_addr, &tempRegAddr, 1);
+
+ char reg[2] = {0,0};
+ m_i2c.read(m_addr, reg, 2);
+
+ unsigned short res = (reg[0] << 4) | (reg[1] >> 4);
+
+ float temp = (float) ((float)res * 0.0625);
+
+ return temp;
+}