All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches

Device driver for the LIS3DH accelerometer More...

Detailed Description

Device driver for the LIS3DH accelerometer

This driver provides [S]ensor [A]ctuator [U]ber [L]ayer capabilities.

Files

file  lis3dh.h
 Device driver interface for the LIS3DH accelerometer.
 
file  lis3dh_params.h
 Default configuration for LIS3DH devices.
 

Data Structures

struct  lis3dh_params_t
 Configuration parameters for LIS3DH devices. More...
 
struct  lis3dh_t
 Device descriptor for LIS3DH sensors. More...
 
struct  lis3dh_data_t
 Result vector for accelerometer measurement. More...
 

Macros

#define LIS3DH_WHO_AM_I_RESPONSE   (0x33)
 Identifier register value.
 
#define LIS3DH_AXES_XYZ   (LIS3DH_CTRL_REG1_XYZEN_MASK)
 Convenience macro for enabling all axes.
 
#define LIS3DH_ADC_DATA_SIZE   (2U)
 Length of scalar measurement data in bytes.
 

Functions

int lis3dh_init (lis3dh_t *dev, const lis3dh_params_t *params)
 Initialize a LIS3DH sensor instance.
 
int lis3dh_read_xyz (const lis3dh_t *dev, lis3dh_data_t *acc_data)
 Read 3D acceleration data from the accelerometer.
 
int lis3dh_read_aux_adc1 (const lis3dh_t *dev, int16_t *out)
 Read auxiliary ADC channel 1 data from the accelerometer.
 
int lis3dh_read_aux_adc2 (const lis3dh_t *dev, int16_t *out)
 Read auxiliary ADC channel 2 data from the accelerometer.
 
int lis3dh_read_aux_adc3 (const lis3dh_t *dev, int16_t *out)
 Read auxiliary ADC channel 3 data from the accelerometer.
 
int lis3dh_set_aux_adc (const lis3dh_t *dev, const uint8_t enable, const uint8_t temperature)
 Turn on/off power to the auxiliary ADC in LIS3DH.
 
int lis3dh_set_axes (const lis3dh_t *dev, const uint8_t axes)
 Enable/disable accelerometer axes.
 
int lis3dh_set_fifo (const lis3dh_t *dev, const uint8_t mode, const uint8_t watermark)
 Enable/disable the FIFO.
 
int lis3dh_set_odr (const lis3dh_t *dev, const uint8_t odr)
 Set the output data rate of the sensor.
 
int lis3dh_set_scale (lis3dh_t *dev, const uint8_t scale)
 Set the full scale range of the sensor.
 
int lis3dh_set_int1 (const lis3dh_t *dev, const uint8_t mode)
 Set INT1 pin function.
 
int lis3dh_get_fifo_level (const lis3dh_t *dev)
 Get the current number of elements in the FIFO.
 

LIS3DH hardware register addresses

#define LIS3DH_REG_STATUS_AUX   (0x07)
 
#define LIS3DH_REG_OUT_AUX_ADC1_L   (0x08)
 
#define LIS3DH_REG_OUT_AUX_ADC1_H   (0x09)
 
#define LIS3DH_REG_OUT_AUX_ADC2_L   (0x0A)
 
#define LIS3DH_REG_OUT_AUX_ADC2_H   (0x0B)
 
#define LIS3DH_REG_OUT_AUX_ADC3_L   (0x0C)
 
#define LIS3DH_REG_OUT_AUX_ADC3_H   (0x0D)
 
#define LIS3DH_REG_INT_COUNTER_REG   (0x0E)
 
#define LIS3DH_REG_WHO_AM_I   (0x0F)
 
#define LIS3DH_REG_TEMP_CFG_REG   (0x1F)
 
#define LIS3DH_REG_CTRL_REG1   (0x20)
 
#define LIS3DH_REG_CTRL_REG2   (0x21)
 
#define LIS3DH_REG_CTRL_REG3   (0x22)
 
#define LIS3DH_REG_CTRL_REG4   (0x23)
 
#define LIS3DH_REG_CTRL_REG5   (0x24)
 
#define LIS3DH_REG_CTRL_REG6   (0x25)
 
#define LIS3DH_REG_REFERENCE   (0x26)
 
#define LIS3DH_REG_STATUS_REG   (0x27)
 
#define LIS3DH_REG_OUT_X_L   (0x28)
 
#define LIS3DH_REG_OUT_X_H   (0x29)
 
#define LIS3DH_REG_OUT_Y_L   (0x2A)
 
#define LIS3DH_REG_OUT_Y_H   (0x2B)
 
#define LIS3DH_REG_OUT_Z_L   (0x2C)
 
#define LIS3DH_REG_OUT_Z_H   (0x2D)
 
#define LIS3DH_REG_FIFO_CTRL_REG   (0x2E)
 
#define LIS3DH_REG_FIFO_SRC_REG   (0x2F)
 
#define LIS3DH_REG_INT1_CFG   (0x30)
 
#define LIS3DH_REG_INT1_SOURCE   (0x31)
 
#define LIS3DH_REG_INT1_THS   (0x32)
 
#define LIS3DH_REG_INT1_DURATION   (0x33)
 
#define LIS3DH_REG_CLICK_CFG   (0x38)
 
#define LIS3DH_REG_CLICK_SRC   (0x39)
 
#define LIS3DH_REG_CLICK_THS   (0x3A)
 
#define LIS3DH_REG_TIME_LIMIT   (0x3B)
 
#define LIS3DH_REG_TIME_LATENCY   (0x3C)
 
#define LIS3DH_REG_TIME_WINDOW   (0x3D)
 

TEMP_CFG_REG bitfield macros

#define LIS3DH_TEMP_CFG_REG_ADC_PD_MASK   (1 << 7)
 ADC enable.
 
#define LIS3DH_TEMP_CFG_REG_TEMP_EN_MASK   (1 << 6)
 Temperature sensor (T) enable.
 

CTRL_REG1 bitfield macros

#define LIS3DH_CTRL_REG1_ODR_SHIFT   (4)
 ODR global shift.
 
#define LIS3DH_CTRL_REG1_ODR3_MASK   (1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 3))
 ODR fourth bit mask.
 
#define LIS3DH_CTRL_REG1_ODR2_MASK   (1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 2))
 ODR third bit mask.
 
#define LIS3DH_CTRL_REG1_ODR1_MASK   (1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 1))
 ODR second bit mask.
 
#define LIS3DH_CTRL_REG1_ODR0_MASK   (1 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 ODR first bit mask.
 
#define LIS3DH_CTRL_REG1_ODR_MASK
 Output data rate (ODR) selection bitfield.
 
#define LIS3DH_CTRL_REG1_LPEN_MASK   (1 << 3)
 Low power mode enable.
 
#define LIS3DH_CTRL_REG1_ZEN_SHIFT   (2)
 Z enable bit offset.
 
#define LIS3DH_CTRL_REG1_ZEN_MASK   (1 << LIS3DH_CTRL_REG1_ZEN_SHIFT)
 Z axis enable.
 
#define LIS3DH_CTRL_REG1_YEN_SHIFT   (1)
 Y enable bit offset.
 
#define LIS3DH_CTRL_REG1_YEN_MASK   (1 << LIS3DH_CTRL_REG1_YEN_SHIFT)
 Y axis enable.
 
#define LIS3DH_CTRL_REG1_XEN_SHIFT   (0)
 X enable bit offset.
 
#define LIS3DH_CTRL_REG1_XEN_MASK   (1 << LIS3DH_CTRL_REG1_XEN_SHIFT)
 X axis enable.
 
#define LIS3DH_CTRL_REG1_XYZEN_SHIFT   (0)
 XYZ enable bitfield offset.
 
#define LIS3DH_CTRL_REG1_XYZEN_MASK
 X, Y, Z enable bitfield mask.
 
#define LIS3DH_AXES_X   (LIS3DH_CTRL_REG1_XEN_MASK)
 enable X axis (Use when calling lis3dh_set_axes())
 
#define LIS3DH_AXES_Y   (LIS3DH_CTRL_REG1_YEN_MASK)
 enable Y axis (Use when calling lis3dh_set_axes())
 
#define LIS3DH_AXES_Z   (LIS3DH_CTRL_REG1_ZEN_MASK)
 enable Z axis (Use when calling lis3dh_set_axes())
 

CTRL_REG2 bitfield macros

#define LIS3DH_CTRL_REG2_HPM1_MASK   (1 << 7)
 High pass filter mode selection second bit.
 
#define LIS3DH_CTRL_REG2_HPM0_MASK   (1 << 6)
 High pass filter mode selection first bit.
 
#define LIS3DH_CTRL_REG2_HPCF2_MASK   (1 << 5)
 High pass filter cut off frequency selection second bit.
 
#define LIS3DH_CTRL_REG2_HPCF1_MASK   (1 << 4)
 High pass filter cut off frequency selection second bit.
 
#define LIS3DH_CTRL_REG2_FDS_MASK   (1 << 3)
 Filtered data selection.
 
#define LIS3DH_CTRL_REG2_HPCLICK_MASK   (1 << 2)
 High pass filter enabled for CLICK function.
 
#define LIS3DH_CTRL_REG2_HPIS2_MASK   (1 << 1)
 High pass filter enabled for AOI function on interrupt 2, second bit.
 
#define LIS3DH_CTRL_REG2_HPIS1_MASK   (1 << 0)
 High pass filter enabled for AOI function on interrupt 2, first bit.
 

CTRL_REG3 bitfield macros

#define LIS3DH_CTRL_REG3_I1_CLICK_MASK   (1 << 7)
 CLICK interrupt on INT1.
 
#define LIS3DH_CTRL_REG3_I1_AOI1_MASK   (1 << 6)
 AOI1 interrupt on INT1.
 
#define LIS3DH_CTRL_REG3_I1_AOI2_MASK   (1 << 5)
 AOI2 interrupt on INT1.
 
#define LIS3DH_CTRL_REG3_I1_DRDY1_MASK   (1 << 4)
 DRDY1 interrupt on INT1.
 
#define LIS3DH_CTRL_REG3_I1_DRDY2_MASK   (1 << 3)
 DRDY2 interrupt on INT1.
 
#define LIS3DH_CTRL_REG3_I1_WTM_MASK   (1 << 2)
 FIFO Watermark interrupt on INT1.
 
#define LIS3DH_CTRL_REG3_I1_OVERRUN_MASK   (1 << 1)
 FIFO Overrun interrupt on INT1.
 

CTRL_REG4 bitfield macros

#define LIS3DH_CTRL_REG4_BDU_MASK   (1 << 7)
 Block data update (BDU) bit mask.
 
#define LIS3DH_CTRL_REG4_BDU_ENABLE   (LIS3DH_CTRL_REG4_BDU_MASK)
 Block data update (BDU) enable.
 
#define LIS3DH_CTRL_REG4_BDU_DISABLE   (0)
 Block data update (BDU) disable.
 
#define LIS3DH_CTRL_REG4_BLE_MASK   (1 << 6)
 Big/little endian bit mask.
 
#define LIS3DH_CTRL_REG4_BLE_LITTLE_ENDIAN   (0)
 Big/little endian little endian mode.
 
#define LIS3DH_CTRL_REG4_BLE_BIG_ENDIAN   (LIS3DH_CTRL_REG4_BLE_MASK)
 Big/little endian big endian mode.
 
#define LIS3DH_CTRL_REG4_FS1_MASK   (1 << 5)
 Full scale selection mask second bit.
 
#define LIS3DH_CTRL_REG4_FS0_MASK   (1 << 4)
 Full scale selection mask first bit.
 
#define LIS3DH_CTRL_REG4_FS_MASK
 Full scale selection mask.
 
#define LIS3DH_CTRL_REG4_SCALE_2G   (0)
 Scale register value: +/- 2G.
 
#define LIS3DH_CTRL_REG4_SCALE_4G   (LIS3DH_CTRL_REG4_FS0_MASK)
 Scale register value: +/- 4G.
 
#define LIS3DH_CTRL_REG4_SCALE_8G   (LIS3DH_CTRL_REG4_FS1_MASK)
 Scale register value: +/- 8G.
 
#define LIS3DH_CTRL_REG4_SCALE_16G   (LIS3DH_CTRL_REG4_FS1_MASK | LIS3DH_CTRL_REG4_FS0_MASK)
 Scale: +/- 16G.
 
#define LIS3DH_CTRL_REG4_HR_MASK   (1 << 3)
 High resolution output mode.
 
#define LIS3DH_CTRL_REG4_ST1_MASK   (1 << 2)
 Self test enable second bit mask.
 
#define LIS3DH_CTRL_REG4_ST0_MASK   (1 << 1)
 Self test enable first bit mask.
 
#define LIS3DH_CTRL_REG4_SIM_MASK   (1 << 0)
 SPI serial interface mode selection.
 
#define LIS3DH_CTRL_REG5_REBOOT_MASK   (1 << 7)
 Reboot memory content.
 
#define LIS3DH_CTRL_REG5_FIFO_EN_MASK   (1 << 6)
 FIFO enable.
 
#define LIS3DH_CTRL_REG5_LIR_I1_MASK   (1 << 3)
 Latch interrupt request on INT1.
 
#define LIS3DH_CTRL_REG5_D4D_I1_MASK   (1 << 2)
 4D enable
 

STATUS_REG bitfield macros

#define LIS3DH_STATUS_REG_ZYXOR_MASK   (1 << 7)
 X, Y or Z axis data overrun.
 
#define LIS3DH_STATUS_REG_ZOR_MASK   (1 << 6)
 Z axis data overrun.
 
#define LIS3DH_STATUS_REG_YOR_MASK   (1 << 5)
 Y axis data overrun.
 
#define LIS3DH_STATUS_REG_XOR_MASK   (1 << 4)
 X axis data overrun.
 
#define LIS3DH_STATUS_REG_ZYXDA_MASK   (1 << 3)
 X, Y or Z axis new data available.
 
#define LIS3DH_STATUS_REG_ZDA_MASK   (1 << 2)
 Z axis new data available.
 
