Paparazzi UAS  v5.15_devel-230-gc96ce27
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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

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:

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:

static double compensate_pressure ( struct Bmp3_I2c *  bmp)
static
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_quantized_calib_data::par_t1, bmp3_quantized_calib_data::par_t2, bmp3_quantized_calib_data::par_t3, Bmp3_I2c::quant_calib, Bmp3_I2c::raw_temperature, bmp3_quantized_calib_data::t_lin, and Bmp3_I2c::temperature.

Referenced by bmp3_i2c_event().

+ Here is the caller graph for this function:

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: