98 #define Int32FromBuf(buf, idx) (int32_t)(int8_t)buf[idx+2] << 16 | (uint16_t)buf[idx+1] << 8 | buf[idx];
103 return (
float)press / 4096;
107 return (1-pow((pressure_mbar/altimeter_setting_mbar), 0.190263)) * 4430.8;
volatile uint8_t buf[I2C_BUF_LEN]
Transaction buffer With I2C_BUF_LEN number of bytes.
uint16_t len_r
Number of bytes to read/receive.
transaction successfully finished by I2C driver
void lps25h_i2c_init(struct Lps25h_I2c *lps, struct i2c_periph *i2c_p, uint8_t addr)
void lps25h_i2c_event(struct Lps25h_I2c *lps)
void lps25h_i2c_start_configure(struct Lps25h_I2c *lps)
transmit and receive transaction
struct Lps25hConfig config
I2C interface for LPS25H barometer.
enum Lps25hConfStatus init_status
init status
uint8_t len_w
Number of bytes to write/transmit.
#define Int32FromBuf(buf, idx)
float pressureToAltMeters(float pressure_mbar, float altimeter_setting_mbar)
transaction set to done by user level
enum I2CTransactionStatus status
Transaction status.
#define LPS25H_REG_OUT_XL
bool initialized
config done flag
uint8_t slave_addr
Slave address.
static void lps25h_i2c_tx_reg(struct Lps25h_I2c *lps, uint8_t reg, uint8_t val)
static bool i2c_submit(struct i2c_periph *p, struct i2c_transaction *t)
Submit a I2C transaction.
static void lps25h_set_default_config(struct Lps25hConfig *c)
transmit only transaction
void lps25h_i2c_read(struct Lps25h_I2c *lps)
float lps25h_readPressureMillibars(int32_t press)
struct i2c_periph * i2c_p
enum I2CTransactionType type
Transaction type.
volatile bool data_available
data ready flag
static void lps25h_i2c_send_config(struct Lps25h_I2c *lps)
struct i2c_transaction i2c_trans