|
#define | lis3dshAccelerometerGetAxesNumber(devp) accelerometerGetAxesNumber(&((devp)->acc_if)) |
| Return the number of axes of the BaseAccelerometer. More...
|
|
#define | lis3dshAccelerometerReadRaw(devp, axes) accelerometerReadRaw(&((devp)->acc_if), axes) |
| Retrieves raw data from the BaseAccelerometer. More...
|
|
#define | lis3dshAccelerometerReadCooked(devp, axes) accelerometerReadCooked(&((devp)->acc_if), axes) |
| Retrieves cooked data from the BaseAccelerometer. More...
|
|
#define | lis3dshAccelerometerSetBias(devp, bp) accelerometerSetBias(&((devp)->acc_if), bp) |
| Set bias values for the BaseAccelerometer. More...
|
|
#define | lis3dshAccelerometerResetBias(devp) accelerometerResetBias(&((devp)->acc_if)) |
| Reset bias values for the BaseAccelerometer. More...
|
|
#define | lis3dshAccelerometerSetSensitivity(devp, sp) accelerometerSetSensitivity(&((devp)->acc_if), sp) |
| Set sensitivity values for the BaseAccelerometer. More...
|
|
#define | lis3dshAccelerometerResetSensitivity(devp) accelerometerResetSensitivity(&((devp)->acc_if)) |
| Reset sensitivity values for the BaseAccelerometer. More...
|
|
#define | lis3dshAccelerometerSetFullScale(devp, fs) (devp)->vmt->acc_set_full_scale(devp, fs) |
| Changes the LIS3DSHDriver accelerometer fullscale value. More...
|
|
|
#define | LIS3DSH_CTRL_REG4_MASK 0xFF |
|
#define | LIS3DSH_CTRL_REG4_XEN (1 << 0) |
|
#define | LIS3DSH_CTRL_REG4_YEN (1 << 1) |
|
#define | LIS3DSH_CTRL_REG4_ZEN (1 << 2) |
|
#define | LIS3DSH_CTRL_REG4_BDU (1 << 3) |
|
#define | LIS3DSH_CTRL_REG4_ODR_0 (1 << 4) |
|
#define | LIS3DSH_CTRL_REG4_ODR_1 (1 << 5) |
|
#define | LIS3DSH_CTRL_REG4_ODR_2 (1 << 6) |
|
#define | LIS3DSH_CTRL_REG4_ODR_3 (1 << 7) |
|
|
#define | LIS3DSH_CTRL_REG5_MASK 0xFF |
|
#define | LIS3DSH_CTRL_REG5_SIM (1 << 0) |
|
#define | LIS3DSH_CTRL_REG5_ST1 (1 << 1) |
|
#define | LIS3DSH_CTRL_REG5_ST2 (1 << 2) |
|
#define | LIS3DSH_CTRL_REG5_FS_MASK 0x38 |
|
#define | LIS3DSH_CTRL_REG5_FS0 (1 << 3) |
|
#define | LIS3DSH_CTRL_REG5_FS1 (1 << 4) |
|
#define | LIS3DSH_CTRL_REG5_FS2 (1 << 5) |
|
#define | LIS3DSH_CTRL_REG5_BW1 (1 << 6) |
|
#define | LIS3DSH_CTRL_REG5_BW2 (1 << 7) |
|
|
#define | LIS3DSH_CTRL_REG6_MASK 0xFF |
|
#define | LIS3DSH_CTRL_REG6_P2_BOOT (1 << 0) |
|
#define | LIS3DSH_CTRL_REG6_P1_OVRUN (1 << 1) |
|
#define | LIS3DSH_CTRL_REG6_P1_WTM (1 << 2) |
|
#define | LIS3DSH_CTRL_REG6_P1_EMPTY (1 << 3) |
|
#define | LIS3DSH_CTRL_REG6_ADD_INC (1 << 4) |
|
#define | LIS3DSH_CTRL_REG6_WTM_EN (1 << 5) |
|
#define | LIS3DSH_CTRL_REG6_FIFO_EN (1 << 6) |
|
#define | LIS3DSH_CTRL_REG6_BOOT (1 << 7) |
|
|
static void | lis3dshSPIReadRegister (SPIDriver *spip, uint8_t reg, size_t n, uint8_t *b) |
| Reads a generic register value using SPI. More...
|
|
static void | lis3dshSPIWriteRegister (SPIDriver *spip, uint8_t reg, size_t n, uint8_t *b) |
| Writes a value into a generic register using SPI. More...
|
|
static size_t | acc_get_axes_number (void *ip) |
| Return the number of axes of the BaseAccelerometer. More...
|
|
static msg_t | acc_read_raw (void *ip, int32_t axes[]) |
| Retrieves raw data from the BaseAccelerometer. More...
|
|
static msg_t | acc_read_cooked (void *ip, float axes[]) |
| Retrieves cooked data from the BaseAccelerometer. More...
|
|
static msg_t | acc_set_bias (void *ip, float *bp) |
| Set bias values for the BaseAccelerometer. More...
|
|
static msg_t | acc_reset_bias (void *ip) |
| Reset bias values for the BaseAccelerometer. More...
|
|
static msg_t | acc_set_sensivity (void *ip, float *sp) |
| Set sensitivity values for the BaseAccelerometer. More...
|
|
static msg_t | acc_reset_sensivity (void *ip) |
| Reset sensitivity values for the BaseAccelerometer. More...
|
|
static msg_t | acc_set_full_scale (LIS3DSHDriver *devp, lis3dsh_acc_fs_t fs) |
| Changes the LIS3DSHDriver accelerometer fullscale value. More...
|
|
void | lis3dshObjectInit (LIS3DSHDriver *devp) |
| Initializes an instance. More...
|
|
void | lis3dshStart (LIS3DSHDriver *devp, const LIS3DSHConfig *config) |
| Configures and activates LIS3DSH Complex Driver peripheral. More...
|
|
void | lis3dshStop (LIS3DSHDriver *devp) |
| Deactivates the LIS3DSH Complex Driver peripheral. More...
|
|
static void lis3dshSPIReadRegister |
( |
SPIDriver * |
spip, |
|
|
uint8_t |
reg, |
|
|
size_t |
n, |
|
|
uint8_t * |
b |
|
) |
| |
|
static |
Reads a generic register value using SPI.
- Precondition
- The SPI interface must be initialized and the driver started.
- Note
- Multiple write/read requires proper settings in CTRL_REG6.
- Parameters
-
[in] | spip | pointer to the SPI interface |
[in] | reg | starting register address |
[in] | n | number of adjacent registers to write |
[in] | b | pointer to a buffer. |
Definition at line 60 of file lis3dsh.c.
References spiReceive(), spiSelect(), spiSend(), and spiUnselect().
Referenced by acc_read_raw(), and acc_set_full_scale().
static void lis3dshSPIWriteRegister |
( |
SPIDriver * |
spip, |
|
|
uint8_t |
reg, |
|
|
size_t |
n, |
|
|
uint8_t * |
b |
|
) |
| |
|
static |
Writes a value into a generic register using SPI.
- Precondition
- The SPI interface must be initialized and the driver started.
- Note
- Multiple write/read requires proper settings in CTRL_REG6.
- Parameters
-
[in] | spip | pointer to the SPI interface |
[in] | reg | starting register address |
[in] | n | number of adjacent registers to write |
[in] | b | pointer to a buffer of values. |
Definition at line 80 of file lis3dsh.c.
References spiSelect(), spiSend(), and spiUnselect().
Referenced by acc_set_full_scale(), lis3dshStart(), and lis3dshStop().
static msg_t acc_read_raw |
( |
void * |
ip, |
|
|
int32_t |
axes[] |
|
) |
| |
|
static |
Retrieves raw data from the BaseAccelerometer.
- Note
- This data is retrieved from MEMS register without any algebraical manipulation.
-
The axes array must be at least the same size of the BaseAccelerometer axes number.
- Parameters
-
[in] | ip | pointer to BaseAccelerometer interface. |
[out] | axes | a buffer which would be filled with raw data. |
- Returns
- The operation status.
- Return values
-
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 120 of file lis3dsh.c.
References LIS3DSH_ACC_NUMBER_OF_AXES, LIS3DSH_READY, lis3dshSPIReadRegister(), MSG_OK, objGetInstance, osalDbgAssert, osalDbgCheck, SPI_READY, spiAcquireBus(), spiReleaseBus(), and spiStart().
Referenced by acc_read_cooked(), and acc_set_full_scale().
Changes the LIS3DSHDriver accelerometer fullscale value.
- Note
- This function also rescale sensitivities and biases based on previous and next fullscale value.
-
A recalibration is highly suggested after calling this function.
- Parameters
-
[in] | devp | pointer to LIS3DSHDriver interface. |
[in] | fs | new fullscale value. |
- Returns
- The operation status.
- Return values
-
MSG_OK | if the function succeeded. |
MSG_RESET | otherwise. |
Definition at line 346 of file lis3dsh.c.
References acc_get_axes_number(), acc_read_cooked(), acc_read_raw(), acc_reset_bias(), acc_reset_sensivity(), acc_set_bias(), acc_set_sensivity(), LIS3DSH_ACC_FS_16G, LIS3DSH_ACC_FS_2G, LIS3DSH_ACC_FS_4G, LIS3DSH_ACC_FS_6G, LIS3DSH_ACC_FS_8G, LIS3DSH_ACC_NUMBER_OF_AXES, LIS3DSH_READY, lis3dshSPIReadRegister(), lis3dshSPIWriteRegister(), MSG_RESET, osalDbgAssert, osalDbgCheck, SPI_READY, spiAcquireBus(), spiReleaseBus(), and spiStart().