ChibiOS
21.6.0
|
Macros | |
#define | lps22hbI2CWriteRegister(i2cp, sad, txbuf, n) |
Writes a value into a register using I2C. More... | |
#define | lps22hbBarometerGetAxesNumber(devp) barometerGetAxesNumber(&((devp)->baro_if)) |
Return the number of axes of the BaseBarometer. More... | |
#define | lps22hbBarometerReadRaw(devp, axes) barometerReadRaw(&((devp)->baro_if), axes) |
Retrieves raw data from the BaseBarometer. More... | |
#define | lps22hbBarometerReadCooked(devp, axes) barometerReadCooked(&((devp)->baro_if), axes) |
Retrieves cooked data from the BaseBarometer. More... | |
#define | lps22hbBarometerSetBias(devp, bp) barometerSetBias(&((devp)->baro_if), bp) |
Set bias values for the BaseBarometer. More... | |
#define | lps22hbBarometerResetBias(devp) barometerResetBias(&((devp)->baro_if)) |
Reset bias values for the BaseBarometer. More... | |
#define | lps22hbBarometerSetSensitivity(devp, sp) barometerSetSensitivity(&((devp)->baro_if), sp) |
Set sensitivity values for the BaseBarometer. More... | |
#define | lps22hbBarometerResetSensitivity(devp) barometerResetSensitivity(&((devp)->baro_if)) |
Reset sensitivity values for the BaseBarometer. More... | |
#define | lps22hbThermometerGetAxesNumber(devp) thermometerGetAxesNumber(&((devp)->thermo_if)) |
Return the number of axes of the BaseThermometer. More... | |
#define | lps22hbThermometerReadRaw(devp, axes) thermometerReadRaw(&((devp)->thermo_if), axes) |
Retrieves raw data from the BaseThermometer. More... | |
#define | lps22hbThermometerReadCooked(devp, axes) thermometerReadCooked(&((devp)->thermo_if), axes) |
Retrieves cooked data from the BaseThermometer. More... | |
#define | lps22hbThermometerSetBias(devp, bp) thermometerSetBias(&((devp)->thermo_if), bp) |
Set bias values for the BaseThermometer. More... | |
#define | lps22hbThermometerResetBias(devp) thermometerResetBias(&((devp)->thermo_if)) |
Reset bias values for the BaseThermometer. More... | |
#define | lps22hbThermometerSetSensitivity(devp, sp) thermometerSetSensitivity(&((devp)->thermo_if), sp) |
Set sensitivity values for the BaseThermometer. More... | |
#define | lps22hbThermometerResetSensitivity(devp) thermometerResetSensitivity(&((devp)->thermo_if)) |
Reset sensitivity values for the BaseThermometer. More... | |
Version identification | |
#define | EX_LPS22HB_VERSION "1.0.2" |
LPS22HB driver version string. More... | |
#define | EX_LPS22HB_MAJOR 1 |
LPS22HB driver version major number. More... | |
#define | EX_LPS22HB_MINOR 0 |
LPS22HB driver version minor number. More... | |
#define | EX_LPS22HB_PATCH 2 |
LPS22HB driver version patch number. More... | |
#define | LPS22HB_BARO_NUMBER_OF_AXES 1U |
LPS22HB barometer subsystem characteristics. More... | |
#define | LPS22HB_THERMO_NUMBER_OF_AXES 1U |
LPS22HB thermometer subsystem characteristics. More... | |
Configuration options | |
#define | LPS22HB_USE_SPI FALSE |
LPS22HB SPI interface switch. More... | |
#define | LPS22HB_SHARED_SPI FALSE |
LPS22HB shared SPI switch. More... | |
#define | LPS22HB_USE_I2C TRUE |
LPS22HB I2C interface switch. More... | |
#define | LPS22HB_SHARED_I2C FALSE |
LPS22HB shared I2C switch. More... | |
#define | LPS22HB_USE_ADVANCED FALSE |
LPS22HB advanced configurations switch. More... | |
LPS22HB data structures and types. | |
enum | lps22hb_sad_t { LPS22HB_SAD_GND = 0x5C, LPS22HB_SAD_VCC = 0x5D } |
LPS22HB slave address. More... | |
enum | lps22hb_odr_t { LPS22HB_ODR_PD = 0x00, LPS22HB_ODR_1HZ = 0x10, LPS22HB_ODR_10HZ = 0x20, LPS22HB_ODR_25HZ = 0x30, LPS22HB_ODR_50HZ = 0x40, LPS22HB_ODR_75HZ = 0x50 } |
LPS22HB output data rate and bandwidth. More... | |
enum | lps22hb_lp_t { LPS22HB_LP_DISABLED = 0x00, LPS22HB_LP_ODR_9 = 0x08, LPS22HB_LP_ODR_20 = 0x0C } |
LPS22HB pressure resolution. More... | |
enum | lps22hb_bdu_t { LPS22HB_BDU_CONTINUOUS = 0x00, LPS22HB_BDU_BLOCKED = 0x40 } |
LPS22HB block data update. More... | |
enum | lps22hb_state_t { LPS22HB_UNINIT = 0, LPS22HB_STOP = 1, LPS22HB_READY = 2 } |
Driver state machine possible states. More... | |
typedef struct LPS22HBDriver | LPS22HBDriver |
Structure representing a LPS22HB driver. More... | |
#define | _lps22hb_methods_alone |
LPS22HB specific methods. More... | |
#define | _lps22hb_methods |
LPS22HB specific methods with inherited ones. More... | |
#define | _lps22hb_data |
LPS22HBDriver specific data. More... | |
Data Structures | |
struct | LPS22HBConfig |
LPS22HB configuration structure. More... | |
struct | LPS22HBVMT |
LPS22HB virtual methods table. More... | |
struct | LPS22HBDriver |
LPS22HB 2-axis barometer/thermometer class. More... | |
Functions | |
static msg_t | lps22hbI2CReadRegister (I2CDriver *i2cp, lps22hb_sad_t sad, uint8_t reg, uint8_t *rxbuf, size_t n) |
Reads registers value using I2C. More... | |
static size_t | baro_get_axes_number (void *ip) |
Return the number of axes of the BaseBarometer. More... | |
static msg_t | baro_read_raw (void *ip, int32_t axes[]) |
Retrieves raw data from the BaseBarometer. More... | |
static msg_t | baro_read_cooked (void *ip, float axes[]) |
Retrieves cooked data from the BaseBarometer. More... | |
static msg_t | baro_set_bias (void *ip, float *bp) |
Set bias values for the BaseBarometer. More... | |
static msg_t | baro_reset_bias (void *ip) |
Reset bias values for the BaseBarometer. More... | |
static msg_t | baro_set_sensitivity (void *ip, float *sp) |
Set sensitivity values for the BaseBarometer. More... | |
static msg_t | baro_reset_sensitivity (void *ip) |
Reset sensitivity values for the BaseBarometer. More... | |
static size_t | thermo_get_axes_number (void *ip) |
Return the number of axes of the BaseThermometer. More... | |
static msg_t | thermo_read_raw (void *ip, int32_t axes[]) |
Retrieves raw data from the BaseThermometer. More... | |
static msg_t | thermo_read_cooked (void *ip, float *axis) |
Retrieves cooked data from the BaseThermometer. More... | |
static msg_t | thermo_set_bias (void *ip, float *bp) |
Set bias values for the BaseThermometer. More... | |
static msg_t | thermo_reset_bias (void *ip) |
Reset bias values for the BaseThermometer. More... | |
static msg_t | thermo_set_sensitivity (void *ip, float *sp) |
Set sensitivity values for the BaseThermometer. More... | |
static msg_t | thermo_reset_sensitivity (void *ip) |
Reset sensitivity values for the BaseThermometer. More... | |
void | lps22hbObjectInit (LPS22HBDriver *devp) |
Initializes an instance. More... | |
void | lps22hbStart (LPS22HBDriver *devp, const LPS22HBConfig *config) |
Configures and activates LPS22HB Complex Driver peripheral. More... | |
void | lps22hbStop (LPS22HBDriver *devp) |
Deactivates the LPS22HB Complex Driver peripheral. More... | |
#define lps22hbI2CWriteRegister | ( | i2cp, | |
sad, | |||
txbuf, | |||
n | |||
) |
Writes a value into a register using I2C.
[in] | i2cp | pointer to the I2C interface |
[in] | sad | slave address without R bit |
[in] | txbuf | buffer containing sub-address value in first position and values to write |
[in] | n | size of txbuf less one (not considering the first element) |
#define EX_LPS22HB_VERSION "1.0.2" |
#define EX_LPS22HB_MAJOR 1 |
#define EX_LPS22HB_MINOR 0 |
#define EX_LPS22HB_PATCH 2 |
#define LPS22HB_BARO_NUMBER_OF_AXES 1U |
#define LPS22HB_THERMO_NUMBER_OF_AXES 1U |
#define LPS22HB_USE_SPI FALSE |
#define LPS22HB_SHARED_SPI FALSE |
#define LPS22HB_USE_I2C TRUE |
#define LPS22HB_SHARED_I2C FALSE |
#define LPS22HB_USE_ADVANCED FALSE |
#define _lps22hb_methods_alone |
#define _lps22hb_methods |
#define _lps22hb_data |
LPS22HBDriver
specific data.
#define lps22hbBarometerGetAxesNumber | ( | devp | ) | barometerGetAxesNumber(&((devp)->baro_if)) |
Return the number of axes of the BaseBarometer.
[in] | devp | pointer to LPS22HBDriver . |
#define lps22hbBarometerReadRaw | ( | devp, | |
axes | |||
) | barometerReadRaw(&((devp)->baro_if), axes) |
Retrieves raw data from the BaseBarometer.
[in] | devp | pointer to LPS22HBDriver . |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lps22hbBarometerReadCooked | ( | devp, | |
axes | |||
) | barometerReadCooked(&((devp)->baro_if), axes) |
Retrieves cooked data from the BaseBarometer.
[in] | devp | pointer to LPS22HBDriver . |
[out] | axes | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lps22hbBarometerSetBias | ( | devp, | |
bp | |||
) | barometerSetBias(&((devp)->baro_if), bp) |
Set bias values for the BaseBarometer.
[in] | devp | pointer to LPS22HBDriver . |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
#define lps22hbBarometerResetBias | ( | devp | ) | barometerResetBias(&((devp)->baro_if)) |
Reset bias values for the BaseBarometer.
[in] | devp | pointer to LPS22HBDriver . |
MSG_OK | if the function succeeded. |
#define lps22hbBarometerSetSensitivity | ( | devp, | |
sp | |||
) | barometerSetSensitivity(&((devp)->baro_if), sp) |
Set sensitivity values for the BaseBarometer.
[in] | devp | pointer to LPS22HBDriver . |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
#define lps22hbBarometerResetSensitivity | ( | devp | ) | barometerResetSensitivity(&((devp)->baro_if)) |
Reset sensitivity values for the BaseBarometer.
[in] | devp | pointer to LPS22HBDriver . |
MSG_OK | if the function succeeded. |
#define lps22hbThermometerGetAxesNumber | ( | devp | ) | thermometerGetAxesNumber(&((devp)->thermo_if)) |
Return the number of axes of the BaseThermometer.
[in] | devp | pointer to LPS22HBDriver . |
#define lps22hbThermometerReadRaw | ( | devp, | |
axes | |||
) | thermometerReadRaw(&((devp)->thermo_if), axes) |
Retrieves raw data from the BaseThermometer.
[in] | devp | pointer to LPS22HBDriver . |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lps22hbThermometerReadCooked | ( | devp, | |
axes | |||
) | thermometerReadCooked(&((devp)->thermo_if), axes) |
Retrieves cooked data from the BaseThermometer.
[in] | devp | pointer to LPS22HBDriver . |
[out] | axes | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
#define lps22hbThermometerSetBias | ( | devp, | |
bp | |||
) | thermometerSetBias(&((devp)->thermo_if), bp) |
Set bias values for the BaseThermometer.
[in] | devp | pointer to LPS22HBDriver . |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
#define lps22hbThermometerResetBias | ( | devp | ) | thermometerResetBias(&((devp)->thermo_if)) |
Reset bias values for the BaseThermometer.
[in] | devp | pointer to LPS22HBDriver . |
MSG_OK | if the function succeeded. |
#define lps22hbThermometerSetSensitivity | ( | devp, | |
sp | |||
) | thermometerSetSensitivity(&((devp)->thermo_if), sp) |
Set sensitivity values for the BaseThermometer.
[in] | devp | pointer to LPS22HBDriver . |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
#define lps22hbThermometerResetSensitivity | ( | devp | ) | thermometerResetSensitivity(&((devp)->thermo_if)) |
Reset sensitivity values for the BaseThermometer.
[in] | devp | pointer to LPS22HBDriver . |
MSG_OK | if the function succeeded. |
typedef struct LPS22HBDriver LPS22HBDriver |
enum lps22hb_sad_t |
enum lps22hb_odr_t |
enum lps22hb_lp_t |
enum lps22hb_bdu_t |
enum lps22hb_state_t |
|
static |
Reads registers value using I2C.
[in] | i2cp | pointer to the I2C interface |
[in] | sad | slave address without R bit |
[in] | reg | first sub-register address |
[out] | rxbuf | pointer to an output buffer |
[in] | n | number of consecutive register to read |
Definition at line 63 of file lps22hb.c.
References i2cMasterTransmitTimeout(), and TIME_INFINITE.
Referenced by baro_read_raw(), and thermo_read_raw().
|
static |
Return the number of axes of the BaseBarometer.
[in] | ip | pointer to BaseBarometer interface. |
Definition at line 96 of file lps22hb.c.
References LPS22HB_BARO_NUMBER_OF_AXES.
|
static |
Retrieves raw data from the BaseBarometer.
[in] | ip | pointer to BaseBarometer interface. |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 118 of file lps22hb.c.
References I2C_READY, i2cAcquireBus(), i2cStart(), LPS22HB_READY, lps22hbI2CReadRegister(), objGetInstance, osalDbgAssert, and osalDbgCheck.
Referenced by baro_read_cooked().
|
static |
Retrieves cooked data from the BaseBarometer.
[in] | ip | pointer to BaseBarometer interface. |
[out] | axes | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 170 of file lps22hb.c.
References baro_read_raw(), LPS22HB_READY, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Set bias values for the BaseBarometer.
[in] | ip | pointer to BaseBarometer interface. |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 205 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset bias values for the BaseBarometer.
[in] | ip | pointer to BaseBarometer interface. |
MSG_OK | if the function succeeded. |
Definition at line 231 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Set sensitivity values for the BaseBarometer.
[in] | ip | pointer to BaseBarometer interface. |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
Definition at line 259 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset sensitivity values for the BaseBarometer.
[in] | ip | pointer to BaseBarometer interface. |
MSG_OK | if the function succeeded. |
Definition at line 284 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Return the number of axes of the BaseThermometer.
[in] | ip | pointer to BaseThermometer interface. |
Definition at line 307 of file lps22hb.c.
References LPS22HB_THERMO_NUMBER_OF_AXES.
|
static |
Retrieves raw data from the BaseThermometer.
[in] | ip | pointer to BaseThermometer interface. |
[out] | axes | a buffer which would be filled with raw data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 329 of file lps22hb.c.
References I2C_READY, i2cAcquireBus(), i2cStart(), LPS22HB_READY, lps22hbI2CReadRegister(), objGetInstance, osalDbgAssert, and osalDbgCheck.
Referenced by thermo_read_cooked().
|
static |
Retrieves cooked data from the BaseThermometer.
[in] | ip | pointer to BaseThermometer interface. |
[out] | axis | a buffer which would be filled with cooked data. |
MSG_OK | if the function succeeded. |
MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors() . |
MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 383 of file lps22hb.c.
References LPS22HB_READY, objGetInstance, osalDbgAssert, osalDbgCheck, and thermo_read_raw().
|
static |
Set bias values for the BaseThermometer.
[in] | ip | pointer to BaseThermometer interface. |
[in] | bp | a buffer which contains biases. |
MSG_OK | if the function succeeded. |
Definition at line 415 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset bias values for the BaseThermometer.
[in] | ip | pointer to BaseThermometer interface. |
MSG_OK | if the function succeeded. |
Definition at line 442 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Set sensitivity values for the BaseThermometer.
[in] | ip | pointer to BaseThermometer interface. |
[in] | sp | a buffer which contains sensitivities. |
MSG_OK | if the function succeeded. |
Definition at line 471 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset sensitivity values for the BaseThermometer.
[in] | ip | pointer to BaseThermometer interface. |
MSG_OK | if the function succeeded. |
Definition at line 497 of file lps22hb.c.
References LPS22HB_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
void lps22hbObjectInit | ( | LPS22HBDriver * | devp | ) |
Initializes an instance.
[out] | devp | pointer to the LPS22HBDriver object |
Definition at line 543 of file lps22hb.c.
References LPS22HBDriver::vmt.
void lps22hbStart | ( | LPS22HBDriver * | devp, |
const LPS22HBConfig * | config | ||
) |
Configures and activates LPS22HB Complex Driver peripheral.
[in] | devp | pointer to the LPS22HBDriver object |
[in] | config | pointer to the LPS22HBConfig object |
Definition at line 565 of file lps22hb.c.
References LPS22HB_READY, LPS22HB_STOP, osalDbgAssert, and osalDbgCheck.
void lps22hbStop | ( | LPS22HBDriver * | devp | ) |
Deactivates the LPS22HB Complex Driver peripheral.
[in] | devp | pointer to the LPS22HBDriver object |
Definition at line 659 of file lps22hb.c.
References i2cAcquireBus(), i2cStart(), LPS22HB_READY, LPS22HB_STOP, osalDbgAssert, and osalDbgCheck.