#define LIS3DH_STATUS_REG_YDA_MASK   (1 << 1)
 Y axis new data available.
 
#define LIS3DH_STATUS_REG_XDA_MASK   (1 << 0)
 X axis new data available.
 

FIFO_CTRL_REG bitfield macros

#define LIS3DH_FIFO_CTRL_REG_FM_SHIFT   (6)
 
#define LIS3DH_FIFO_CTRL_REG_FM1_MASK   (1 << 7)
 
#define LIS3DH_FIFO_CTRL_REG_FM0_MASK   (1 << 6)
 
#define LIS3DH_FIFO_CTRL_REG_FM_MASK
 
#define LIS3DH_FIFO_CTRL_REG_TR_MASK   (1 << 5)
 
#define LIS3DH_FIFO_CTRL_REG_FTH4_MASK   (1 << 4)
 
#define LIS3DH_FIFO_CTRL_REG_FTH3_MASK   (1 << 3)
 
#define LIS3DH_FIFO_CTRL_REG_FTH2_MASK   (1 << 2)
 
#define LIS3DH_FIFO_CTRL_REG_FTH1_MASK   (1 << 1)
 
#define LIS3DH_FIFO_CTRL_REG_FTH0_MASK   (1 << 0)
 
#define LIS3DH_FIFO_CTRL_REG_FTH_SHIFT   (0)
 
#define LIS3DH_FIFO_CTRL_REG_FTH_MASK
 

FIFO_SRC_REG bitfield macros

#define LIS3DH_FIFO_SRC_REG_WTM_MASK   (1 << 7)
 
#define LIS3DH_FIFO_SRC_REG_OVRN_FIFO_MASK   (1 << 6)
 
#define LIS3DH_FIFO_SRC_REG_EMPTY_MASK   (1 << 5)
 
#define LIS3DH_FIFO_SRC_REG_FSS4_MASK   (1 << 4)
 
#define LIS3DH_FIFO_SRC_REG_FSS3_MASK   (1 << 3)
 
#define LIS3DH_FIFO_SRC_REG_FSS2_MASK   (1 << 2)
 
#define LIS3DH_FIFO_SRC_REG_FSS1_MASK   (1 << 1)
 
#define LIS3DH_FIFO_SRC_REG_FSS0_MASK   (1 << 0)
 
#define LIS3DH_FIFO_SRC_REG_FSS_SHIFT   (0)
 
#define LIS3DH_FIFO_SRC_REG_FSS_MASK
 

Register address bitfield macros

#define LIS3DH_SPI_WRITE_MASK   (0 << 7)
 Write to register.
 
#define LIS3DH_SPI_READ_MASK   (1 << 7)
 The READ bit must be set when reading.
 
#define LIS3DH_SPI_MULTI_MASK   (1 << 6)
 Multi byte transfers must assert this bit when writing the address.
 
#define LIS3DH_SPI_SINGLE_MASK   (0 << 6)
 Opposite of LIS3DH_SPI_MULTI_MASK.
 
#define LIS3DH_SPI_ADDRESS_MASK   (0x3F)
 Mask of the address bits in the address byte during transfers.
 

FIFO modes.

Used when calling lis3dh_set_fifo()

#define LIS3DH_FIFO_MODE_BYPASS   (0x00 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
 FIFO mode: Bypass.
 
#define LIS3DH_FIFO_MODE_FIFO   (0x01 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
 FIFO mode: FIFO.
 
#define LIS3DH_FIFO_MODE_STREAM   (0x02 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
 FIFO mode: Stream.
 
#define LIS3DH_FIFO_MODE_STREAM_TO_FIFO   (0x03 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
 FIFO mode: Stream to FIFO.
 

Output Data Rates (ODR) macros

Use these when calling lis3dh_set_odr(odr).

#define LIS3DH_ODR_POWERDOWN   (0x00 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 Powerdown mode.
 
#define LIS3DH_ODR_1Hz   (0x01 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 1Hz mode
 
#define LIS3DH_ODR_10Hz   (0x02 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 10Hz mode
 
#define LIS3DH_ODR_25Hz   (0x03 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 25Hz mode
 
#define LIS3DH_ODR_50Hz   (0x04 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 50Hz mode
 
#define LIS3DH_ODR_100Hz   (0x05 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 100Hz mode
 
#define LIS3DH_ODR_200Hz   (0x06 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 200Hz mode
 
#define LIS3DH_ODR_400Hz   (0x07 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 400Hz mode
 
#define LIS3DH_ODR_LP1600Hz   (0x08 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 Low power 1600Hz mode.
 
#define LIS3DH_ODR_NP1250Hz   (0x09 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 Normal mode 1250 Hz.
 
#define LIS3DH_ODR_LP5000HZ   (0x09 << LIS3DH_CTRL_REG1_ODR_SHIFT)
 Low power mode 5000 Hz.
 

Macro Definition Documentation

◆ LIS3DH_ADC_DATA_SIZE

#define LIS3DH_ADC_DATA_SIZE   (2U)

Length of scalar measurement data in bytes.

Definition at line 645 of file lis3dh.h.

◆ LIS3DH_AXES_X

#define LIS3DH_AXES_X   (LIS3DH_CTRL_REG1_XEN_MASK)

enable X axis (Use when calling lis3dh_set_axes())

Definition at line 212 of file lis3dh.h.

◆ LIS3DH_AXES_XYZ

#define LIS3DH_AXES_XYZ   (LIS3DH_CTRL_REG1_XYZEN_MASK)

Convenience macro for enabling all axes.

Definition at line 226 of file lis3dh.h.

◆ LIS3DH_AXES_Y

#define LIS3DH_AXES_Y   (LIS3DH_CTRL_REG1_YEN_MASK)

enable Y axis (Use when calling lis3dh_set_axes())

Definition at line 216 of file lis3dh.h.

◆ LIS3DH_AXES_Z

#define LIS3DH_AXES_Z   (LIS3DH_CTRL_REG1_ZEN_MASK)

enable Z axis (Use when calling lis3dh_set_axes())

Definition at line 220 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_LPEN_MASK

#define LIS3DH_CTRL_REG1_LPEN_MASK   (1 << 3)

Low power mode enable.

Default value: 0

  1. normal mode
  2. low power mode

Definition at line 159 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ODR0_MASK

#define LIS3DH_CTRL_REG1_ODR0_MASK   (1 << LIS3DH_CTRL_REG1_ODR_SHIFT)

ODR first bit mask.

Definition at line 137 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ODR1_MASK

#define LIS3DH_CTRL_REG1_ODR1_MASK   (1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 1))

ODR second bit mask.

Definition at line 133 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ODR2_MASK

#define LIS3DH_CTRL_REG1_ODR2_MASK   (1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 2))

ODR third bit mask.

Definition at line 129 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ODR3_MASK

#define LIS3DH_CTRL_REG1_ODR3_MASK   (1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 3))

ODR fourth bit mask.

Definition at line 125 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ODR_MASK

