summaryrefslogtreecommitdiff
path: root/tool/mbed/mbed-sdk/libraries/tests/peripherals/TMP102/TMP102.cpp
blob: 934c690ed3ad7c8d8a6d815d8eae7c0e9906a7c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
}