Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
bmp3_i2c.c File Reference

Sensor driver for BMP3 sensor via I2C. More...

+ Include dependency graph for bmp3_i2c.c:

Go to the source code of this file.

Functions

static void parse_sensor_data (struct Bmp3_I2c *bmp)
 local function to extract raw data from i2c buffer and compute compensation with selected precision More...
 
static void parse_calib_data (struct Bmp3_I2c *bmp)
 This internal API is used to parse the calibration data, compensates it and store it in device structure. More...
 
static double compensate_pressure (struct Bmp3_I2c *bmp)
 This internal API is used to compensate the raw pressure data and return the compensated pressure data in double data type. More...
 
static double compensate_temperature (struct Bmp3_I2c *bmp)
 This internal API is used to compensate the raw temperature data and return the compensated temperature data in double data type. More...
 
static double bmp3_pow (double base, uint8_t power)
 This internal API is used to calculate the power functionality for double precision floating point values. More...
 
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)
 

Detailed Description

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.c.

Function Documentation

◆ bmp3_i2c_event()

◆ bmp3_i2c_init()

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().

+ Here is the caller graph for this function:

◆ bmp3_i2c_periodic()

◆ bmp3_pow()

static double bmp3_pow ( double  base,
uint8_t  power 
)
static

This internal API is used to calculate the power functionality for double precision floating point values.

Definition at line 320 of file bmp3_i2c.c.

Referenced by compensate_pressure().

+ Here is the caller graph for this function:

◆ compensate_pressure()

static double compensate_pressure ( struct Bmp3_I2c bmp)
static

This internal API is used to compensate the raw pressure data and return the compensated pressure data in double data type.

Definition at line 281 of file bmp3_i2c.c.

References bmp3_pow(), Bmp3_I2c::pressure, Bmp3_I2c::quant_calib, and Bmp3_I2c::raw_pressure.

Referenced by bmp3_i2c_event().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compensate_temperature()

static double compensate_temperature ( struct Bmp3_I2c bmp)
static

This internal API is used to compensate the raw temperature data and return the compensated temperature data in double data type.

Definition at line 261 of file bmp3_i2c.c.

References Bmp3_I2c::quant_calib, Bmp3_I2c::raw_temperature, and Bmp3_I2c::temperature.

Referenced by bmp3_i2c_event().

+ Here is the caller graph for this function:

◆ parse_calib_data()

◆ parse_sensor_data()

static void parse_sensor_data ( struct Bmp3_I2c bmp)
static

local function to extract raw data from i2c buffer and compute compensation with selected precision

Definition at line 166 of file bmp3_i2c.c.

References i2c_transaction::buf, Bmp3_I2c::i2c_trans, Bmp3_I2c::raw_pressure, and Bmp3_I2c::raw_temperature.

Referenced by bmp3_i2c_event().

+ Here is the caller graph for this function: