diff options
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.cpp | 23 |
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 0000000000..934c690ed3 --- /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; +} |