#define LIS3DH_CTRL_REG1_ODR_MASK
Value:
#define LIS3DH_CTRL_REG1_ODR2_MASK
ODR third bit mask.
Definition lis3dh.h:129
#define LIS3DH_CTRL_REG1_ODR0_MASK
ODR first bit mask.
Definition lis3dh.h:137
#define LIS3DH_CTRL_REG1_ODR3_MASK
ODR fourth bit mask.
Definition lis3dh.h:125
#define LIS3DH_CTRL_REG1_ODR1_MASK
ODR second bit mask.
Definition lis3dh.h:133

Output data rate (ODR) selection bitfield.

Default value: 0000

0000: Power down; Others: Refer to data sheet

See also
LIS3DH data sheet Table 25, “Data rate configuration”

Definition at line 147 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ODR_SHIFT

#define LIS3DH_CTRL_REG1_ODR_SHIFT   (4)

ODR global shift.

Definition at line 121 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_XEN_MASK

#define LIS3DH_CTRL_REG1_XEN_MASK   (1 << LIS3DH_CTRL_REG1_XEN_SHIFT)

X axis enable.

Default value: 1

  1. X axis disabled
  2. X axis enabled

Definition at line 198 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_XEN_SHIFT

#define LIS3DH_CTRL_REG1_XEN_SHIFT   (0)

X enable bit offset.

Definition at line 189 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_XYZEN_MASK

#define LIS3DH_CTRL_REG1_XYZEN_MASK
Value:
#define LIS3DH_CTRL_REG1_YEN_MASK
Y axis enable.
Definition lis3dh.h:185
#define LIS3DH_CTRL_REG1_ZEN_MASK
Z axis enable.
Definition lis3dh.h:172
#define LIS3DH_CTRL_REG1_XEN_MASK
X axis enable.
Definition lis3dh.h:198

X, Y, Z enable bitfield mask.

Definition at line 206 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_XYZEN_SHIFT

#define LIS3DH_CTRL_REG1_XYZEN_SHIFT   (0)

XYZ enable bitfield offset.

Definition at line 202 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_YEN_MASK

#define LIS3DH_CTRL_REG1_YEN_MASK   (1 << LIS3DH_CTRL_REG1_YEN_SHIFT)

Y axis enable.

Default value: 1

  1. Y axis disabled
  2. Y axis enabled

Definition at line 185 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_YEN_SHIFT

#define LIS3DH_CTRL_REG1_YEN_SHIFT   (1)

Y enable bit offset.

Definition at line 176 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ZEN_MASK

#define LIS3DH_CTRL_REG1_ZEN_MASK   (1 << LIS3DH_CTRL_REG1_ZEN_SHIFT)

Z axis enable.

Default value: 1

  1. Z axis disabled
  2. Z axis enabled

Definition at line 172 of file lis3dh.h.

◆ LIS3DH_CTRL_REG1_ZEN_SHIFT

#define LIS3DH_CTRL_REG1_ZEN_SHIFT   (2)

Z enable bit offset.

Definition at line 163 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_FDS_MASK

#define LIS3DH_CTRL_REG2_FDS_MASK   (1 << 3)

Filtered data selection.

Default value: 0

  1. internal filter bypassed
  2. data from internal filter sent to output register and FIFO

Definition at line 264 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_HPCF1_MASK

#define LIS3DH_CTRL_REG2_HPCF1_MASK   (1 << 4)

High pass filter cut off frequency selection second bit.

Definition at line 255 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_HPCF2_MASK

#define LIS3DH_CTRL_REG2_HPCF2_MASK   (1 << 5)

High pass filter cut off frequency selection second bit.

Definition at line 251 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_HPCLICK_MASK

#define LIS3DH_CTRL_REG2_HPCLICK_MASK   (1 << 2)

High pass filter enabled for CLICK function.

  1. filter bypassed
  2. filter enabled

Definition at line 271 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_HPIS1_MASK

#define LIS3DH_CTRL_REG2_HPIS1_MASK   (1 << 0)

High pass filter enabled for AOI function on interrupt 2, first bit.

  1. filter bypassed
  2. filter enabled

Definition at line 285 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_HPIS2_MASK

#define LIS3DH_CTRL_REG2_HPIS2_MASK   (1 << 1)

High pass filter enabled for AOI function on interrupt 2, second bit.

  1. filter bypassed
  2. filter enabled

Definition at line 278 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_HPM0_MASK

#define LIS3DH_CTRL_REG2_HPM0_MASK   (1 << 6)

High pass filter mode selection first bit.

Default value: 0

See also
Refer to Table 29, "High pass filter mode configuration"

Definition at line 247 of file lis3dh.h.

◆ LIS3DH_CTRL_REG2_HPM1_MASK

#define LIS3DH_CTRL_REG2_HPM1_MASK   (1 << 7)

High pass filter mode selection second bit.

Default value: 0

See also
Refer to Table 29, "High pass filter mode configuration"

Definition at line 239 of file lis3dh.h.

◆ LIS3DH_CTRL_REG3_I1_AOI1_MASK

#define LIS3DH_CTRL_REG3_I1_AOI1_MASK   (1 << 6)

AOI1 interrupt on INT1.

Default value 0.

  1. Disable
  2. Enable

Definition at line 309 of file lis3dh.h.

◆ LIS3DH_CTRL_REG3_I1_AOI2_MASK

#define LIS3DH_CTRL_REG3_I1_AOI2_MASK   (1 << 5)

AOI2 interrupt on INT1.

Default value 0.

  1. Disable
  2. Enable

Definition at line 318 of file lis3dh.h.

◆ LIS3DH_CTRL_REG3_I1_CLICK_MASK

#define LIS3DH_CTRL_REG3_I1_CLICK_MASK   (1 << 7)

CLICK interrupt on INT1.

Default value 0.

  1. Disable
  2. Enable

Definition at line 300 of file lis3dh.h.

◆ LIS3DH_CTRL_REG3_I1_DRDY1_MASK

#define LIS3DH_CTRL_REG3_I1_DRDY1_MASK   (1 << 4)

DRDY1 interrupt on INT1.

Default value 0.

  1. Disable
  2. Enable

Definition at line 327 of file lis3dh.h.

◆ LIS3DH_CTRL_REG3_I1_DRDY2_MASK

#define LIS3DH_CTRL_REG3_I1_DRDY2_MASK   (1 << 3)

DRDY2 interrupt on INT1.

Default value 0.

  1. Disable
  2. Enable

Definition at line 336 of file lis3dh.h.

◆ LIS3DH_CTRL_REG3_I1_OVERRUN_MASK

#define LIS3DH_CTRL_REG3_I1_OVERRUN_MASK   (1 << 1)

FIFO Overrun interrupt on INT1.

Default value 0.

  1. Disable
  2. Enable

Definition at line 354 of file lis3dh.h.

◆ LIS3DH_CTRL_REG3_I1_WTM_MASK

#define LIS3DH_CTRL_REG3_I1_WTM_MASK   (1 << 2)

FIFO Watermark interrupt on INT1.

Default value 0.

  1. Disable
  2. Enable

Definition at line 345 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_BDU_DISABLE

#define LIS3DH_CTRL_REG4_BDU_DISABLE   (0)

