ChibiOS  20.3.4
Collaboration diagram for BMP085:

Detailed Description

Version identification

#define EX_BMP085_VERSION   "1.0.1"
 BMP085 driver version string. More...
 
#define EX_BMP085_MAJOR   1
 BMP085 driver version major number. More...
 
#define EX_BMP085_MINOR   0
 BMP085 driver version minor number. More...
 
#define EX_BMP085_PATCH   1
 BMP085 driver version patch number. More...
 
#define BMP085_BARO_NUMBER_OF_AXES   1U
 BMP085 barometer subsystem characteristics. More...
 
#define BMP085_P_RES   0.01
 
#define BMP085_THERMO_NUMBER_OF_AXES   1U
 BMP085 thermometer subsystem characteristics. More...
 
#define BMP085_T_RES   0.1
 

BMP085 Registers addresses.

#define BMP085_AD_CR   0xF4
 
#define BMP085_AD_T_DR_MSB   0xF6
 
#define BMP085_AD_T_DR_LSB   0xF7
 
#define BMP085_AD_P_DR_MSB   0xF6
 
#define BMP085_AD_P_DR_LSB   0xF7
 
#define BMP085_AD_P_DR_XLSB   0xF8
 
#define BMP085_AD_CC_AC1_MSB   0xAA
 
#define BMP085_AD_CC_AC1_LSB   0xAB
 
#define BMP085_AD_CC_AC2_MSB   0xAC
 
#define BMP085_AD_CC_AC2_LSB   0xAD
 
#define BMP085_AD_CC_AC3_MSB   0xAE
 
#define BMP085_AD_CC_AC3_LSB   0xAF
 
#define BMP085_AD_CC_AC4_MSB   0xB0
 
#define BMP085_AD_CC_AC4_LSB   0xB1
 
#define BMP085_AD_CC_AC5_MSB   0xB2
 
#define BMP085_AD_CC_AC5_LSB   0xB3
 
#define BMP085_AD_CC_AC6_MSB   0xB4
 
#define BMP085_AD_CC_AC6_LSB   0xB5
 
#define BMP085_AD_CC_B1_MSB   0xB6
 
#define BMP085_AD_CC_B1_LSB   0xB7
 
#define BMP085_AD_CC_B2_MSB   0xB8
 
#define BMP085_AD_CC_B2_LSB   0xB9
 
#define BMP085_AD_CC_MB_MSB   0xBA
 
#define BMP085_AD_CC_MB_LSB   0xBB
 
#define BMP085_AD_CC_MC_MSB   0xBC
 
#define BMP085_AD_CC_MC_LSB   0xBD
 
#define BMP085_AD_CC_MD_MSB   0xBE
 
#define BMP085_AD_CC_MD_LSB   0xBF
 

Configuration options

#define BMP085_USE_I2C   TRUE
 BMP085 I2C interface selector. More...
 
#define BMP085_USE_ADVANCED   TRUE
 BMP085 sensor subsystem advanced configurations switch. More...
 
#define BMP085_SHARED_I2C   FALSE
 BMP085 shared I2C switch. More...
 

BMP085 barometer subsystem data structures and types.

enum  bmp085_baro_ct_t { BMP085_BARO_CT_LOW = 0x05, BMP085_BARO_CT_STD = 0x18, BMP085_BARO_CT_HR = 0x0E, BMP085_BARO_CT_LUHR = 0x1A }
 BMP085 barometer subsystem pressure conversion time. More...
 
enum  bmp085_baro_mode_t { BMP085_BARO_MODE_LOW = 0x00, BMP085_BARO_MODE_STD = 0x01, BMP085_BARO_MODE_HR = 0x02, BMP085_BARO_MODE_LUHR = 0x03 }
 BMP085 barometer subsystem mode. More...
 
enum  bmp085_baro_oss_t { BMP085_BARO_OSS_0 = 0x00, BMP085_BARO_OSS_1 = 0x01, BMP085_BARO_OSS_2 = 0x02, BMP085_BARO_OSS_3 = 0x04 }
 BMP085 barometer oversampling setting. More...
 

BMP085 thermometer subsystem data structures and types.

enum  bmp085_thermo_ct_t { BMP085_THERMO_CT_LOW = 0x05, BMP085_THERMO_CT_STD = 0x18, BMP085_THERMO_CT_HR = 0x0E, BMP085_THERMO_CT_LUHR = 0x1A }
 BMP085 thermometer subsystem temperature conversion time. More...
 

BMP085 main system data structures and types.

enum  bmp085_state_t { BMP085_UNINIT = 0, BMP085_STOP = 1, BMP085_READY = 2 }
 Driver state machine possible states. More...
 
typedef struct BMP085Driver BMP085Driver
 Structure representing a BMP085 driver. More...
 
#define _bmp085_baro_methods   _base_barometer_methods
 BMP085 barometer subsystem specific methods. More...
 
#define _bmp085_thermo_methods   _base_thermometer_methods
 BMP085 thermometer subsystem specific methods. More...
 
#define _bmp085_data
 BMP085Driver specific data. More...
 

Data Structures

struct  bmp085_cd_t
 BMP085 barometer subsystem calibration data. More...
 
struct  BMP085Config
 BMP085 configuration structure. More...
 
struct  BMP085BAROVMT
 BMP085 barometer virtual methods table. More...
 
struct  BMP085THERMOVMT
 BMP085 thermometer virtual methods table. More...
 
struct  BMP085Driver
 BMP085 driver structure. More...
 

Functions

msg_t bmp085I2CReadRegister (I2CDriver *i2cp, uint8_t reg, uint8_t *rxbufp, size_t n)
 Reads registers value using I2C. More...
 
msg_t bmp085I2CWriteRegister (I2CDriver *i2cp, uint8_t *txbufp, size_t n)
 Writes a value into a register using I2C. More...
 
static msg_t bmp085ReadCoefficient (BMP085Driver *devp, uint8_t reg)
 Read all the calibration data from the BMP085 EEPROM. More...
 
static void calcul_t (BMP085Driver *devp, int32_t ut, float *ctp)
 Calcul the true temperature. More...
 
static void calcul_p (BMP085Driver *devp, int32_t up, uint8_t oss, float *cpp)
 Calcul the true pressure. More...
 
static msg_t start_t_measurement (BMP085Driver *devp)
 Start temperature measurement. More...
 
static msg_t start_p_measurement (BMP085Driver *devp)
 Start the pressure measurment. More...
 
static msg_t acquire_ut (BMP085Driver *devp, int32_t *utemp)
 Read the uncompensated temperature from the BMP085 register. More...
 
static msg_t acquire_up (BMP085Driver *devp, int32_t *upress)
 Read the uncompensated pressure from the BMP085 register. More...
 
static size_t baro_get_axes_number (void *ip)
 Get the barometer number of axes. More...
 
static size_t thermo_get_axes_number (void *ip)
 Get the thermometer number of axes. More...
 
static size_t sens_get_axes_number (void *ip)
 Get the sensor number of axes. More...
 
static msg_t baro_read_raw (void *ip, int32_t axes[])
 Read baromether raw data. More...
 
static msg_t thermo_read_raw (void *ip, int32_t axes[])
 Read thermometer raw data. More...
 
static msg_t sens_read_raw (void *ip, int32_t axes[])
 Read BMP085 sensor raw data. More...
 
static msg_t baro_read_cooked (void *ip, float axes[])
 Read barometer cooked data. More...
 
static msg_t thermo_read_cooked (void *ip, float axes[])
 Read thermometer cooked data. More...
 
static msg_t sens_read_cooked (void *ip, float axes[])
 Read BMP085 sensor cooked data. More...
 
static msg_t baro_set_bias (void *ip, float *bp)
 Set the barometer bias. More...
 
static msg_t thermo_set_bias (void *ip, float *bp)
 Set the thermometer bias. More...
 
static msg_t baro_reset_bias (void *ip)
 Reset the barometer bias. More...
 
static msg_t thermo_reset_bias (void *ip)
 Reset the thermometer bias. More...
 
static msg_t baro_set_sensivity (void *ip, float *sp)
 Set the barometer sensivity. More...
 
static msg_t thermo_set_sensivity (void *ip, float *sp)
 Set the thermometer sensivity. More...
 
static msg_t baro_reset_sensivity (void *ip)
 Reset the barometer sensivity. More...
 
