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.
enum I2CTransactionType type
Transaction type.
enum I2CTransactionStatus status
Transaction status.
uint8_t slave_addr
Slave address.
uint8_t len_w
Number of bytes to write/transmit.
static bool i2c_submit(struct i2c_periph *p, struct i2c_transaction *t)
Submit a I2C transaction.
@ I2CTransSuccess
transaction successfully finished by I2C driver
@ I2CTransFailed
transaction failed
@ I2CTransDone
transaction set to done by user level
@ I2CTransTx
transmit only transaction
@ I2CTransTxRx
transmit and receive transaction
static void lps25h_set_default_config(struct Lps25hConfig *c)
float lps25h_readPressureMillibars(int32_t press)
#define Int32FromBuf(buf, idx)
static void lps25h_i2c_send_config(struct Lps25h_I2c *lps)
void lps25h_i2c_event(struct Lps25h_I2c *lps)
void lps25h_i2c_start_configure(struct Lps25h_I2c *lps)
void lps25h_i2c_init(struct Lps25h_I2c *lps, struct i2c_periph *i2c_p, uint8_t addr)
void lps25h_i2c_read(struct Lps25h_I2c *lps)
static void lps25h_i2c_tx_reg(struct Lps25h_I2c *lps, uint8_t reg, uint8_t val)
float pressureToAltMeters(float pressure_mbar, float altimeter_setting_mbar)
I2C interface for LPS25H barometer.
bool initialized
config done flag
struct i2c_periph * i2c_p
volatile bool data_available
data ready flag
struct i2c_transaction i2c_trans
enum Lps25hConfStatus init_status
init status
struct Lps25hConfig config
#define LPS25H_REG_OUT_XL
int int32_t
Typedef defining 32 bit int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.