Block data update (BDU) disable.

Definition at line 377 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_BDU_ENABLE

#define LIS3DH_CTRL_REG4_BDU_ENABLE   (LIS3DH_CTRL_REG4_BDU_MASK)

Block data update (BDU) enable.

Definition at line 373 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_BDU_MASK

#define LIS3DH_CTRL_REG4_BDU_MASK   (1 << 7)

Block data update (BDU) bit mask.

Default value of BDU: 0

  1. continuous update
  2. output registers not updated until MSB and LSB reading

Definition at line 369 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_BLE_BIG_ENDIAN

#define LIS3DH_CTRL_REG4_BLE_BIG_ENDIAN   (LIS3DH_CTRL_REG4_BLE_MASK)

Big/little endian big endian mode.

Definition at line 394 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_BLE_LITTLE_ENDIAN

#define LIS3DH_CTRL_REG4_BLE_LITTLE_ENDIAN   (0)

Big/little endian little endian mode.

Definition at line 390 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_BLE_MASK

#define LIS3DH_CTRL_REG4_BLE_MASK   (1 << 6)

Big/little endian bit mask.

Default value of BLE: 0.

  1. Data LSB @ lower address
  2. Data MSB @ lower address

Definition at line 386 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_FS0_MASK

#define LIS3DH_CTRL_REG4_FS0_MASK   (1 << 4)

Full scale selection mask first bit.

Definition at line 402 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_FS1_MASK

#define LIS3DH_CTRL_REG4_FS1_MASK   (1 << 5)

Full scale selection mask second bit.

Definition at line 398 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_FS_MASK

#define LIS3DH_CTRL_REG4_FS_MASK
Value:
#define LIS3DH_CTRL_REG4_FS0_MASK
Full scale selection mask first bit.
Definition lis3dh.h:402
#define LIS3DH_CTRL_REG4_FS1_MASK
Full scale selection mask second bit.
Definition lis3dh.h:398

Full scale selection mask.

Definition at line 406 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_HR_MASK

#define LIS3DH_CTRL_REG4_HR_MASK   (1 << 3)

High resolution output mode.

Default value: 0

  1. High resolution disable
  2. High resolution enable

Definition at line 432 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_SCALE_16G

#define LIS3DH_CTRL_REG4_SCALE_16G   (LIS3DH_CTRL_REG4_FS1_MASK | LIS3DH_CTRL_REG4_FS0_MASK)

Scale: +/- 16G.

Definition at line 423 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_SCALE_2G

#define LIS3DH_CTRL_REG4_SCALE_2G   (0)

Scale register value: +/- 2G.

Definition at line 411 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_SCALE_4G

#define LIS3DH_CTRL_REG4_SCALE_4G   (LIS3DH_CTRL_REG4_FS0_MASK)

Scale register value: +/- 4G.

Definition at line 415 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_SCALE_8G

#define LIS3DH_CTRL_REG4_SCALE_8G   (LIS3DH_CTRL_REG4_FS1_MASK)

Scale register value: +/- 8G.

Definition at line 419 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_SIM_MASK

#define LIS3DH_CTRL_REG4_SIM_MASK   (1 << 0)

SPI serial interface mode selection.

Default value: 0

  1. 4-wire interface
  2. 3-wire interface

Definition at line 456 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_ST0_MASK

#define LIS3DH_CTRL_REG4_ST0_MASK   (1 << 1)

Self test enable first bit mask.

Definition at line 447 of file lis3dh.h.

◆ LIS3DH_CTRL_REG4_ST1_MASK

#define LIS3DH_CTRL_REG4_ST1_MASK   (1 << 2)

Self test enable second bit mask.

Default value of self test: 00

  • 00: Self test disabled
  • Other: See Table 34
See also
Table 34

Definition at line 443 of file lis3dh.h.

◆ LIS3DH_CTRL_REG5_D4D_I1_MASK

#define LIS3DH_CTRL_REG5_D4D_I1_MASK   (1 << 2)

4D enable

4D detection is enabled on INT1 when 6D bit on INT1_CFG is set to 1.

Definition at line 492 of file lis3dh.h.

◆ LIS3DH_CTRL_REG5_FIFO_EN_MASK

#define LIS3DH_CTRL_REG5_FIFO_EN_MASK   (1 << 6)

FIFO enable.

Default value: 0

  1. FIFO disable
  2. FIFO enable

Definition at line 474 of file lis3dh.h.

◆ LIS3DH_CTRL_REG5_LIR_I1_MASK

#define LIS3DH_CTRL_REG5_LIR_I1_MASK   (1 << 3)

Latch interrupt request on INT1.

Latch interrupt request on INT1_SRC register, with INT1_SRC register cleared by reading INT1_SRC itself.

Default value: 0

  1. interrupt request not latched
  2. interrupt request latched

Definition at line 486 of file lis3dh.h.

◆ LIS3DH_CTRL_REG5_REBOOT_MASK

#define LIS3DH_CTRL_REG5_REBOOT_MASK   (1 << 7)

Reboot memory content.

Default value: 0

  1. normal mode
  2. reboot memory content

Definition at line 465 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FM0_MASK

#define LIS3DH_FIFO_CTRL_REG_FM0_MASK   (1 << 6)

Definition at line 579 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FM1_MASK

#define LIS3DH_FIFO_CTRL_REG_FM1_MASK   (1 << 7)

Definition at line 578 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FM_MASK

#define LIS3DH_FIFO_CTRL_REG_FM_MASK
Value:
(LIS3DH_FIFO_CTRL_REG_FM1_MASK | \
LIS3DH_FIFO_CTRL_REG_FM0_MASK)

Definition at line 580 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FM_SHIFT

#define LIS3DH_FIFO_CTRL_REG_FM_SHIFT   (6)

Definition at line 577 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FTH0_MASK

#define LIS3DH_FIFO_CTRL_REG_FTH0_MASK   (1 << 0)

Definition at line 587 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FTH1_MASK

#define LIS3DH_FIFO_CTRL_REG_FTH1_MASK   (1 << 1)

Definition at line 586 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FTH2_MASK

#define LIS3DH_FIFO_CTRL_REG_FTH2_MASK   (1 << 2)

Definition at line 585 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FTH3_MASK

#define LIS3DH_FIFO_CTRL_REG_FTH3_MASK   (1 << 3)

Definition at line 584 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FTH4_MASK

#define LIS3DH_FIFO_CTRL_REG_FTH4_MASK   (1 << 4)

Definition at line 583 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FTH_MASK

#define LIS3DH_FIFO_CTRL_REG_FTH_MASK
Value:
(LIS3DH_FIFO_CTRL_REG_FTH0_MASK | \
LIS3DH_FIFO_CTRL_REG_FTH1_MASK | \
LIS3DH_FIFO_CTRL_REG_FTH2_MASK | \
LIS3DH_FIFO_CTRL_REG_FTH3_MASK | \
LIS3DH_FIFO_CTRL_REG_FTH4_MASK)

Definition at line 589 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_FTH_SHIFT

#define LIS3DH_FIFO_CTRL_REG_FTH_SHIFT   (0)