static msg_t thermo_reset_sensivity (void *ip)
 Reset the thermometer sensivity. More...
 
void bmp085ObjectInit (BMP085Driver *devp)
 Initializes an instance. More...
 
void bmp085Start (BMP085Driver *devp, const BMP085Config *config)
 Configures and activates BMP085 Complex Driver peripheral. More...
 
void bmp085Stop (BMP085Driver *devp)
 Deactivates the BMP085 Complex Driver peripheral. More...
 

Macro Definition Documentation

◆ EX_BMP085_VERSION

#define EX_BMP085_VERSION   "1.0.1"

BMP085 driver version string.

Definition at line 48 of file bmp085.h.

◆ EX_BMP085_MAJOR

#define EX_BMP085_MAJOR   1

BMP085 driver version major number.

Definition at line 53 of file bmp085.h.

◆ EX_BMP085_MINOR

#define EX_BMP085_MINOR   0

BMP085 driver version minor number.

Definition at line 58 of file bmp085.h.

◆ EX_BMP085_PATCH

#define EX_BMP085_PATCH   1

BMP085 driver version patch number.

Definition at line 63 of file bmp085.h.

◆ BMP085_BARO_NUMBER_OF_AXES

#define BMP085_BARO_NUMBER_OF_AXES   1U

BMP085 barometer subsystem characteristics.

Number of axes

Definition at line 70 of file bmp085.h.

◆ BMP085_P_RES

#define BMP085_P_RES   0.01

LSB/hP

Definition at line 72 of file bmp085.h.

◆ BMP085_THERMO_NUMBER_OF_AXES

#define BMP085_THERMO_NUMBER_OF_AXES   1U

BMP085 thermometer subsystem characteristics.

Number of axes

Definition at line 79 of file bmp085.h.

◆ BMP085_T_RES

#define BMP085_T_RES   0.1

LSB/C°

Definition at line 81 of file bmp085.h.

◆ BMP085_AD_CR

#define BMP085_AD_CR   0xF4

Control register address.

Definition at line 88 of file bmp085.h.

◆ BMP085_AD_T_DR_MSB

#define BMP085_AD_T_DR_MSB   0xF6

Temp MSB data register addr.

Definition at line 89 of file bmp085.h.

◆ BMP085_AD_T_DR_LSB

#define BMP085_AD_T_DR_LSB   0xF7

Temp LSB data register addr.

Definition at line 90 of file bmp085.h.

◆ BMP085_AD_P_DR_MSB

#define BMP085_AD_P_DR_MSB   0xF6

Press MSB data register addr.

Definition at line 91 of file bmp085.h.

◆ BMP085_AD_P_DR_LSB

#define BMP085_AD_P_DR_LSB   0xF7

Press LSB data register addr.

Definition at line 92 of file bmp085.h.

◆ BMP085_AD_P_DR_XLSB

#define BMP085_AD_P_DR_XLSB   0xF8

Press XLSB data register addr.

Definition at line 93 of file bmp085.h.

◆ BMP085_AD_CC_AC1_MSB

#define BMP085_AD_CC_AC1_MSB   0xAA

AC1 MSB calib coef reg addr.

Definition at line 94 of file bmp085.h.

◆ BMP085_AD_CC_AC1_LSB

#define BMP085_AD_CC_AC1_LSB   0xAB

AC1 LSB calib coef reg addr.

Definition at line 95 of file bmp085.h.

◆ BMP085_AD_CC_AC2_MSB

#define BMP085_AD_CC_AC2_MSB   0xAC

AC2 MSB calib coef reg addr.

Definition at line 96 of file bmp085.h.

◆ BMP085_AD_CC_AC2_LSB

#define BMP085_AD_CC_AC2_LSB   0xAD

AC2 LSB calib coef reg addr.

Definition at line 97 of file bmp085.h.

◆ BMP085_AD_CC_AC3_MSB

#define BMP085_AD_CC_AC3_MSB   0xAE

AC3 MSB calib coef reg addr.

Definition at line 98 of file bmp085.h.

◆ BMP085_AD_CC_AC3_LSB

#define BMP085_AD_CC_AC3_LSB   0xAF

AC3 LSB calib coef reg addr.

