ruuvi.drivers.c ${PROJECT_VERSION}
Drivers for external sensors and peripherals on embedded systems.
Loading...
Searching...
No Matches
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
23rd_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
33rd_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.