Definition at line 588 of file lis3dh.h.

◆ LIS3DH_FIFO_CTRL_REG_TR_MASK

#define LIS3DH_FIFO_CTRL_REG_TR_MASK   (1 << 5)

Definition at line 582 of file lis3dh.h.

◆ LIS3DH_FIFO_MODE_BYPASS

#define LIS3DH_FIFO_MODE_BYPASS   (0x00 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)

FIFO mode: Bypass.

Definition at line 656 of file lis3dh.h.

◆ LIS3DH_FIFO_MODE_FIFO

#define LIS3DH_FIFO_MODE_FIFO   (0x01 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)

FIFO mode: FIFO.

Definition at line 660 of file lis3dh.h.

◆ LIS3DH_FIFO_MODE_STREAM

#define LIS3DH_FIFO_MODE_STREAM   (0x02 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)

FIFO mode: Stream.

Definition at line 664 of file lis3dh.h.

◆ LIS3DH_FIFO_MODE_STREAM_TO_FIFO

#define LIS3DH_FIFO_MODE_STREAM_TO_FIFO   (0x03 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)

FIFO mode: Stream to FIFO.

Definition at line 668 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_EMPTY_MASK

#define LIS3DH_FIFO_SRC_REG_EMPTY_MASK   (1 << 5)

Definition at line 602 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_FSS0_MASK

#define LIS3DH_FIFO_SRC_REG_FSS0_MASK   (1 << 0)

Definition at line 607 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_FSS1_MASK

#define LIS3DH_FIFO_SRC_REG_FSS1_MASK   (1 << 1)

Definition at line 606 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_FSS2_MASK

#define LIS3DH_FIFO_SRC_REG_FSS2_MASK   (1 << 2)

Definition at line 605 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_FSS3_MASK

#define LIS3DH_FIFO_SRC_REG_FSS3_MASK   (1 << 3)

Definition at line 604 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_FSS4_MASK

#define LIS3DH_FIFO_SRC_REG_FSS4_MASK   (1 << 4)

Definition at line 603 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_FSS_MASK

#define LIS3DH_FIFO_SRC_REG_FSS_MASK
Value:
(LIS3DH_FIFO_SRC_REG_FSS0_MASK | \
LIS3DH_FIFO_SRC_REG_FSS1_MASK | \
LIS3DH_FIFO_SRC_REG_FSS2_MASK | \
LIS3DH_FIFO_SRC_REG_FSS3_MASK | \
LIS3DH_FIFO_SRC_REG_FSS4_MASK)

Definition at line 609 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_FSS_SHIFT

#define LIS3DH_FIFO_SRC_REG_FSS_SHIFT   (0)

Definition at line 608 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_OVRN_FIFO_MASK

#define LIS3DH_FIFO_SRC_REG_OVRN_FIFO_MASK   (1 << 6)

Definition at line 601 of file lis3dh.h.

◆ LIS3DH_FIFO_SRC_REG_WTM_MASK

#define LIS3DH_FIFO_SRC_REG_WTM_MASK   (1 << 7)

Definition at line 600 of file lis3dh.h.

◆ LIS3DH_ODR_100Hz

#define LIS3DH_ODR_100Hz   (0x05 << LIS3DH_CTRL_REG1_ODR_SHIFT)

100Hz mode

Definition at line 700 of file lis3dh.h.

◆ LIS3DH_ODR_10Hz

#define LIS3DH_ODR_10Hz   (0x02 << LIS3DH_CTRL_REG1_ODR_SHIFT)

10Hz mode

Definition at line 688 of file lis3dh.h.

◆ LIS3DH_ODR_1Hz

#define LIS3DH_ODR_1Hz   (0x01 << LIS3DH_CTRL_REG1_ODR_SHIFT)

1Hz mode

Definition at line 684 of file lis3dh.h.

◆ LIS3DH_ODR_200Hz

#define LIS3DH_ODR_200Hz   (0x06 << LIS3DH_CTRL_REG1_ODR_SHIFT)

200Hz mode

Definition at line 704 of file lis3dh.h.

◆ LIS3DH_ODR_25Hz

#define LIS3DH_ODR_25Hz   (0x03 << LIS3DH_CTRL_REG1_ODR_SHIFT)

25Hz mode

Definition at line 692 of file lis3dh.h.

◆ LIS3DH_ODR_400Hz

#define LIS3DH_ODR_400Hz   (0x07 << LIS3DH_CTRL_REG1_ODR_SHIFT)

400Hz mode

Definition at line 708 of file lis3dh.h.

◆ LIS3DH_ODR_50Hz

#define LIS3DH_ODR_50Hz   (0x04 << LIS3DH_CTRL_REG1_ODR_SHIFT)

50Hz mode

Definition at line 696 of file lis3dh.h.

◆ LIS3DH_ODR_LP1600Hz

#define LIS3DH_ODR_LP1600Hz   (0x08 << LIS3DH_CTRL_REG1_ODR_SHIFT)

Low power 1600Hz mode.

Definition at line 712 of file lis3dh.h.

◆ LIS3DH_ODR_LP5000HZ

#define LIS3DH_ODR_LP5000HZ   (0x09 << LIS3DH_CTRL_REG1_ODR_SHIFT)

Low power mode 5000 Hz.

Note
Normal mode 1250 Hz and Low power mode 5000 Hz share the same setting

Definition at line 722 of file lis3dh.h.

◆ LIS3DH_ODR_NP1250Hz

#define LIS3DH_ODR_NP1250Hz   (0x09 << LIS3DH_CTRL_REG1_ODR_SHIFT)

Normal mode 1250 Hz.

Note
Normal mode 1250 Hz and Low power mode 5000 Hz share the same setting

Definition at line 717 of file lis3dh.h.

◆ LIS3DH_ODR_POWERDOWN

#define LIS3DH_ODR_POWERDOWN   (0x00 << LIS3DH_CTRL_REG1_ODR_SHIFT)

Powerdown mode.

Definition at line 680 of file lis3dh.h.

◆ LIS3DH_REG_CLICK_CFG

#define LIS3DH_REG_CLICK_CFG   (0x38)

Definition at line 79 of file lis3dh.h.

◆ LIS3DH_REG_CLICK_SRC

#define LIS3DH_REG_CLICK_SRC   (0x39)

Definition at line 80 of file lis3dh.h.

◆ LIS3DH_REG_CLICK_THS

#define LIS3DH_REG_CLICK_THS   (0x3A)

Definition at line 81 of file lis3dh.h.

◆ LIS3DH_REG_CTRL_REG1

#define LIS3DH_REG_CTRL_REG1   (0x20)

Definition at line 59 of file lis3dh.h.

◆ LIS3DH_REG_CTRL_REG2

#define LIS3DH_REG_CTRL_REG2   (0x21)

Definition at line 60 of file lis3dh.h.

◆ LIS3DH_REG_CTRL_REG3

#define LIS3DH_REG_CTRL_REG3   (0x22)

Definition at line 61 of file lis3dh.h.

◆ LIS3DH_REG_CTRL_REG4