Definition at line 99 of file bmp085.h.

◆ BMP085_AD_CC_AC4_MSB

#define BMP085_AD_CC_AC4_MSB   0xB0

AC4 MSB calib coef reg addr.

Definition at line 100 of file bmp085.h.

◆ BMP085_AD_CC_AC4_LSB

#define BMP085_AD_CC_AC4_LSB   0xB1

AC4 LSB calib coef reg addr.

Definition at line 101 of file bmp085.h.

◆ BMP085_AD_CC_AC5_MSB

#define BMP085_AD_CC_AC5_MSB   0xB2

AC5 MSB calib coef reg addr.

Definition at line 102 of file bmp085.h.

◆ BMP085_AD_CC_AC5_LSB

#define BMP085_AD_CC_AC5_LSB   0xB3

AC5 LSB calib coef reg addr.

Definition at line 103 of file bmp085.h.

◆ BMP085_AD_CC_AC6_MSB

#define BMP085_AD_CC_AC6_MSB   0xB4

AC6 MSB calib coef reg addr.

Definition at line 104 of file bmp085.h.

◆ BMP085_AD_CC_AC6_LSB

#define BMP085_AD_CC_AC6_LSB   0xB5

AC6 LSB calib coef reg addr.

Definition at line 105 of file bmp085.h.

◆ BMP085_AD_CC_B1_MSB

#define BMP085_AD_CC_B1_MSB   0xB6

B1 MSB calib coef reg addr.

Definition at line 106 of file bmp085.h.

◆ BMP085_AD_CC_B1_LSB

#define BMP085_AD_CC_B1_LSB   0xB7

B1 LSB calib coef reg addr.

Definition at line 107 of file bmp085.h.

◆ BMP085_AD_CC_B2_MSB

#define BMP085_AD_CC_B2_MSB   0xB8

B2 MSB calib coef reg addr.

Definition at line 108 of file bmp085.h.

◆ BMP085_AD_CC_B2_LSB

#define BMP085_AD_CC_B2_LSB   0xB9

B2 LSB calib coef reg addr.

Definition at line 109 of file bmp085.h.

◆ BMP085_AD_CC_MB_MSB

#define BMP085_AD_CC_MB_MSB   0xBA

MB MSB calib coef reg addr.

Definition at line 110 of file bmp085.h.

◆ BMP085_AD_CC_MB_LSB

#define BMP085_AD_CC_MB_LSB   0xBB

MB LSB calib coef reg addr.

Definition at line 111 of file bmp085.h.

◆ BMP085_AD_CC_MC_MSB

#define BMP085_AD_CC_MC_MSB   0xBC

MC MSB calib coef reg addr.

Definition at line 112 of file bmp085.h.

◆ BMP085_AD_CC_MC_LSB

#define BMP085_AD_CC_MC_LSB   0xBD

MC LSB calib coef reg addr.

Definition at line 113 of file bmp085.h.

◆ BMP085_AD_CC_MD_MSB

#define BMP085_AD_CC_MD_MSB   0xBE

MD MSB calib coef reg addr.

Definition at line 114 of file bmp085.h.

◆ BMP085_AD_CC_MD_LSB

#define BMP085_AD_CC_MD_LSB   0xBF

MD LSB calib coef reg addr.

Definition at line 115 of file bmp085.h.

◆ BMP085_USE_I2C

#define BMP085_USE_I2C   TRUE

BMP085 I2C interface selector.

If set to TRUE the support for I2C is included.

Note
The default is TRUE.

Definition at line 133 of file bmp085.h.

◆ BMP085_USE_ADVANCED

#define BMP085_USE_ADVANCED   TRUE

BMP085 sensor subsystem advanced configurations switch.

If set to TRUE more configurations are available.

Note
The default is TRUE.

Definition at line 142 of file bmp085.h.

◆ BMP085_SHARED_I2C

#define BMP085_SHARED_I2C   FALSE

BMP085 shared I2C switch.

If set to TRUE the device acquires I2C bus ownership on each transaction.

Note
The default is FALSE. Requires I2C_USE_MUTUAL_EXCLUSION.

Definition at line 152 of file bmp085.h.

◆ _bmp085_baro_methods

#define _bmp085_baro_methods   _base_barometer_methods

BMP085 barometer subsystem specific methods.

Definition at line 320 of file bmp085.h.

◆ _bmp085_thermo_methods

#define _bmp085_thermo_methods   _base_thermometer_methods

BMP085 thermometer subsystem specific methods.

Definition at line 326 of file bmp085.h.

◆ _bmp085_data

#define _bmp085_data
Value:
_base_barometer_data \
_base_thermometer_data \
/* Driver state. */ \
bmp085_state_t state; \
/* Current configuration data. */ \
const BMP085Config *config; \
/* Current barometer sensitivity. */ \
float barosensitivity[BMP085_BARO_NUMBER_OF_AXES]; \
/* Barometer bias data. */ \
int32_t barobias[BMP085_BARO_NUMBER_OF_AXES]; \
/* Current thermometer sensitivity. */ \
float thermosensitivity[BMP085_THERMO_NUMBER_OF_AXES]; \
/* Thermometer bias data. */ \
int32_t thermobias[BMP085_THERMO_NUMBER_OF_AXES]; \
/* BMP085 calibration data. */ \
bmp085_cd_t calibrationdata;

BMP085Driver specific data.

Definition at line 350 of file bmp085.h.

Typedef Documentation

◆ BMP085Driver

typedef struct BMP085Driver BMP085Driver

Structure representing a BMP085 driver.

Definition at line 315 of file bmp085.h.

Enumeration Type Documentation

◆ bmp085_baro_ct_t

BMP085 barometer subsystem pressure conversion time.

Enumerator
BMP085_BARO_CT_LOW 

Convers time in ultra low power mode.

BMP085_BARO_CT_STD 

Convers time in standard mode.

BMP085_BARO_CT_HR 

Convers time in high resolution mode.

BMP085_BARO_CT_LUHR 

Convers time in ultra high res. mode.

Definition at line 180 of file bmp085.h.

◆ bmp085_baro_mode_t

BMP085 barometer subsystem mode.

Enumerator
BMP085_BARO_MODE_LOW 

BMP085 ultra low power mode.

BMP085_BARO_MODE_STD 

BMP085 standard mode.

BMP085_BARO_MODE_HR 

BMP085 high resolution mode.

BMP085_BARO_MODE_LUHR 

BMP085 ultra high res. mode.

Definition at line 190 of file bmp085.h.

◆ bmp085_baro_oss_t

BMP085 barometer oversampling setting.

Enumerator
BMP085_BARO_OSS_0 

Ultra low power sampling rate.

BMP085_BARO_OSS_1 

Standard mode sampling rate.

BMP085_BARO_OSS_2 

High resolution sampling rate.

BMP085_BARO_OSS_3 

ultra high resolution sampling rate.

Definition at line 200 of file bmp085.h.

◆ bmp085_thermo_ct_t

BMP085 thermometer subsystem temperature conversion time.

Enumerator
BMP085_THERMO_CT_LOW 

Conv time in ultra low power mode.

BMP085_THERMO_CT_STD 

Conv time in standard mode.

BMP085_THERMO_CT_HR 

Conv time in high resolution mode.

BMP085_THERMO_CT_LUHR 

Conv time in ultra high res. mode.

Definition at line 235 of file bmp085.h.

◆ bmp085_state_t

Driver state machine possible states.

Enumerator
BMP085_UNINIT 

Not initialized.

BMP085_STOP 

Stopped.

BMP085_READY 

Ready.

Definition at line 252 of file bmp085.h.

Function Documentation

◆ bmp085I2CReadRegister()

msg_t bmp085I2CReadRegister ( I2CDriver i2cp,
uint8_t  reg,
uint8_t *  rxbufp,
size_t  n 
)

Reads registers value using I2C.

Precondition
The I2C interface must be initialized and the driver started.
Parameters
[in]i2cppointer to the I2C interface
[in]regfirst sub-register address
[out]rxbufppointer to an output buffer
[in]nnumber of consecutive register to read
Returns
the operation status
Function Class:
Not an API, this function is for internal use only.

Definition at line 71 of file bmp085.c.

References i2cMasterTransmitTimeout().

Referenced by acquire_up(), acquire_ut(), and bmp085ReadCoefficient().

Here is the call graph for this function:

◆ bmp085I2CWriteRegister()

msg_t bmp085I2CWriteRegister ( I2CDriver i2cp,
uint8_t *  txbufp,
size_t  n 
)

Writes a value into a register using I2C.

Precondition
The I2C interface must be initialized and the driver started.
Parameters
[in]i2cppointer to the I2C interface
[in]txbufpbuffer containing sub-address value in first position and values to write
[in]nsize of txbuf less one (not considering the first element)
Returns
the operation status
Function Class:
Not an API, this function is for internal use only.

Definition at line 92 of file bmp085.c.

References i2cMasterTransmitTimeout().

Here is the call graph for this function:

◆ bmp085ReadCoefficient()

static msg_t bmp085ReadCoefficient ( BMP085Driver devp,
uint8_t  reg 
)
static

Read all the calibration data from the BMP085 EEPROM.

Precondition
The I2C interface must be initialized and the driver started.
Parameters
[in]devppointer to the BMP085 device driver sensor
[in]regfirst calibration coefficient register to read
Returns
msg the operation status

Definition at line 108 of file bmp085.c.

References bmp085I2CReadRegister(), i2cAcquireBus(), i2cReleaseBus(), and MSG_OK.

Referenced by bmp085Start().

Here is the call graph for this function:

◆ calcul_t()

static void calcul_t ( BMP085Driver devp,
int32_t  ut,
float *  ctp 
)
static

Calcul the true temperature.

Parameters
[in]devppointer to the BMP085 device driver sensor
[in]utuncompensated temperature
[out]ctppointer of the compensated temperature

Definition at line 146 of file bmp085.c.

References BMP085_T_RES.

Referenced by thermo_read_cooked().

◆ calcul_p()

static void calcul_p ( BMP085Driver devp,
int32_t  up,
uint8_t  oss,
float *  cpp 
)
static

Calcul the true pressure.

Parameters
[in]devppointer to the BMP085 device driver sensor
[in]upuncompensated pressure
[in]ossover sampling setting
[out]cpppointer of the compensated pressure

Definition at line 165 of file bmp085.c.

References BMP085_P_RES.

Referenced by baro_read_cooked().

◆ start_t_measurement()

static msg_t start_t_measurement ( BMP085Driver devp)
static

Start temperature measurement.

Parameters
[in]devppointer to the BMP085 device driver
Returns
the operation status

Definition at line 202 of file bmp085.c.

References BMP085_AD_CR.

Referenced by acquire_ut().

◆ start_p_measurement()

static msg_t start_p_measurement ( BMP085Driver devp)
static

Start the pressure measurment.

Parameters
[in]devppointer to the BMP085 driver
Returns
msg the operation status

Definition at line 223 of file bmp085.c.

References BMP085_AD_CR, and BMP085_BARO_OSS_0.

Referenced by acquire_up().

◆ acquire_ut()

static msg_t acquire_ut ( BMP085Driver devp,
int32_t *  utemp 
)
static

Read the uncompensated temperature from the BMP085 register.

Parameters
[in]devppointer to the BMP085 driver
[out]utempuncompensated temperature read from the sensor register
Returns
msg the operation status

Definition at line 274 of file bmp085.c.

References BMP085_AD_T_DR_MSB, bmp085I2CReadRegister(), i2cAcquireBus(), i2cReleaseBus(), MSG_OK, and start_t_measurement().

Referenced by thermo_read_raw().

Here is the call graph for this function:

◆ acquire_up()

static msg_t acquire_up ( BMP085Driver devp,
int32_t *  upress 
)
static

Read the uncompensated pressure from the BMP085 register.

Parameters
[in]devppointer to the BMP085 driver
[out]upressuncompensated pressure read from the sensor register
Returns
msg the operation status

Definition at line 311 of file bmp085.c.

References BMP085_AD_P_DR_MSB, bmp085I2CReadRegister(), i2cAcquireBus(), i2cReleaseBus(), MSG_OK, and start_p_measurement().

Referenced by baro_read_raw().

Here is the call graph for this function:

◆ baro_get_axes_number()

static size_t baro_get_axes_number ( void *  ip)
static

Get the barometer number of axes.

Parameters
[in]ipinterface pointer of the BMP085 sensor
Returns
barometer number of axes

