Paparazzi UAS
v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
|
Sensor driver for BMP3 sensor via I2C. More...
Go to the source code of this file.
Data Structures | |
struct | Bmp3_I2c |
Functions | |
void | bmp3_i2c_read_eeprom_calib (struct Bmp3_I2c *bmp) |
void | bmp3_i2c_init (struct Bmp3_I2c *bmp, struct i2c_periph *i2c_p, uint8_t addr) |
init function More... | |
void | bmp3_i2c_periodic (struct Bmp3_I2c *bmp) |
Start new measurement if sensor ready. More... | |
void | bmp3_i2c_event (struct Bmp3_I2c *bmp) |
Sensor driver for BMP3 sensor via I2C.
Modified for Paparazzi from SDP3 driver from BoshSensortec see https://github.com/BoschSensortec/BMP3-Sensor-API for original code and license
Definition in file bmp3_i2c.h.
struct Bmp3_I2c |
Definition at line 38 of file bmp3_i2c.h.
Data Fields | ||
---|---|---|
struct bmp3_reg_calib_data | calib | calibration data |
volatile bool | data_available | data ready flag |
struct i2c_periph * | i2c_p | |
struct i2c_transaction | i2c_trans | |
bool | initialized | config done flag |
float | pressure | pressure in Pascal |
struct bmp3_quantized_calib_data | quant_calib | quantized calibration data |
uint32_t | raw_pressure | uncompensated pressure |
uint32_t | raw_temperature | uncompensated temperature |
enum Bmp3Status | status | state machine status |
float | temperature | temperature in deg Celcius |
void bmp3_i2c_event | ( | struct Bmp3_I2c * | bmp | ) |
Definition at line 125 of file bmp3_i2c.c.
References BMP3_ALL, BMP3_STATUS_CONFIGURE, BMP3_STATUS_GET_CALIB, BMP3_STATUS_READ_DATA, BMP3_STATUS_UNINIT, i2c_transaction::buf, compensate_pressure(), compensate_temperature(), Bmp3_I2c::data_available, Bmp3_I2c::i2c_trans, I2CTransDone, I2CTransFailed, I2CTransSuccess, Bmp3_I2c::initialized, parse_calib_data(), parse_sensor_data(), Bmp3_I2c::status, and i2c_transaction::status.
Referenced by baro_bmp3_event().
void bmp3_i2c_init | ( | struct Bmp3_I2c * | bmp, |
struct i2c_periph * | i2c_p, | ||
uint8_t | addr | ||
) |
init function
Definition at line 60 of file bmp3_i2c.c.
References BMP3_STATUS_UNINIT, Bmp3_I2c::data_available, Bmp3_I2c::i2c_p, Bmp3_I2c::i2c_trans, I2CTransDone, Bmp3_I2c::initialized, i2c_transaction::slave_addr, Bmp3_I2c::status, and i2c_transaction::status.
Referenced by baro_bmp3_init().
void bmp3_i2c_periodic | ( | struct Bmp3_I2c * | bmp | ) |
Start new measurement if sensor ready.
Definition at line 78 of file bmp3_i2c.c.
References BMP3_ALL, BMP3_CALIB_DATA_ADDR, BMP3_CALIB_DATA_LEN, BMP3_CONFIG_ADDR, BMP3_IIR_FILTER_COEFF_3, BMP3_NO_OVERSAMPLING, BMP3_NORMAL_MODE, BMP3_ODR_50_HZ, BMP3_ODR_ADDR, BMP3_OSR_ADDR, BMP3_OVERSAMPLING_8X, BMP3_P_AND_T_HEADER_DATA_LEN, BMP3_PWR_CTRL_ADDR, BMP3_SENS_STATUS_REG_ADDR, BMP3_STATUS_CONFIGURE, BMP3_STATUS_GET_CALIB, BMP3_STATUS_READ_DATA, BMP3_STATUS_UNINIT, i2c_transaction::buf, Bmp3_I2c::data_available, Bmp3_I2c::i2c_p, Bmp3_I2c::i2c_trans, i2c_transceive(), i2c_transmit(), I2CTransDone, Bmp3_I2c::initialized, i2c_transaction::slave_addr, Bmp3_I2c::status, and i2c_transaction::status.
Referenced by baro_bmp3_periodic().
void bmp3_i2c_read_eeprom_calib | ( | struct Bmp3_I2c * | bmp | ) |