#define LIS3DH_REG_CTRL_REG4   (0x23)

Definition at line 62 of file lis3dh.h.

◆ LIS3DH_REG_CTRL_REG5

#define LIS3DH_REG_CTRL_REG5   (0x24)

Definition at line 63 of file lis3dh.h.

◆ LIS3DH_REG_CTRL_REG6

#define LIS3DH_REG_CTRL_REG6   (0x25)

Definition at line 64 of file lis3dh.h.

◆ LIS3DH_REG_FIFO_CTRL_REG

#define LIS3DH_REG_FIFO_CTRL_REG   (0x2E)

Definition at line 73 of file lis3dh.h.

◆ LIS3DH_REG_FIFO_SRC_REG

#define LIS3DH_REG_FIFO_SRC_REG   (0x2F)

Definition at line 74 of file lis3dh.h.

◆ LIS3DH_REG_INT1_CFG

#define LIS3DH_REG_INT1_CFG   (0x30)

Definition at line 75 of file lis3dh.h.

◆ LIS3DH_REG_INT1_DURATION

#define LIS3DH_REG_INT1_DURATION   (0x33)

Definition at line 78 of file lis3dh.h.

◆ LIS3DH_REG_INT1_SOURCE

#define LIS3DH_REG_INT1_SOURCE   (0x31)

Definition at line 76 of file lis3dh.h.

◆ LIS3DH_REG_INT1_THS

#define LIS3DH_REG_INT1_THS   (0x32)

Definition at line 77 of file lis3dh.h.

◆ LIS3DH_REG_INT_COUNTER_REG

#define LIS3DH_REG_INT_COUNTER_REG   (0x0E)

Definition at line 56 of file lis3dh.h.

◆ LIS3DH_REG_OUT_AUX_ADC1_H

#define LIS3DH_REG_OUT_AUX_ADC1_H   (0x09)

Definition at line 51 of file lis3dh.h.

◆ LIS3DH_REG_OUT_AUX_ADC1_L

#define LIS3DH_REG_OUT_AUX_ADC1_L   (0x08)

Definition at line 50 of file lis3dh.h.

◆ LIS3DH_REG_OUT_AUX_ADC2_H

#define LIS3DH_REG_OUT_AUX_ADC2_H   (0x0B)

Definition at line 53 of file lis3dh.h.

◆ LIS3DH_REG_OUT_AUX_ADC2_L

#define LIS3DH_REG_OUT_AUX_ADC2_L   (0x0A)

Definition at line 52 of file lis3dh.h.

◆ LIS3DH_REG_OUT_AUX_ADC3_H

#define LIS3DH_REG_OUT_AUX_ADC3_H   (0x0D)

Definition at line 55 of file lis3dh.h.

◆ LIS3DH_REG_OUT_AUX_ADC3_L

#define LIS3DH_REG_OUT_AUX_ADC3_L   (0x0C)

Definition at line 54 of file lis3dh.h.

◆ LIS3DH_REG_OUT_X_H

#define LIS3DH_REG_OUT_X_H   (0x29)

Definition at line 68 of file lis3dh.h.

◆ LIS3DH_REG_OUT_X_L

#define LIS3DH_REG_OUT_X_L   (0x28)

Definition at line 67 of file lis3dh.h.

◆ LIS3DH_REG_OUT_Y_H

#define LIS3DH_REG_OUT_Y_H   (0x2B)

Definition at line 70 of file lis3dh.h.

◆ LIS3DH_REG_OUT_Y_L

#define LIS3DH_REG_OUT_Y_L   (0x2A)

Definition at line 69 of file lis3dh.h.

◆ LIS3DH_REG_OUT_Z_H

#define LIS3DH_REG_OUT_Z_H   (0x2D)

Definition at line 72 of file lis3dh.h.

◆ LIS3DH_REG_OUT_Z_L

#define LIS3DH_REG_OUT_Z_L   (0x2C)

Definition at line 71 of file lis3dh.h.

◆ LIS3DH_REG_REFERENCE

#define LIS3DH_REG_REFERENCE   (0x26)

Definition at line 65 of file lis3dh.h.

◆ LIS3DH_REG_STATUS_AUX

#define LIS3DH_REG_STATUS_AUX   (0x07)

Definition at line 49 of file lis3dh.h.

◆ LIS3DH_REG_STATUS_REG

#define LIS3DH_REG_STATUS_REG   (0x27)

Definition at line 66 of file lis3dh.h.

◆ LIS3DH_REG_TEMP_CFG_REG

#define LIS3DH_REG_TEMP_CFG_REG   (0x1F)

Definition at line 58 of file lis3dh.h.

◆ LIS3DH_REG_TIME_LATENCY

#define LIS3DH_REG_TIME_LATENCY   (0x3C)

Definition at line 83 of file lis3dh.h.

◆ LIS3DH_REG_TIME_LIMIT

#define LIS3DH_REG_TIME_LIMIT   (0x3B)

Definition at line 82 of file lis3dh.h.

◆ LIS3DH_REG_TIME_WINDOW

#define LIS3DH_REG_TIME_WINDOW   (0x3D)

Definition at line 84 of file lis3dh.h.

◆ LIS3DH_REG_WHO_AM_I

#define LIS3DH_REG_WHO_AM_I   (0x0F)

Definition at line 57 of file lis3dh.h.

◆ LIS3DH_SPI_ADDRESS_MASK

#define LIS3DH_SPI_ADDRESS_MASK   (0x3F)

Mask of the address bits in the address byte during transfers.

Definition at line 639 of file lis3dh.h.

◆ LIS3DH_SPI_MULTI_MASK

#define LIS3DH_SPI_MULTI_MASK   (1 << 6)

Multi byte transfers must assert this bit when writing the address.

Definition at line 631 of file lis3dh.h.

◆ LIS3DH_SPI_READ_MASK

#define LIS3DH_SPI_READ_MASK   (1 << 7)

The READ bit must be set when reading.

Definition at line 627 of file lis3dh.h.

◆ LIS3DH_SPI_SINGLE_MASK

#define LIS3DH_SPI_SINGLE_MASK   (0 << 6)

Opposite of LIS3DH_SPI_MULTI_MASK.

Definition at line 635 of file lis3dh.h.

◆ LIS3DH_SPI_WRITE_MASK

#define LIS3DH_SPI_WRITE_MASK   (0 << 7)

Write to register.

Definition at line 623 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_XDA_MASK

#define LIS3DH_STATUS_REG_XDA_MASK   (1 << 0)

X axis new data available.

Default value: 0

  1. a new data for the X-axis is not yet available
  2. a new data for the X-axis is available

Definition at line 570 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_XOR_MASK

#define LIS3DH_STATUS_REG_XOR_MASK   (1 << 4)

X axis data overrun.

Default value: 0

  1. no overrun has occurred
  2. a new data for the X-axis has overwritten the previous one

Definition at line 534 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_YDA_MASK

#define LIS3DH_STATUS_REG_YDA_MASK   (1 << 1)

Y axis new data available.

Default value: 0

  1. a new data for the Y-axis is not yet available
  2. a new data for the Y-axis is available