Definition at line 356 of file bmp085.c.

References BMP085_BARO_NUMBER_OF_AXES, and osalDbgCheck.

Referenced by sens_get_axes_number().

◆ thermo_get_axes_number()

static size_t thermo_get_axes_number ( void *  ip)
static

Get the thermometer number of axes.

Parameters
[in]ipinterface pointer of the BMP085 sensor
Returns
thermometer number of axes

Definition at line 370 of file bmp085.c.

References BMP085_THERMO_NUMBER_OF_AXES, and osalDbgCheck.

Referenced by sens_get_axes_number().

◆ sens_get_axes_number()

static size_t sens_get_axes_number ( void *  ip)
static

Get the sensor number of axes.

Parameters
[in]ipinterface pointer of the BMP085 sensor
Returns
sensor number of axes

Definition at line 384 of file bmp085.c.

References baro_get_axes_number(), osalDbgCheck, and thermo_get_axes_number().

Here is the call graph for this function:

◆ baro_read_raw()

static msg_t baro_read_raw ( void *  ip,
int32_t  axes[] 
)
static

Read baromether raw data.

Parameters
[in]ipinterface pointer of the sensor
[in]axesbuffer for various axes data
Returns
msg the result of the reading operation

Definition at line 399 of file bmp085.c.

References acquire_up(), BMP085_READY, I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), osalDbgAssert, and osalDbgCheck.

Referenced by baro_read_cooked(), and sens_read_raw().

Here is the call graph for this function:

◆ thermo_read_raw()

static msg_t thermo_read_raw ( void *  ip,
int32_t  axes[] 
)
static

Read thermometer raw data.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]axesbuffer for various axes data
Returns
msg the result of the reading operation

Definition at line 433 of file bmp085.c.

References acquire_ut(), BMP085_READY, I2C_READY, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), osalDbgAssert, and osalDbgCheck.

Referenced by sens_read_raw(), and thermo_read_cooked().

Here is the call graph for this function:

◆ sens_read_raw()

static msg_t sens_read_raw ( void *  ip,
int32_t  axes[] 
)
static

Read BMP085 sensor raw data.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]axesbuffer for various axes data
Returns
msg the result of the reading operation

Definition at line 467 of file bmp085.c.

References baro_read_raw(), BMP085_BARO_NUMBER_OF_AXES, MSG_OK, and thermo_read_raw().

Here is the call graph for this function:

◆ baro_read_cooked()

static msg_t baro_read_cooked ( void *  ip,
float  axes[] 
)
static

Read barometer cooked data.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]axesbuffer for various axes data
Returns
msg the result of the reading operation

Definition at line 492 of file bmp085.c.

References baro_read_raw(), BMP085_BARO_NUMBER_OF_AXES, BMP085_READY, calcul_p(), osalDbgAssert, and osalDbgCheck.

Referenced by sens_read_cooked().

Here is the call graph for this function:

◆ thermo_read_cooked()

static msg_t thermo_read_cooked ( void *  ip,
float  axes[] 
)
static

Read thermometer cooked data.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]axesbuffer for various axes data
Returns
msg the result of the reading operation

Definition at line 520 of file bmp085.c.

References BMP085_READY, BMP085_THERMO_NUMBER_OF_AXES, calcul_t(), osalDbgAssert, osalDbgCheck, and thermo_read_raw().

Referenced by sens_read_cooked().

Here is the call graph for this function:

◆ sens_read_cooked()

static msg_t sens_read_cooked ( void *  ip,
float  axes[] 
)
static

Read BMP085 sensor cooked data.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]axesbuffer for various axes data
Returns
msg the result of the reading operation

Definition at line 545 of file bmp085.c.

References baro_read_cooked(), BMP085_BARO_NUMBER_OF_AXES, MSG_OK, and thermo_read_cooked().

Here is the call graph for this function:

◆ baro_set_bias()

static msg_t baro_set_bias ( void *  ip,
float *  bp 
)
static

Set the barometer bias.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]bppointer to the bias value
Returns
msg the result of the setting operation

Definition at line 569 of file bmp085.c.

References BMP085_READY, BMP085_STOP, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ thermo_set_bias()

