LIS3DH accelerometer¶
Device driver for the LIS3DH accelerometer.
This driver provides [S]ensor [A]ctuator [U]ber [L]ayer capabilities.
-
LIS3DH_REG_STATUS_AUX
¶ 1
(0x07)
-
LIS3DH_REG_OUT_AUX_ADC1_L
¶ 1
(0x08)
-
LIS3DH_REG_OUT_AUX_ADC1_H
¶ 1
(0x09)
-
LIS3DH_REG_OUT_AUX_ADC2_L
¶ 1
(0x0A)
-
LIS3DH_REG_OUT_AUX_ADC2_H
¶ 1
(0x0B)
-
LIS3DH_REG_OUT_AUX_ADC3_L
¶ 1
(0x0C)
-
LIS3DH_REG_OUT_AUX_ADC3_H
¶ 1
(0x0D)
-
LIS3DH_REG_INT_COUNTER_REG
¶ 1
(0x0E)
-
LIS3DH_REG_WHO_AM_I
¶ 1
(0x0F)
-
LIS3DH_REG_TEMP_CFG_REG
¶ 1
(0x1F)
-
LIS3DH_REG_CTRL_REG1
¶ 1
(0x20)
-
LIS3DH_REG_CTRL_REG2
¶ 1
(0x21)
-
LIS3DH_REG_CTRL_REG3
¶ 1
(0x22)
-
LIS3DH_REG_CTRL_REG4
¶ 1
(0x23)
-
LIS3DH_REG_CTRL_REG5
¶ 1
(0x24)
-
LIS3DH_REG_CTRL_REG6
¶ 1
(0x25)
-
LIS3DH_REG_REFERENCE
¶ 1
(0x26)
-
LIS3DH_REG_STATUS_REG
¶ 1
(0x27)
-
LIS3DH_REG_OUT_X_L
¶ 1
(0x28)
-
LIS3DH_REG_OUT_X_H
¶ 1
(0x29)
-
LIS3DH_REG_OUT_Y_L
¶ 1
(0x2A)
-
LIS3DH_REG_OUT_Y_H
¶ 1
(0x2B)
-
LIS3DH_REG_OUT_Z_L
¶ 1
(0x2C)
-
LIS3DH_REG_OUT_Z_H
¶ 1
(0x2D)
-
LIS3DH_REG_FIFO_CTRL_REG
¶ 1
(0x2E)
-
LIS3DH_REG_FIFO_SRC_REG
¶ 1
(0x2F)
-
LIS3DH_REG_INT1_CFG
¶ 1
(0x30)
-
LIS3DH_REG_INT1_SOURCE
¶ 1
(0x31)
-
LIS3DH_REG_INT1_THS
¶ 1
(0x32)
-
LIS3DH_REG_INT1_DURATION
¶ 1
(0x33)
-
LIS3DH_REG_CLICK_CFG
¶ 1
(0x38)
-
LIS3DH_REG_CLICK_SRC
¶ 1
(0x39)
-
LIS3DH_REG_CLICK_THS
¶ 1
(0x3A)
-
LIS3DH_REG_TIME_LIMIT
¶ 1
(0x3B)
-
LIS3DH_REG_TIME_LATENCY
¶ 1
(0x3C)
-
LIS3DH_REG_TIME_WINDOW
¶ 1
(0x3D)
-
LIS3DH_TEMP_CFG_REG_ADC_PD_MASK
¶ ADC enable.
1
(1 << 7)
Default value: 0
0: ADC disabled; 1: ADC enabled
-
LIS3DH_TEMP_CFG_REG_TEMP_EN_MASK
¶ Temperature sensor (T) enable.
1
(1 << 6)
Default value: 0
0: T disabled; 1: T enabled
-
LIS3DH_CTRL_REG1_ODR_SHIFT
¶ ODR global shift.
1
(4)
-
LIS3DH_CTRL_REG1_ODR3_MASK
¶ ODR fourth bit mask.
1
(1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 3))
-
LIS3DH_CTRL_REG1_ODR2_MASK
¶ ODR third bit mask.
1
(1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 2))
-
LIS3DH_CTRL_REG1_ODR1_MASK
¶ ODR second bit mask.
1
(1 << (LIS3DH_CTRL_REG1_ODR_SHIFT + 1))
-
LIS3DH_CTRL_REG1_ODR0_MASK
¶ ODR first bit mask.
1
(1 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_CTRL_REG1_ODR_MASK
¶ Output data rate (ODR) selection bitfield.
1 2 3 4
(LIS3DH_CTRL_REG1_ODR3_MASK | \ LIS3DH_CTRL_REG1_ODR2_MASK | \ LIS3DH_CTRL_REG1_ODR1_MASK | \ LIS3DH_CTRL_REG1_ODR0_MASK)
Default value: 0000
0000: Power down; Others: Refer to data sheet
See also
LIS3DH data sheet Table 25, “Data rate configuration”
-
LIS3DH_CTRL_REG1_LPEN_MASK
¶ Low power mode enable.
1
(1 << 3)
Default value: 0
0. normal mode
- low power mode
-
LIS3DH_CTRL_REG1_ZEN_SHIFT
¶ Z enable bit offset.
1
(2)
-
LIS3DH_CTRL_REG1_ZEN_MASK
¶ Z axis enable.
1
(1 << LIS3DH_CTRL_REG1_ZEN_SHIFT)
Default value: 1
0. Z axis disabled
- Z axis enabled
-
LIS3DH_CTRL_REG1_YEN_SHIFT
¶ Y enable bit offset.
1
(1)
-
LIS3DH_CTRL_REG1_YEN_MASK
¶ Y axis enable.
1
(1 << LIS3DH_CTRL_REG1_YEN_SHIFT)
Default value: 1
0. Y axis disabled
- Y axis enabled
-
LIS3DH_CTRL_REG1_XEN_SHIFT
¶ X enable bit offset.
1
(0)
-
LIS3DH_CTRL_REG1_XEN_MASK
¶ X axis enable.
1
(1 << LIS3DH_CTRL_REG1_XEN_SHIFT)
Default value: 1
0. X axis disabled
- X axis enabled
-
LIS3DH_CTRL_REG1_XYZEN_SHIFT
¶ XYZ enable bitfield offset.
1
(0)
-
LIS3DH_CTRL_REG1_XYZEN_MASK
¶ X, Y, Z enable bitfield mask.
1 2
(LIS3DH_CTRL_REG1_XEN_MASK | \ LIS3DH_CTRL_REG1_YEN_MASK | LIS3DH_CTRL_REG1_ZEN_MASK)
-
LIS3DH_AXES_X
¶ enable X axis (Use when calling
lis3dh.h::lis3dh_set_axes()
)1
(LIS3DH_CTRL_REG1_XEN_MASK)
-
LIS3DH_AXES_Y
¶ enable Y axis (Use when calling
lis3dh.h::lis3dh_set_axes()
)1
(LIS3DH_CTRL_REG1_YEN_MASK)
-
LIS3DH_AXES_Z
¶ enable Z axis (Use when calling
lis3dh.h::lis3dh_set_axes()
)1
(LIS3DH_CTRL_REG1_ZEN_MASK)
-
LIS3DH_CTRL_REG2_HPM1_MASK
¶ High pass filter mode selection second bit.
1
(1 << 7)
Default value: 0
See also
Refer to Table 29, “High pass filter mode configuration”
-
LIS3DH_CTRL_REG2_HPM0_MASK
¶ High pass filter mode selection first bit.
1
(1 << 6)
Default value: 0
See also
Refer to Table 29, “High pass filter mode configuration”
-
LIS3DH_CTRL_REG2_HPCF2_MASK
¶ High pass filter cut off frequency selection second bit.
1
(1 << 5)
-
LIS3DH_CTRL_REG2_HPCF1_MASK
¶ High pass filter cut off frequency selection second bit.
1
(1 << 4)
-
LIS3DH_CTRL_REG2_FDS_MASK
¶ Filtered data selection.
1
(1 << 3)
Default value: 0
0. internal filter bypassed
- data from internal filter sent to output register and FIFO
-
LIS3DH_CTRL_REG2_HPCLICK_MASK
¶ High pass filter enabled for CLICK function.
1
(1 << 2)
0. filter bypassed
- filter enabled
-
LIS3DH_CTRL_REG2_HPIS2_MASK
¶ High pass filter enabled for AOI function on interrupt 2, second bit.
1
(1 << 1)
0. filter bypassed
- filter enabled
-
LIS3DH_CTRL_REG2_HPIS1_MASK
¶ High pass filter enabled for AOI function on interrupt 2, first bit.
1
(1 << 0)
0. filter bypassed
- filter enabled
-
LIS3DH_CTRL_REG3_I1_CLICK_MASK
¶ CLICK interrupt on INT1.
1
(1 << 7)
Default value 0.
0. Disable
- Enable
-
LIS3DH_CTRL_REG3_I1_AOI1_MASK
¶ AOI1 interrupt on INT1.
1
(1 << 6)
Default value 0.
0. Disable
- Enable
-
LIS3DH_CTRL_REG3_I1_AOI2_MASK
¶ AOI2 interrupt on INT1.
1
(1 << 5)
Default value 0.
0. Disable
- Enable
-
LIS3DH_CTRL_REG3_I1_DRDY1_MASK
¶ DRDY1 interrupt on INT1.
1
(1 << 4)
Default value 0.
0. Disable
- Enable
-
LIS3DH_CTRL_REG3_I1_DRDY2_MASK
¶ DRDY2 interrupt on INT1.
1
(1 << 3)
Default value 0.
0. Disable
- Enable
-
LIS3DH_CTRL_REG3_I1_WTM_MASK
¶ FIFO Watermark interrupt on INT1.
1
(1 << 2)
Default value 0.
0. Disable
- Enable
-
LIS3DH_CTRL_REG3_I1_OVERRUN_MASK
¶ FIFO Overrun interrupt on INT1.
1
(1 << 1)
Default value 0.
0. Disable
- Enable
-
LIS3DH_CTRL_REG4_BDU_MASK
¶ Block data update (BDU) bit mask.
1
(1 << 7)
Default value of BDU: 0
0. continuous update
- output registers not updated until MSB and LSB reading
-
LIS3DH_CTRL_REG4_BDU_ENABLE
¶ Block data update (BDU) enable.
1
(LIS3DH_CTRL_REG4_BDU_MASK)
-
LIS3DH_CTRL_REG4_BDU_DISABLE
¶ Block data update (BDU) disable.
1
(0)
-
LIS3DH_CTRL_REG4_BLE_MASK
¶ Big/little endian bit mask.
1
(1 << 6)
Default value of BLE: 0.
0. Data LSB @ lower address
- Data MSB @ lower address
-
LIS3DH_CTRL_REG4_BLE_LITTLE_ENDIAN
¶ Big/little endian little endian mode.
1
(0)
-
LIS3DH_CTRL_REG4_BLE_BIG_ENDIAN
¶ Big/little endian big endian mode.
1
(LIS3DH_CTRL_REG4_BLE_MASK)
-
LIS3DH_CTRL_REG4_FS1_MASK
¶ Full scale selection mask second bit.
1
(1 << 5)
-
LIS3DH_CTRL_REG4_FS0_MASK
¶ Full scale selection mask first bit.
1
(1 << 4)
-
LIS3DH_CTRL_REG4_FS_MASK
¶ Full scale selection mask.
1 2
(LIS3DH_CTRL_REG4_FS1_MASK | \ LIS3DH_CTRL_REG4_FS0_MASK)
-
LIS3DH_CTRL_REG4_SCALE_2G
¶ Scale register value: +/- 2G.
1
(0)
-
LIS3DH_CTRL_REG4_SCALE_4G
¶ Scale register value: +/- 4G.
1
(LIS3DH_CTRL_REG4_FS0_MASK)
-
LIS3DH_CTRL_REG4_SCALE_8G
¶ Scale register value: +/- 8G.
1
(LIS3DH_CTRL_REG4_FS1_MASK)
-
LIS3DH_CTRL_REG4_SCALE_16G
¶ Scale: +/- 16G.
1
(LIS3DH_CTRL_REG4_FS1_MASK | LIS3DH_CTRL_REG4_FS0_MASK)
-
LIS3DH_CTRL_REG4_HR_MASK
¶ High resolution output mode.
1
(1 << 3)
Default value: 0
0. High resolution disable
- High resolution enable
-
LIS3DH_CTRL_REG4_ST1_MASK
¶ Self test enable second bit mask.
1
(1 << 2)
Default value of self test: 00
- 00: Self test disabled
- Other: See Table 34
See also
Table 34
-
LIS3DH_CTRL_REG4_ST0_MASK
¶ Self test enable first bit mask.
1
(1 << 1)
-
LIS3DH_CTRL_REG4_SIM_MASK
¶ SPI serial interface mode selection.
1
(1 << 0)
Default value: 0
0. 4-wire interface
- 3-wire interface
-
LIS3DH_CTRL_REG5_REBOOT_MASK
¶ Reboot memory content.
1
(1 << 7)
Default value: 0
0. normal mode
- reboot memory content
-
LIS3DH_CTRL_REG5_FIFO_EN_MASK
¶ FIFO enable.
1
(1 << 6)
Default value: 0
0. FIFO disable
- FIFO enable
-
LIS3DH_CTRL_REG5_LIR_I1_MASK
¶ Latch interrupt request on INT1.
1
(1 << 3)
Latch interrupt request on INT1_SRC register, with INT1_SRC register cleared by reading INT1_SRC itself.
Default value: 0
0. interrupt request not latched
- interrupt request latched
-
LIS3DH_CTRL_REG5_D4D_I1_MASK
¶ 4D enable
1
(1 << 2)
4D detection is enabled on INT1 when 6D bit on INT1_CFG is set to 1.
-
LIS3DH_STATUS_REG_ZYXOR_MASK
¶ X, Y or Z axis data overrun.
1
(1 << 7)
Default value: 0
0. no overrun has occurred
- a new set of data has overwritten the previous ones
-
LIS3DH_STATUS_REG_ZOR_MASK
¶ Z axis data overrun.
1
(1 << 6)
Default value: 0
0. no overrun has occurred
- a new data for the Z-axis has overwritten the previous one
-
LIS3DH_STATUS_REG_YOR_MASK
¶ Y axis data overrun.
1
(1 << 5)
Default value: 0
0. no overrun has occurred
- a new data for the Y-axis has overwritten the previous one
-
LIS3DH_STATUS_REG_XOR_MASK
¶ X axis data overrun.
1
(1 << 4)
Default value: 0
0. no overrun has occurred
- a new data for the X-axis has overwritten the previous one
-
LIS3DH_STATUS_REG_ZYXDA_MASK
¶ X, Y or Z axis new data available.
1
(1 << 3)
Default value: 0
0. a new set of data is not yet available
- a new set of data is available
-
LIS3DH_STATUS_REG_ZDA_MASK
¶ Z axis new data available.
1
(1 << 2)
Default value: 0
0. a new data for the Z-axis is not yet available
- a new data for the Z-axis is available
-
LIS3DH_STATUS_REG_YDA_MASK
¶ Y axis new data available.
1
(1 << 1)
Default value: 0
0. a new data for the Y-axis is not yet available
- a new data for the Y-axis is available
-
LIS3DH_STATUS_REG_XDA_MASK
¶ X axis new data available.
1
(1 << 0)
Default value: 0
0. a new data for the X-axis is not yet available
- a new data for the X-axis is available
-
LIS3DH_FIFO_CTRL_REG_FM_SHIFT
¶ 1
(6)
-
LIS3DH_FIFO_CTRL_REG_FM1_MASK
¶ 1
(1 << 7)
-
LIS3DH_FIFO_CTRL_REG_FM0_MASK
¶ 1
(1 << 6)
-
LIS3DH_FIFO_CTRL_REG_FM_MASK
¶ 1 2
(LIS3DH_FIFO_CTRL_REG_FM1_MASK | \ LIS3DH_FIFO_CTRL_REG_FM0_MASK)
-
LIS3DH_FIFO_CTRL_REG_TR_MASK
¶ 1
(1 << 5)
-
LIS3DH_FIFO_CTRL_REG_FTH4_MASK
¶ 1
(1 << 4)
-
LIS3DH_FIFO_CTRL_REG_FTH3_MASK
¶ 1
(1 << 3)
-
LIS3DH_FIFO_CTRL_REG_FTH2_MASK
¶ 1
(1 << 2)
-
LIS3DH_FIFO_CTRL_REG_FTH1_MASK
¶ 1
(1 << 1)
-
LIS3DH_FIFO_CTRL_REG_FTH0_MASK
¶ 1
(1 << 0)
-
LIS3DH_FIFO_CTRL_REG_FTH_SHIFT
¶ 1
(0)
-
LIS3DH_FIFO_CTRL_REG_FTH_MASK
¶ 1 2 3 4 5
(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)
-
LIS3DH_FIFO_SRC_REG_WTM_MASK
¶ 1
(1 << 7)
-
LIS3DH_FIFO_SRC_REG_OVRN_FIFO_MASK
¶ 1
(1 << 6)
-
LIS3DH_FIFO_SRC_REG_EMPTY_MASK
¶ 1
(1 << 5)
-
LIS3DH_FIFO_SRC_REG_FSS4_MASK
¶ 1
(1 << 4)
-
LIS3DH_FIFO_SRC_REG_FSS3_MASK
¶ 1
(1 << 3)
-
LIS3DH_FIFO_SRC_REG_FSS2_MASK
¶ 1
(1 << 2)
-
LIS3DH_FIFO_SRC_REG_FSS1_MASK
¶ 1
(1 << 1)
-
LIS3DH_FIFO_SRC_REG_FSS0_MASK
¶ 1
(1 << 0)
-
LIS3DH_FIFO_SRC_REG_FSS_SHIFT
¶ 1
(0)
-
LIS3DH_FIFO_SRC_REG_FSS_MASK
¶ 1 2 3 4 5
(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)
-
LIS3DH_SPI_WRITE_MASK
¶ Write to register.
1
(0 << 7)
-
LIS3DH_SPI_READ_MASK
¶ The READ bit must be set when reading.
1
(1 << 7)
-
LIS3DH_SPI_MULTI_MASK
¶ Multi byte transfers must assert this bit when writing the address.
1
(1 << 6)
-
LIS3DH_SPI_SINGLE_MASK
¶ Opposite of LIS3DH_SPI_MULTI_MASK.
1
(0 << 6)
-
LIS3DH_SPI_ADDRESS_MASK
¶ Mask of the address bits in the address byte during transfers.
1
(0x3F)
-
LIS3DH_FIFO_MODE_BYPASS
¶ FIFO mode: Bypass.
1
(0x00 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
-
LIS3DH_FIFO_MODE_FIFO
¶ FIFO mode: FIFO.
1
(0x01 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
-
LIS3DH_FIFO_MODE_STREAM
¶ FIFO mode: Stream.
1
(0x02 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
-
LIS3DH_FIFO_MODE_STREAM_TO_FIFO
¶ FIFO mode: Stream to FIFO.
1
(0x03 << LIS3DH_FIFO_CTRL_REG_FM_SHIFT)
-
LIS3DH_ODR_POWERDOWN
¶ Powerdown mode.
1
(0x00 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_1Hz
¶ 1Hz mode
1
(0x01 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_10Hz
¶ 10Hz mode
1
(0x02 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_25Hz
¶ 25Hz mode
1
(0x03 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_50Hz
¶ 50Hz mode
1
(0x04 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_100Hz
¶ 100Hz mode
1
(0x05 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_200Hz
¶ 200Hz mode
1
(0x06 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_400Hz
¶ 400Hz mode
1
(0x07 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_LP1600Hz
¶ Low power 1600Hz mode.
1
(0x08 << LIS3DH_CTRL_REG1_ODR_SHIFT)
-
LIS3DH_ODR_NP1250Hz
¶ Normal mode 1250 Hz.
1
(0x09 << LIS3DH_CTRL_REG1_ODR_SHIFT)
Note
Normal mode 1250 Hz and Low power mode 5000 Hz share the same setting
-
LIS3DH_ODR_LP5000HZ
¶ Low power mode 5000 Hz.
1
(0x09 << LIS3DH_CTRL_REG1_ODR_SHIFT)
Note
Normal mode 1250 Hz and Low power mode 5000 Hz share the same setting
-
int
lis3dh_init
(lis3dh_t * dev, const lis3dh_params_t * params)¶ Initialize a LIS3DH sensor instance.
Parameters
dev: Device descriptor of sensor to initialize params: Configuration parameters Return values
- 0 on success
- -1 on error
-
int
lis3dh_read_xyz
(const lis3dh_t * dev, lis3dh_data_t * acc_data)¶ Read 3D acceleration data from the accelerometer.
Parameters
dev: Device descriptor of sensor acc_data: Accelerometer data output buffer Return values
- 0 on success
- -1 on error
-
int
lis3dh_read_aux_adc1
(const lis3dh_t * dev, int16_t * out)¶ Read auxiliary ADC channel 1 data from the accelerometer.
Parameters
dev: Device descriptor of sensor out: The value of ADC1 (OUT_1_{L,H}) will be written to this buffer Return values
- 0 on success
- -1 on error
-
int
lis3dh_read_aux_adc2
(const lis3dh_t * dev, int16_t * out)¶ Read auxiliary ADC channel 2 data from the accelerometer.
Parameters
dev: Device descriptor of sensor out: The value of ADC2 (OUT_2_{L,H}) will be written to this buffer Return values
- 0 on success
- -1 on error
-
int
lis3dh_read_aux_adc3
(const lis3dh_t * dev, int16_t * out)¶ Read auxiliary ADC channel 3 data from the accelerometer.
Parameters
dev: Device descriptor of sensor out: The 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.
Return values
- 0 on success
- -1 on error
-
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
dev: Device descriptor of sensor enable: Power state of the auxiliary ADC temperature: If 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.h::lis3dh_set_odr()
.Return values
- 0 on success
- -1 on error
-
int
lis3dh_set_axes
(const lis3dh_t * dev, const uint8_t axes)¶ Enable/disable accelerometer axes.
Parameters
dev: Device descriptor of sensor axes: An 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.
Return values
- 0 on success
- -1 on error
-
int
lis3dh_set_fifo
(const lis3dh_t * dev, const uint8_t mode, const uint8_t watermark)¶ Enable/disable the FIFO.
Parameters
dev: Device descriptor of sensor mode: FIFO mode, see data sheet for details. watermark: Watermark level for FIFO level interrupts Return values
- 0 on success
- -1 on error
-
int
lis3dh_set_odr
(const lis3dh_t * dev, const uint8_t odr)¶ Set the output data rate of the sensor.
Parameters
dev: Device descriptor of sensor odr: Chosen output data rate. Return values
- 0 on success
- -1 on error
-
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
dev: Device descriptor of sensor scale: The chosen sensitivity scale. Return values
- 0 on success
- -1 on error
-
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
dev: Device descriptor of sensor mode: CTRL_REG3 value, see data sheet for details. Return values
- 0 on success
- -1 on error
-
int
lis3dh_get_fifo_level
(const lis3dh_t * dev)¶ Get the current number of elements in the FIFO.
Parameters
dev: Device descriptor of sensor Return values
- number of elements in device FIFO on success
- -1 on error
-
LIS3DH_WHO_AM_I_RESPONSE
¶ Identifier register value.
1
(0x33)
The WHO_AM_I register should contain this value in order to correctly identify the chip.
-
LIS3DH_AXES_XYZ
¶ Convenience macro for enabling all axes.
1
(LIS3DH_CTRL_REG1_XYZEN_MASK)
-
LIS3DH_ADC_DATA_SIZE
¶ Length of scalar measurement data in bytes.
1
(2U)
-
struct
lis3dh_params_t
¶ Configuration parameters for LIS3DH devices.
-
spi.h::spi_t
spi
¶ SPI device the sensor is connected to.
-
atmega_common/include/periph_cpu_common.h::spi_clk_t
clk
¶ designated clock speed of the SPI bus
-
gpio.h::gpio_t
cs
¶ Chip select pin.
-
gpio.h::gpio_t
int1
¶ INT1 pin.
-
gpio.h::gpio_t
int2
¶ INT2 (DRDY) pin.
-
uint8_t
scale
¶ Default sensor scale: 2, 4, 8, or 16 (G)
-
uint8_t
odr
¶ Default sensor ODR setting: LIS3DH_ODR_xxxHz.
-
-
struct
lis3dh_t
¶ Device descriptor for LIS3DH sensors.
-
lis3dh_params_t
params
¶ Device initialization parameters.
-
uint16_t
scale
¶ Internal sensor scale.
-
lis3dh_params_t