ruuvi.drivers.c  ${PROJECT_VERSION}
Drivers for external sensors and peripherals on embedded systems.
ruuvi_interface_i2c_tmp117.c
Go to the documentation of this file.
1 
14 #if RI_TMP117_ENABLED || DOXYGEN
15 #include "ruuvi_driver_error.h"
16 #include "ruuvi_interface_i2c.h"
18 
19 #define TMP_ADDR_SIZE (1U)
20 #define TMP_REG_SIZE (2U)
21 #define TMP_TX_SIZE (TMP_ADDR_SIZE + TMP_REG_SIZE)
22 
23 rd_status_t ri_i2c_tmp117_write (const uint8_t dev_id,
24  const uint8_t reg_addr, const uint16_t reg_val)
25 {
26  uint8_t command[TMP_TX_SIZE];
27  command[0] = reg_addr;
28  command[1] = reg_val >> 8;
29  command[2] = reg_val & 0xFF;
30  return ri_i2c_write_blocking (dev_id, command, TMP_TX_SIZE, true);
31 }
32 
33 rd_status_t ri_i2c_tmp117_read (const uint8_t dev_id,
34  const uint8_t reg_addr,
35  uint16_t * const reg_val)
36 {
37  rd_status_t err_code = RD_SUCCESS;
38  uint8_t command[TMP_TX_SIZE] = {0};
39  command[0] = reg_addr;
40  err_code |= ri_i2c_write_blocking (dev_id, command, TMP_ADDR_SIZE, false);
41  err_code |= ri_i2c_read_blocking (dev_id, & (command[1]), TMP_REG_SIZE);
42  *reg_val = (uint16_t) (command[1] << 8U) + command[2];
43  return err_code;
44 }
45 #endif
uint32_t rd_status_t
bitfield for representing errors
#define RD_SUCCESS
Internal Error.
rd_status_t ri_i2c_tmp117_write(const uint8_t dev_id, const uint8_t reg_addr, const uint16_t reg_val)
I2C write function for TMP117.
#define TMP_TX_SIZE
#define TMP_REG_SIZE
rd_status_t ri_i2c_tmp117_read(const uint8_t dev_id, const uint8_t reg_addr, uint16_t *const reg_val)
I2C Read function for TMP117.
#define TMP_ADDR_SIZE
Header to enable and disable module compilation.
Ruuvi error codes and error check function.
Interface for I2C operations.
rd_status_t ri_i2c_write_blocking(const uint8_t address, uint8_t *const p_tx, const size_t tx_len, const bool stop)
I2C read function.
rd_status_t ri_i2c_read_blocking(const uint8_t address, uint8_t *const p_rx, const size_t rx_len)
I2C read function.
I2C read/write functions for TI TMP117.