static msg_t thermo_set_bias ( void *  ip,
float *  bp 
)
static

Set the thermometer bias.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]bppointer to the bias value
Returns
msg the result of the setting operation

Definition at line 586 of file bmp085.c.

References BMP085_READY, BMP085_STOP, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ baro_reset_bias()

static msg_t baro_reset_bias ( void *  ip)
static

Reset the barometer bias.

Parameters
[in]ipinterface pointer of the BMP085 sensor
Returns
msg the result of the reset operation

Definition at line 602 of file bmp085.c.

References BMP085_READY, BMP085_STOP, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ thermo_reset_bias()

static msg_t thermo_reset_bias ( void *  ip)
static

Reset the thermometer bias.

Parameters
[in]ipinterface pointer of the BMP085 sensor
Returns
msg the result of the reset operation

Definition at line 619 of file bmp085.c.

References BMP085_READY, BMP085_STOP, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ baro_set_sensivity()

static msg_t baro_set_sensivity ( void *  ip,
float *  sp 
)
static

Set the barometer sensivity.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]sppointer to the sensivity value
Returns
msg the result of the setting operation

Definition at line 637 of file bmp085.c.

References BMP085_READY, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ thermo_set_sensivity()

static msg_t thermo_set_sensivity ( void *  ip,
float *  sp 
)
static

Set the thermometer sensivity.

Parameters
[in]ipinterface pointer of the BMP085 sensor
[in]sppointer to the sensivity value
Returns
msg the result of the setting operation

Definition at line 654 of file bmp085.c.

References BMP085_READY, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ baro_reset_sensivity()

static msg_t baro_reset_sensivity ( void *  ip)
static

Reset the barometer sensivity.

Parameters
[in]ipinterface pointer of the BMP085 sensor
Returns
msg the result of the reset operation

Definition at line 670 of file bmp085.c.

References BMP085_READY, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ thermo_reset_sensivity()

static msg_t thermo_reset_sensivity ( void *  ip)
static

Reset the thermometer sensivity.

Parameters
[in]ipinterface pointer of the BMP085 sensor
Returns
msg the result of the reset operation

Definition at line 686 of file bmp085.c.

References BMP085_READY, MSG_OK, osalDbgAssert, and osalDbgCheck.

◆ bmp085ObjectInit()

void bmp085ObjectInit ( BMP085Driver devp)

Initializes an instance.

Parameters
[out]devppointer to the BMP085Driver object
Function Class:
Initializer, this function just initializes an object and can be invoked before the kernel is initialized.

Definition at line 722 of file bmp085.c.

References BMP085Driver::vmt_basesensor.

◆ bmp085Start()

void bmp085Start ( BMP085Driver devp,
const BMP085Config config 
)

Configures and activates BMP085 Complex Driver peripheral.

Parameters
[in]devppointer to the BMP085Driver object
[in]configpointer to the BMP085Config object
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 739 of file bmp085.c.

References BMP085_AD_CC_AC1_MSB, BMP085_READY, BMP085_STOP, bmp085ReadCoefficient(), I2CDriver::config, i2cAcquireBus(), BMP085Config::i2cp, i2cReleaseBus(), i2cStart(), osalDbgAssert, and osalDbgCheck.

Here is the call graph for this function:

◆ bmp085Stop()

void bmp085Stop ( BMP085Driver devp)

Deactivates the BMP085 Complex Driver peripheral.

Parameters
[in]devppointer to the BMP085Driver object
Function Class:
Normal API, this function can be invoked by regular system threads but not from within a lock zone.

Definition at line 768 of file bmp085.c.

References BMP085_READY, BMP085_STOP, i2cAcquireBus(), i2cReleaseBus(), i2cStart(), osalDbgAssert, and osalDbgCheck.

Here is the call graph for this function:
BMP085_BARO_NUMBER_OF_AXES
#define BMP085_BARO_NUMBER_OF_AXES
BMP085 barometer subsystem characteristics.
Definition: bmp085.h:70
BMP085Config
BMP085 configuration structure.
Definition: bmp085.h:261
BMP085_THERMO_NUMBER_OF_AXES
#define BMP085_THERMO_NUMBER_OF_AXES
BMP085 thermometer subsystem characteristics.
Definition: bmp085.h:79