24 lines
483 B
C++
24 lines
483 B
C++
|
#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;
|
||
|
}
|