TMP102.cpp 483 B

1234567891011121314151617181920212223
  1. #include "TMP102.h"
  2. #define TEMP_REG_ADDR 0x00
  3. TMP102::TMP102(PinName sda, PinName scl, int addr) : m_i2c(sda, scl), m_addr(addr) {
  4. m_i2c.frequency(400000);
  5. }
  6. TMP102::~TMP102() { }
  7. float TMP102::read() {
  8. const char tempRegAddr = TEMP_REG_ADDR;
  9. m_i2c.write(m_addr, &tempRegAddr, 1);
  10. char reg[2] = {0,0};
  11. m_i2c.read(m_addr, reg, 2);
  12. unsigned short res = (reg[0] << 4) | (reg[1] >> 4);
  13. float temp = (float) ((float)res * 0.0625);
  14. return temp;
  15. }