Definition at line 561 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_YOR_MASK

#define LIS3DH_STATUS_REG_YOR_MASK   (1 << 5)

Y axis data overrun.

Default value: 0

  1. no overrun has occurred
  2. a new data for the Y-axis has overwritten the previous one

Definition at line 525 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_ZDA_MASK

#define LIS3DH_STATUS_REG_ZDA_MASK   (1 << 2)

Z axis new data available.

Default value: 0

  1. a new data for the Z-axis is not yet available
  2. a new data for the Z-axis is available

Definition at line 552 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_ZOR_MASK

#define LIS3DH_STATUS_REG_ZOR_MASK   (1 << 6)

Z axis data overrun.

Default value: 0

  1. no overrun has occurred
  2. a new data for the Z-axis has overwritten the previous one

Definition at line 516 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_ZYXDA_MASK

#define LIS3DH_STATUS_REG_ZYXDA_MASK   (1 << 3)

X, Y or Z axis new data available.

Default value: 0

  1. a new set of data is not yet available
  2. a new set of data is available

Definition at line 543 of file lis3dh.h.

◆ LIS3DH_STATUS_REG_ZYXOR_MASK

#define LIS3DH_STATUS_REG_ZYXOR_MASK   (1 << 7)

X, Y or Z axis data overrun.

Default value: 0

  1. no overrun has occurred
  2. a new set of data has overwritten the previous ones

Definition at line 507 of file lis3dh.h.

◆ LIS3DH_TEMP_CFG_REG_ADC_PD_MASK

#define LIS3DH_TEMP_CFG_REG_ADC_PD_MASK   (1 << 7)

ADC enable.

Default value: 0

0: ADC disabled; 1: ADC enabled

Definition at line 103 of file lis3dh.h.

◆ LIS3DH_TEMP_CFG_REG_TEMP_EN_MASK

#define LIS3DH_TEMP_CFG_REG_TEMP_EN_MASK   (1 << 6)

Temperature sensor (T) enable.

Default value: 0

0: T disabled; 1: T enabled

Definition at line 111 of file lis3dh.h.

◆ LIS3DH_WHO_AM_I_RESPONSE

#define LIS3DH_WHO_AM_I_RESPONSE   (0x33)

Identifier register value.

The WHO_AM_I register should contain this value in order to correctly identify the chip.

Definition at line 43 of file lis3dh.h.

Function Documentation

◆ lis3dh_get_fifo_level()

int lis3dh_get_fifo_level ( const lis3dh_t * dev)

Get the current number of elements in the FIFO.

Parameters
[in]devDevice descriptor of sensor
Returns
number of elements in device FIFO on success
-1 on error

◆ lis3dh_init()

int lis3dh_init ( lis3dh_t * dev,
const lis3dh_params_t * params )

Initialize a LIS3DH sensor instance.

Parameters
[in]devDevice descriptor of sensor to initialize
[in]paramsConfiguration parameters
Returns
0 on success
-1 on error

◆ lis3dh_read_aux_adc1()

int lis3dh_read_aux_adc1 ( const lis3dh_t * dev,
int16_t * out )

Read auxiliary ADC channel 1 data from the accelerometer.

Parameters
[in]devDevice descriptor of sensor
[out]outThe value of ADC1 (OUT_1_{L,H}) will be written to this buffer
Returns
0 on success
-1 on error

◆ lis3dh_read_aux_adc2()

int lis3dh_read_aux_adc2 ( const lis3dh_t * dev,
int16_t * out )

Read auxiliary ADC channel 2 data from the accelerometer.

Parameters
[in]devDevice descriptor of sensor
[out]outThe value of ADC2 (OUT_2_{L,H}) will be written to this buffer
Returns
0 on success
-1 on error

◆ lis3dh_read_aux_adc3()

int lis3dh_read_aux_adc3 ( const lis3dh_t * dev,
int16_t * out )

Read auxiliary ADC channel 3 data from the accelerometer.

Parameters
[in]devDevice descriptor of sensor
[out]outThe value of ADC3 (OUT_3_{L,H}) will be written to this buffer
Note
The internal temperature sensor is connected to the third channel on the auxiliary ADC when the TEMP_EN bit of TEMP_CFG_REG is set.
Returns
0 on success
-1 on error

◆ lis3dh_read_xyz()

int lis3dh_read_xyz ( const lis3dh_t * dev,
lis3dh_data_t * acc_data )

Read 3D acceleration data from the accelerometer.

Parameters
[in]devDevice descriptor of sensor
[out]acc_dataAccelerometer data output buffer
Returns
0 on success
-1 on error

◆ lis3dh_set_aux_adc()

int lis3dh_set_aux_adc ( const lis3dh_t * dev,
const uint8_t enable,
const uint8_t temperature )

Turn on/off power to the auxiliary ADC in LIS3DH.

Parameters
[in]devDevice descriptor of sensor
[in]enablePower state of the auxiliary ADC
[in]temperatureIf not zero, switch the ADC mux so that a temperature reading is available on OUT_3_L, OUT_3_H.
Note
This ADC is only used for the temperature reading and the external ADC pins. The accelerometer ADC is turned on by lis3dh_set_odr().
Returns
0 on success
-1 on error

◆ lis3dh_set_axes()

int lis3dh_set_axes ( const lis3dh_t * dev,
const uint8_t axes )

Enable/disable accelerometer axes.

Parameters
[in]devDevice descriptor of sensor
[in]axesAn OR-ed combination of LIS3DH_AXES_X, LIS3DH_AXES_Y, LIS3DH_AXES_Z.
Note
The macro LIS3DH_AXES_XYZ is a convenience shortcut to enable all axes.
Returns
0 on success
-1 on error

◆ lis3dh_set_fifo()

int lis3dh_set_fifo ( const lis3dh_t * dev,
const uint8_t mode,
const uint8_t watermark )

Enable/disable the FIFO.

Parameters
[in]devDevice descriptor of sensor
[in]modeFIFO mode, see data sheet for details.
[in]watermarkWatermark level for FIFO level interrupts
Returns
0 on success
-1 on error

◆ lis3dh_set_int1()

int lis3dh_set_int1 ( const lis3dh_t * dev,
const uint8_t mode )

Set INT1 pin function.

Set the bits of CTRL_REG3 for choosing sources for the INT1 pin.

Parameters
[in]devDevice descriptor of sensor
[in]modeCTRL_REG3 value, see data sheet for details.
Returns
0 on success
-1 on error

◆ lis3dh_set_odr()

int lis3dh_set_odr ( const lis3dh_t * dev,
const uint8_t odr )

Set the output data rate of the sensor.

Parameters
[in]devDevice descriptor of sensor
[in]odrChosen output data rate.
Returns
0 on success
-1 on error

◆ lis3dh_set_scale()

int lis3dh_set_scale ( lis3dh_t * dev,
const uint8_t scale )

Set the full scale range of the sensor.

Valid values for scale are 2, 4, 8, 16 and represents the full range of the sensor.

Parameters
[in]devDevice descriptor of sensor
[in]scaleThe chosen sensitivity scale.
Returns
0 on success
-1 on error