Example of single tap and double tap detection for LSM6DSL in X-NUCLEO-IKS01A2

Dependencies:   X_NUCLEO_IKS01A2 mbed

Fork of SingleDoubleTap_IKS01A2 by ST Expansion SW Team

Single and Double Tap Demo Application based on sensor expansion board X-NUCLEO-IKS01A2

Main function is to show how to detect the single and double tap events using the sensor expansion board and send a notification using UART to a connected PC or Desktop and display it on terminal applications like TeraTerm.
After connection has been established:
- the user can try to tap the board and then view the notification using an hyper terminal. When the single tap is detected, the LED is switched on for a while.
- the user can press the user button to pass from the single tap detection to the double tap detection feature. The user can try to double tap the board and then view the notification using an hyper terminal. When the double tap is detected, the LED is switched on twice for a while.
- the user can press again the user button to disable the single and double tap detection feature.
- the user can press the user button to enable again the single tap detection feature and so on.

Committer:
cparata
Date:
Fri Aug 12 13:42:02 2016 +0000
Revision:
0:e4f89df7a7a5
First release of Single/Double Tap for LSM6DSL in IKS01A2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cparata 0:e4f89df7a7a5 1 /**
cparata 0:e4f89df7a7a5 2 ******************************************************************************
cparata 0:e4f89df7a7a5 3 * @file LSM6DSL_ACC_GYRO_driver.h
cparata 0:e4f89df7a7a5 4 * @author MEMS Application Team
cparata 0:e4f89df7a7a5 5 * @version V1.5
cparata 0:e4f89df7a7a5 6 * @date 17-May-2016
cparata 0:e4f89df7a7a5 7 * @brief LSM6DSL header driver file
cparata 0:e4f89df7a7a5 8 ******************************************************************************
cparata 0:e4f89df7a7a5 9 * @attention
cparata 0:e4f89df7a7a5 10 *
cparata 0:e4f89df7a7a5 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
cparata 0:e4f89df7a7a5 12 *
cparata 0:e4f89df7a7a5 13 * Redistribution and use in source and binary forms, with or without modification,
cparata 0:e4f89df7a7a5 14 * are permitted provided that the following conditions are met:
cparata 0:e4f89df7a7a5 15 * 1. Redistributions of source code must retain the above copyright notice,
cparata 0:e4f89df7a7a5 16 * this list of conditions and the following disclaimer.
cparata 0:e4f89df7a7a5 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
cparata 0:e4f89df7a7a5 18 * this list of conditions and the following disclaimer in the documentation
cparata 0:e4f89df7a7a5 19 * and/or other materials provided with the distribution.
cparata 0:e4f89df7a7a5 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
cparata 0:e4f89df7a7a5 21 * may be used to endorse or promote products derived from this software
cparata 0:e4f89df7a7a5 22 * without specific prior written permission.
cparata 0:e4f89df7a7a5 23 *
cparata 0:e4f89df7a7a5 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
cparata 0:e4f89df7a7a5 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
cparata 0:e4f89df7a7a5 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
cparata 0:e4f89df7a7a5 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
cparata 0:e4f89df7a7a5 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
cparata 0:e4f89df7a7a5 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
cparata 0:e4f89df7a7a5 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
cparata 0:e4f89df7a7a5 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
cparata 0:e4f89df7a7a5 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
cparata 0:e4f89df7a7a5 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cparata 0:e4f89df7a7a5 34 *
cparata 0:e4f89df7a7a5 35 ******************************************************************************
cparata 0:e4f89df7a7a5 36 */
cparata 0:e4f89df7a7a5 37
cparata 0:e4f89df7a7a5 38 /* Define to prevent recursive inclusion -------------------------------------*/
cparata 0:e4f89df7a7a5 39 #ifndef __LSM6DSL_ACC_GYRO_DRIVER__H
cparata 0:e4f89df7a7a5 40 #define __LSM6DSL_ACC_GYRO_DRIVER__H
cparata 0:e4f89df7a7a5 41
cparata 0:e4f89df7a7a5 42 /* Includes ------------------------------------------------------------------*/
cparata 0:e4f89df7a7a5 43 #include <stdint.h>
cparata 0:e4f89df7a7a5 44 /* Exported types ------------------------------------------------------------*/
cparata 0:e4f89df7a7a5 45
cparata 0:e4f89df7a7a5 46 #ifdef __cplusplus
cparata 0:e4f89df7a7a5 47 extern "C" {
cparata 0:e4f89df7a7a5 48 #endif
cparata 0:e4f89df7a7a5 49
cparata 0:e4f89df7a7a5 50 //these could change accordingly with the architecture
cparata 0:e4f89df7a7a5 51
cparata 0:e4f89df7a7a5 52 #ifndef __ARCHDEP__TYPES
cparata 0:e4f89df7a7a5 53 #define __ARCHDEP__TYPES
cparata 0:e4f89df7a7a5 54
cparata 0:e4f89df7a7a5 55 typedef unsigned char u8_t;
cparata 0:e4f89df7a7a5 56 typedef unsigned short int u16_t;
cparata 0:e4f89df7a7a5 57 typedef unsigned int u32_t;
cparata 0:e4f89df7a7a5 58 typedef int i32_t;
cparata 0:e4f89df7a7a5 59 typedef short int i16_t;
cparata 0:e4f89df7a7a5 60 typedef signed char i8_t;
cparata 0:e4f89df7a7a5 61
cparata 0:e4f89df7a7a5 62 #endif /*__ARCHDEP__TYPES*/
cparata 0:e4f89df7a7a5 63
cparata 0:e4f89df7a7a5 64 /* Exported common structure --------------------------------------------------------*/
cparata 0:e4f89df7a7a5 65
cparata 0:e4f89df7a7a5 66 #ifndef __SHARED__TYPES
cparata 0:e4f89df7a7a5 67 #define __SHARED__TYPES
cparata 0:e4f89df7a7a5 68
cparata 0:e4f89df7a7a5 69 typedef union{
cparata 0:e4f89df7a7a5 70 i16_t i16bit[3];
cparata 0:e4f89df7a7a5 71 u8_t u8bit[6];
cparata 0:e4f89df7a7a5 72 } Type3Axis16bit_U;
cparata 0:e4f89df7a7a5 73
cparata 0:e4f89df7a7a5 74 typedef union{
cparata 0:e4f89df7a7a5 75 i16_t i16bit;
cparata 0:e4f89df7a7a5 76 u8_t u8bit[2];
cparata 0:e4f89df7a7a5 77 } Type1Axis16bit_U;
cparata 0:e4f89df7a7a5 78
cparata 0:e4f89df7a7a5 79 typedef union{
cparata 0:e4f89df7a7a5 80 i32_t i32bit;
cparata 0:e4f89df7a7a5 81 u8_t u8bit[4];
cparata 0:e4f89df7a7a5 82 } Type1Axis32bit_U;
cparata 0:e4f89df7a7a5 83
cparata 0:e4f89df7a7a5 84 typedef enum {
cparata 0:e4f89df7a7a5 85 MEMS_SUCCESS = 0x01,
cparata 0:e4f89df7a7a5 86 MEMS_ERROR = 0x00
cparata 0:e4f89df7a7a5 87 } status_t;
cparata 0:e4f89df7a7a5 88
cparata 0:e4f89df7a7a5 89 #endif /*__SHARED__TYPES*/
cparata 0:e4f89df7a7a5 90
cparata 0:e4f89df7a7a5 91 /* Exported macro ------------------------------------------------------------*/
cparata 0:e4f89df7a7a5 92
cparata 0:e4f89df7a7a5 93 /* Exported constants --------------------------------------------------------*/
cparata 0:e4f89df7a7a5 94
cparata 0:e4f89df7a7a5 95 /************** I2C Address *****************/
cparata 0:e4f89df7a7a5 96
cparata 0:e4f89df7a7a5 97 #define LSM6DSL_ACC_GYRO_I2C_ADDRESS_LOW 0xD4 // SAD[0] = 0
cparata 0:e4f89df7a7a5 98 #define LSM6DSL_ACC_GYRO_I2C_ADDRESS_HIGH 0xD6 // SAD[0] = 1
cparata 0:e4f89df7a7a5 99
cparata 0:e4f89df7a7a5 100 /************** Who am I *******************/
cparata 0:e4f89df7a7a5 101
cparata 0:e4f89df7a7a5 102 #define LSM6DSL_ACC_GYRO_WHO_AM_I 0x6A
cparata 0:e4f89df7a7a5 103
cparata 0:e4f89df7a7a5 104 /************** Device Register *******************/
cparata 0:e4f89df7a7a5 105
cparata 0:e4f89df7a7a5 106 #define LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS 0X01
cparata 0:e4f89df7a7a5 107
cparata 0:e4f89df7a7a5 108 #define LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME 0X04
cparata 0:e4f89df7a7a5 109 #define LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO 0X05
cparata 0:e4f89df7a7a5 110
cparata 0:e4f89df7a7a5 111 #define LSM6DSL_ACC_GYRO_FIFO_CTRL1 0X06
cparata 0:e4f89df7a7a5 112 #define LSM6DSL_ACC_GYRO_FIFO_CTRL2 0X07
cparata 0:e4f89df7a7a5 113 #define LSM6DSL_ACC_GYRO_FIFO_CTRL3 0X08
cparata 0:e4f89df7a7a5 114 #define LSM6DSL_ACC_GYRO_FIFO_CTRL4 0X09
cparata 0:e4f89df7a7a5 115 #define LSM6DSL_ACC_GYRO_FIFO_CTRL5 0X0A
cparata 0:e4f89df7a7a5 116
cparata 0:e4f89df7a7a5 117 #define LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G 0X0B
cparata 0:e4f89df7a7a5 118 #define LSM6DSL_ACC_GYRO_INT1_CTRL 0X0D
cparata 0:e4f89df7a7a5 119 #define LSM6DSL_ACC_GYRO_INT2_CTRL 0X0E
cparata 0:e4f89df7a7a5 120 #define LSM6DSL_ACC_GYRO_WHO_AM_I_REG 0X0F
cparata 0:e4f89df7a7a5 121 #define LSM6DSL_ACC_GYRO_CTRL1_XL 0X10
cparata 0:e4f89df7a7a5 122 #define LSM6DSL_ACC_GYRO_CTRL2_G 0X11
cparata 0:e4f89df7a7a5 123 #define LSM6DSL_ACC_GYRO_CTRL3_C 0X12
cparata 0:e4f89df7a7a5 124 #define LSM6DSL_ACC_GYRO_CTRL4_C 0X13
cparata 0:e4f89df7a7a5 125 #define LSM6DSL_ACC_GYRO_CTRL5_C 0X14
cparata 0:e4f89df7a7a5 126 #define LSM6DSL_ACC_GYRO_CTRL6_G 0X15
cparata 0:e4f89df7a7a5 127 #define LSM6DSL_ACC_GYRO_CTRL7_G 0X16
cparata 0:e4f89df7a7a5 128 #define LSM6DSL_ACC_GYRO_CTRL8_XL 0X17
cparata 0:e4f89df7a7a5 129 #define LSM6DSL_ACC_GYRO_CTRL9_XL 0X18
cparata 0:e4f89df7a7a5 130 #define LSM6DSL_ACC_GYRO_CTRL10_C 0X19
cparata 0:e4f89df7a7a5 131
cparata 0:e4f89df7a7a5 132 #define LSM6DSL_ACC_GYRO_MASTER_CONFIG 0X1A
cparata 0:e4f89df7a7a5 133 #define LSM6DSL_ACC_GYRO_WAKE_UP_SRC 0X1B
cparata 0:e4f89df7a7a5 134 #define LSM6DSL_ACC_GYRO_TAP_SRC 0X1C
cparata 0:e4f89df7a7a5 135 #define LSM6DSL_ACC_GYRO_D6D_SRC 0X1D
cparata 0:e4f89df7a7a5 136 #define LSM6DSL_ACC_GYRO_STATUS_REG 0X1E
cparata 0:e4f89df7a7a5 137
cparata 0:e4f89df7a7a5 138 #define LSM6DSL_ACC_GYRO_OUT_TEMP_L 0X20
cparata 0:e4f89df7a7a5 139 #define LSM6DSL_ACC_GYRO_OUT_TEMP_H 0X21
cparata 0:e4f89df7a7a5 140 #define LSM6DSL_ACC_GYRO_OUTX_L_G 0X22
cparata 0:e4f89df7a7a5 141 #define LSM6DSL_ACC_GYRO_OUTX_H_G 0X23
cparata 0:e4f89df7a7a5 142 #define LSM6DSL_ACC_GYRO_OUTY_L_G 0X24
cparata 0:e4f89df7a7a5 143 #define LSM6DSL_ACC_GYRO_OUTY_H_G 0X25
cparata 0:e4f89df7a7a5 144 #define LSM6DSL_ACC_GYRO_OUTZ_L_G 0X26
cparata 0:e4f89df7a7a5 145 #define LSM6DSL_ACC_GYRO_OUTZ_H_G 0X27
cparata 0:e4f89df7a7a5 146 #define LSM6DSL_ACC_GYRO_OUTX_L_XL 0X28
cparata 0:e4f89df7a7a5 147 #define LSM6DSL_ACC_GYRO_OUTX_H_XL 0X29
cparata 0:e4f89df7a7a5 148 #define LSM6DSL_ACC_GYRO_OUTY_L_XL 0X2A
cparata 0:e4f89df7a7a5 149 #define LSM6DSL_ACC_GYRO_OUTY_H_XL 0X2B
cparata 0:e4f89df7a7a5 150 #define LSM6DSL_ACC_GYRO_OUTZ_L_XL 0X2C
cparata 0:e4f89df7a7a5 151 #define LSM6DSL_ACC_GYRO_OUTZ_H_XL 0X2D
cparata 0:e4f89df7a7a5 152 #define LSM6DSL_ACC_GYRO_SENSORHUB1_REG 0X2E
cparata 0:e4f89df7a7a5 153 #define LSM6DSL_ACC_GYRO_SENSORHUB2_REG 0X2F
cparata 0:e4f89df7a7a5 154 #define LSM6DSL_ACC_GYRO_SENSORHUB3_REG 0X30
cparata 0:e4f89df7a7a5 155 #define LSM6DSL_ACC_GYRO_SENSORHUB4_REG 0X31
cparata 0:e4f89df7a7a5 156 #define LSM6DSL_ACC_GYRO_SENSORHUB5_REG 0X32
cparata 0:e4f89df7a7a5 157 #define LSM6DSL_ACC_GYRO_SENSORHUB6_REG 0X33
cparata 0:e4f89df7a7a5 158 #define LSM6DSL_ACC_GYRO_SENSORHUB7_REG 0X34
cparata 0:e4f89df7a7a5 159 #define LSM6DSL_ACC_GYRO_SENSORHUB8_REG 0X35
cparata 0:e4f89df7a7a5 160 #define LSM6DSL_ACC_GYRO_SENSORHUB9_REG 0X36
cparata 0:e4f89df7a7a5 161 #define LSM6DSL_ACC_GYRO_SENSORHUB10_REG 0X37
cparata 0:e4f89df7a7a5 162 #define LSM6DSL_ACC_GYRO_SENSORHUB11_REG 0X38
cparata 0:e4f89df7a7a5 163 #define LSM6DSL_ACC_GYRO_SENSORHUB12_REG 0X39
cparata 0:e4f89df7a7a5 164 #define LSM6DSL_ACC_GYRO_FIFO_STATUS1 0X3A
cparata 0:e4f89df7a7a5 165 #define LSM6DSL_ACC_GYRO_FIFO_STATUS2 0X3B
cparata 0:e4f89df7a7a5 166 #define LSM6DSL_ACC_GYRO_FIFO_STATUS3 0X3C
cparata 0:e4f89df7a7a5 167 #define LSM6DSL_ACC_GYRO_FIFO_STATUS4 0X3D
cparata 0:e4f89df7a7a5 168 #define LSM6DSL_ACC_GYRO_FIFO_DATA_OUT_L 0X3E
cparata 0:e4f89df7a7a5 169 #define LSM6DSL_ACC_GYRO_FIFO_DATA_OUT_H 0X3F
cparata 0:e4f89df7a7a5 170 #define LSM6DSL_ACC_GYRO_TIMESTAMP0_REG 0X40
cparata 0:e4f89df7a7a5 171 #define LSM6DSL_ACC_GYRO_TIMESTAMP1_REG 0X41
cparata 0:e4f89df7a7a5 172 #define LSM6DSL_ACC_GYRO_TIMESTAMP2_REG 0X42
cparata 0:e4f89df7a7a5 173
cparata 0:e4f89df7a7a5 174 #define LSM6DSL_ACC_GYRO_TIMESTAMP_L 0X49
cparata 0:e4f89df7a7a5 175 #define LSM6DSL_ACC_GYRO_TIMESTAMP_H 0X4A
cparata 0:e4f89df7a7a5 176
cparata 0:e4f89df7a7a5 177 #define LSM6DSL_ACC_GYRO_STEP_COUNTER_L 0X4B
cparata 0:e4f89df7a7a5 178 #define LSM6DSL_ACC_GYRO_STEP_COUNTER_H 0X4C
cparata 0:e4f89df7a7a5 179
cparata 0:e4f89df7a7a5 180 #define LSM6DSL_ACC_GYRO_SENSORHUB13_REG 0X4D
cparata 0:e4f89df7a7a5 181 #define LSM6DSL_ACC_GYRO_SENSORHUB14_REG 0X4E
cparata 0:e4f89df7a7a5 182 #define LSM6DSL_ACC_GYRO_SENSORHUB15_REG 0X4F
cparata 0:e4f89df7a7a5 183 #define LSM6DSL_ACC_GYRO_SENSORHUB16_REG 0X50
cparata 0:e4f89df7a7a5 184 #define LSM6DSL_ACC_GYRO_SENSORHUB17_REG 0X51
cparata 0:e4f89df7a7a5 185 #define LSM6DSL_ACC_GYRO_SENSORHUB18_REG 0X52
cparata 0:e4f89df7a7a5 186
cparata 0:e4f89df7a7a5 187 #define LSM6DSL_ACC_GYRO_FUNC_SRC 0X53
cparata 0:e4f89df7a7a5 188 #define LSM6DSL_ACC_GYRO_TAP_CFG1 0X58
cparata 0:e4f89df7a7a5 189 #define LSM6DSL_ACC_GYRO_TAP_THS_6D 0X59
cparata 0:e4f89df7a7a5 190 #define LSM6DSL_ACC_GYRO_INT_DUR2 0X5A
cparata 0:e4f89df7a7a5 191 #define LSM6DSL_ACC_GYRO_WAKE_UP_THS 0X5B
cparata 0:e4f89df7a7a5 192 #define LSM6DSL_ACC_GYRO_WAKE_UP_DUR 0X5C
cparata 0:e4f89df7a7a5 193 #define LSM6DSL_ACC_GYRO_FREE_FALL 0X5D
cparata 0:e4f89df7a7a5 194 #define LSM6DSL_ACC_GYRO_MD1_CFG 0X5E
cparata 0:e4f89df7a7a5 195 #define LSM6DSL_ACC_GYRO_MD2_CFG 0X5F
cparata 0:e4f89df7a7a5 196
cparata 0:e4f89df7a7a5 197 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_X_L 0X66
cparata 0:e4f89df7a7a5 198 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_X_H 0X67
cparata 0:e4f89df7a7a5 199 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Y_L 0X68
cparata 0:e4f89df7a7a5 200 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Y_H 0X69
cparata 0:e4f89df7a7a5 201 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Z_L 0X6A
cparata 0:e4f89df7a7a5 202 #define LSM6DSL_ACC_GYRO_OUT_MAG_RAW_Z_H 0X6B
cparata 0:e4f89df7a7a5 203
cparata 0:e4f89df7a7a5 204 #define LSM6DSL_ACC_GYRO_X_OFS_USR 0X73
cparata 0:e4f89df7a7a5 205 #define LSM6DSL_ACC_GYRO_Y_OFS_USR 0X74
cparata 0:e4f89df7a7a5 206 #define LSM6DSL_ACC_GYRO_Z_OFS_USR 0X75
cparata 0:e4f89df7a7a5 207
cparata 0:e4f89df7a7a5 208 /************** Embedded functions register mapping *******************/
cparata 0:e4f89df7a7a5 209 #define LSM6DSL_ACC_GYRO_SLV0_ADD 0x02
cparata 0:e4f89df7a7a5 210 #define LSM6DSL_ACC_GYRO_SLV0_SUBADD 0x03
cparata 0:e4f89df7a7a5 211 #define LSM6DSL_ACC_GYRO_SLAVE0_CONFIG 0x04
cparata 0:e4f89df7a7a5 212 #define LSM6DSL_ACC_GYRO_SLV1_ADD 0x05
cparata 0:e4f89df7a7a5 213 #define LSM6DSL_ACC_GYRO_SLV1_SUBADD 0x06
cparata 0:e4f89df7a7a5 214 #define LSM6DSL_ACC_GYRO_SLAVE1_CONFIG 0x07
cparata 0:e4f89df7a7a5 215 #define LSM6DSL_ACC_GYRO_SLV2_ADD 0x08
cparata 0:e4f89df7a7a5 216 #define LSM6DSL_ACC_GYRO_SLV2_SUBADD 0x09
cparata 0:e4f89df7a7a5 217 #define LSM6DSL_ACC_GYRO_SLAVE2_CONFIG 0x0A
cparata 0:e4f89df7a7a5 218 #define LSM6DSL_ACC_GYRO_SLV3_ADD 0x0B
cparata 0:e4f89df7a7a5 219 #define LSM6DSL_ACC_GYRO_SLV3_SUBADD 0x0C
cparata 0:e4f89df7a7a5 220 #define LSM6DSL_ACC_GYRO_SLAVE3_CONFIG 0x0D
cparata 0:e4f89df7a7a5 221 #define LSM6DSL_ACC_GYRO_DATAWRITE_SRC_MODE_SUB_SLV0 0x0E
cparata 0:e4f89df7a7a5 222 #define LSM6DSL_ACC_GYRO_CONFIG_PEDO_THS_MIN 0x0F
cparata 0:e4f89df7a7a5 223
cparata 0:e4f89df7a7a5 224 #define LSM6DSL_ACC_GYRO_SM_STEP_THS 0x13
cparata 0:e4f89df7a7a5 225 #define LSM6DSL_ACC_GYRO_PEDO_DEB_REG 0x14
cparata 0:e4f89df7a7a5 226 #define LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA 0x15
cparata 0:e4f89df7a7a5 227
cparata 0:e4f89df7a7a5 228 #define LSM6DSL_ACC_GYRO_MAG_SI_XX 0x24
cparata 0:e4f89df7a7a5 229 #define LSM6DSL_ACC_GYRO_MAG_SI_XY 0x25
cparata 0:e4f89df7a7a5 230 #define LSM6DSL_ACC_GYRO_MAG_SI_XZ 0x26
cparata 0:e4f89df7a7a5 231 #define LSM6DSL_ACC_GYRO_MAG_SI_YX 0x27
cparata 0:e4f89df7a7a5 232 #define LSM6DSL_ACC_GYRO_MAG_SI_YY 0x28
cparata 0:e4f89df7a7a5 233 #define LSM6DSL_ACC_GYRO_MAG_SI_YZ 0x29
cparata 0:e4f89df7a7a5 234 #define LSM6DSL_ACC_GYRO_MAG_SI_ZX 0x2A
cparata 0:e4f89df7a7a5 235 #define LSM6DSL_ACC_GYRO_MAG_SI_ZY 0x2B
cparata 0:e4f89df7a7a5 236 #define LSM6DSL_ACC_GYRO_MAG_SI_ZZ 0x2C
cparata 0:e4f89df7a7a5 237 #define LSM6DSL_ACC_GYRO_MAG_OFFX_L 0x2D
cparata 0:e4f89df7a7a5 238 #define LSM6DSL_ACC_GYRO_MAG_OFFX_H 0x2E
cparata 0:e4f89df7a7a5 239 #define LSM6DSL_ACC_GYRO_MAG_OFFY_L 0x2F
cparata 0:e4f89df7a7a5 240 #define LSM6DSL_ACC_GYRO_MAG_OFFY_H 0x30
cparata 0:e4f89df7a7a5 241 #define LSM6DSL_ACC_GYRO_MAG_OFFZ_L 0x31
cparata 0:e4f89df7a7a5 242 #define LSM6DSL_ACC_GYRO_MAG_OFFZ_H 0x32
cparata 0:e4f89df7a7a5 243
cparata 0:e4f89df7a7a5 244 /************** Generic Function *******************/
cparata 0:e4f89df7a7a5 245
cparata 0:e4f89df7a7a5 246 /*******************************************************************************
cparata 0:e4f89df7a7a5 247 * Register : Generic - All
cparata 0:e4f89df7a7a5 248 * Address : Generic - All
cparata 0:e4f89df7a7a5 249 * Bit Group Name: None
cparata 0:e4f89df7a7a5 250 * Permission : W
cparata 0:e4f89df7a7a5 251 *******************************************************************************/
cparata 0:e4f89df7a7a5 252 status_t LSM6DSL_ACC_GYRO_WriteReg( void *handle, u8_t Reg, u8_t *Bufp, u16_t len );
cparata 0:e4f89df7a7a5 253
cparata 0:e4f89df7a7a5 254 /*******************************************************************************
cparata 0:e4f89df7a7a5 255 * Register : Generic - All
cparata 0:e4f89df7a7a5 256 * Address : Generic - All
cparata 0:e4f89df7a7a5 257 * Bit Group Name: None
cparata 0:e4f89df7a7a5 258 * Permission : R
cparata 0:e4f89df7a7a5 259 *******************************************************************************/
cparata 0:e4f89df7a7a5 260 status_t LSM6DSL_ACC_GYRO_ReadReg( void *handle, u8_t Reg, u8_t *Bufp, u16_t len );
cparata 0:e4f89df7a7a5 261
cparata 0:e4f89df7a7a5 262 /**************** Base Function *******************/
cparata 0:e4f89df7a7a5 263
cparata 0:e4f89df7a7a5 264 /*******************************************************************************
cparata 0:e4f89df7a7a5 265 * Register : WHO_AM_I
cparata 0:e4f89df7a7a5 266 * Address : 0X0F
cparata 0:e4f89df7a7a5 267 * Bit Group Name: WHO_AM_I_BIT
cparata 0:e4f89df7a7a5 268 * Permission : RO
cparata 0:e4f89df7a7a5 269 *******************************************************************************/
cparata 0:e4f89df7a7a5 270 #define LSM6DSL_ACC_GYRO_WHO_AM_I_BIT_MASK 0xFF
cparata 0:e4f89df7a7a5 271 #define LSM6DSL_ACC_GYRO_WHO_AM_I_BIT_POSITION 0
cparata 0:e4f89df7a7a5 272 status_t LSM6DSL_ACC_GYRO_R_WHO_AM_I(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 273
cparata 0:e4f89df7a7a5 274 /*******************************************************************************
cparata 0:e4f89df7a7a5 275 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 276 * Address : 0X12
cparata 0:e4f89df7a7a5 277 * Bit Group Name: BDU
cparata 0:e4f89df7a7a5 278 * Permission : RW
cparata 0:e4f89df7a7a5 279 *******************************************************************************/
cparata 0:e4f89df7a7a5 280 typedef enum {
cparata 0:e4f89df7a7a5 281 LSM6DSL_ACC_GYRO_BDU_CONTINUOS =0x00,
cparata 0:e4f89df7a7a5 282 LSM6DSL_ACC_GYRO_BDU_BLOCK_UPDATE =0x40,
cparata 0:e4f89df7a7a5 283 } LSM6DSL_ACC_GYRO_BDU_t;
cparata 0:e4f89df7a7a5 284
cparata 0:e4f89df7a7a5 285 #define LSM6DSL_ACC_GYRO_BDU_MASK 0x40
cparata 0:e4f89df7a7a5 286 status_t LSM6DSL_ACC_GYRO_W_BDU(void *handle, LSM6DSL_ACC_GYRO_BDU_t newValue);
cparata 0:e4f89df7a7a5 287 status_t LSM6DSL_ACC_GYRO_R_BDU(void *handle, LSM6DSL_ACC_GYRO_BDU_t *value);
cparata 0:e4f89df7a7a5 288
cparata 0:e4f89df7a7a5 289 /*******************************************************************************
cparata 0:e4f89df7a7a5 290 * Register : CTRL1_XL
cparata 0:e4f89df7a7a5 291 * Address : 0X10
cparata 0:e4f89df7a7a5 292 * Bit Group Name: FS_XL
cparata 0:e4f89df7a7a5 293 * Permission : RW
cparata 0:e4f89df7a7a5 294 *******************************************************************************/
cparata 0:e4f89df7a7a5 295 typedef enum {
cparata 0:e4f89df7a7a5 296 LSM6DSL_ACC_GYRO_FS_XL_2g =0x00,
cparata 0:e4f89df7a7a5 297 LSM6DSL_ACC_GYRO_FS_XL_16g =0x04,
cparata 0:e4f89df7a7a5 298 LSM6DSL_ACC_GYRO_FS_XL_4g =0x08,
cparata 0:e4f89df7a7a5 299 LSM6DSL_ACC_GYRO_FS_XL_8g =0x0C,
cparata 0:e4f89df7a7a5 300 } LSM6DSL_ACC_GYRO_FS_XL_t;
cparata 0:e4f89df7a7a5 301
cparata 0:e4f89df7a7a5 302 #define LSM6DSL_ACC_GYRO_FS_XL_MASK 0x0C
cparata 0:e4f89df7a7a5 303 status_t LSM6DSL_ACC_GYRO_W_FS_XL(void *handle, LSM6DSL_ACC_GYRO_FS_XL_t newValue);
cparata 0:e4f89df7a7a5 304 status_t LSM6DSL_ACC_GYRO_R_FS_XL(void *handle, LSM6DSL_ACC_GYRO_FS_XL_t *value);
cparata 0:e4f89df7a7a5 305
cparata 0:e4f89df7a7a5 306 /*******************************************************************************
cparata 0:e4f89df7a7a5 307 * Register : <REGISTER_L> - <REGISTER_H>
cparata 0:e4f89df7a7a5 308 * Output Type : GetAccData
cparata 0:e4f89df7a7a5 309 * Permission : RO
cparata 0:e4f89df7a7a5 310 *******************************************************************************/
cparata 0:e4f89df7a7a5 311 status_t LSM6DSL_ACC_GYRO_GetRawAccData(void *handle, u8_t *buff);
cparata 0:e4f89df7a7a5 312 status_t LSM6DSL_ACC_Get_Acceleration(void *handle, int *buff, u8_t from_fifo);
cparata 0:e4f89df7a7a5 313
cparata 0:e4f89df7a7a5 314 /*******************************************************************************
cparata 0:e4f89df7a7a5 315 * Register : CTRL1_XL
cparata 0:e4f89df7a7a5 316 * Address : 0X10
cparata 0:e4f89df7a7a5 317 * Bit Group Name: ODR_XL
cparata 0:e4f89df7a7a5 318 * Permission : RW
cparata 0:e4f89df7a7a5 319 *******************************************************************************/
cparata 0:e4f89df7a7a5 320 typedef enum {
cparata 0:e4f89df7a7a5 321 LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN =0x00,
cparata 0:e4f89df7a7a5 322 LSM6DSL_ACC_GYRO_ODR_XL_13Hz =0x10,
cparata 0:e4f89df7a7a5 323 LSM6DSL_ACC_GYRO_ODR_XL_26Hz =0x20,
cparata 0:e4f89df7a7a5 324 LSM6DSL_ACC_GYRO_ODR_XL_52Hz =0x30,
cparata 0:e4f89df7a7a5 325 LSM6DSL_ACC_GYRO_ODR_XL_104Hz =0x40,
cparata 0:e4f89df7a7a5 326 LSM6DSL_ACC_GYRO_ODR_XL_208Hz =0x50,
cparata 0:e4f89df7a7a5 327 LSM6DSL_ACC_GYRO_ODR_XL_416Hz =0x60,
cparata 0:e4f89df7a7a5 328 LSM6DSL_ACC_GYRO_ODR_XL_833Hz =0x70,
cparata 0:e4f89df7a7a5 329 LSM6DSL_ACC_GYRO_ODR_XL_1660Hz =0x80,
cparata 0:e4f89df7a7a5 330 LSM6DSL_ACC_GYRO_ODR_XL_3330Hz =0x90,
cparata 0:e4f89df7a7a5 331 LSM6DSL_ACC_GYRO_ODR_XL_6660Hz =0xA0,
cparata 0:e4f89df7a7a5 332 } LSM6DSL_ACC_GYRO_ODR_XL_t;
cparata 0:e4f89df7a7a5 333
cparata 0:e4f89df7a7a5 334 #define LSM6DSL_ACC_GYRO_ODR_XL_MASK 0xF0
cparata 0:e4f89df7a7a5 335 status_t LSM6DSL_ACC_GYRO_W_ODR_XL(void *handle, LSM6DSL_ACC_GYRO_ODR_XL_t newValue);
cparata 0:e4f89df7a7a5 336 status_t LSM6DSL_ACC_GYRO_R_ODR_XL(void *handle, LSM6DSL_ACC_GYRO_ODR_XL_t *value);
cparata 0:e4f89df7a7a5 337 status_t LSM6DSL_ACC_GYRO_translate_ODR_XL(LSM6DSL_ACC_GYRO_ODR_XL_t value, u16_t *odr_hz_val);
cparata 0:e4f89df7a7a5 338
cparata 0:e4f89df7a7a5 339 /*******************************************************************************
cparata 0:e4f89df7a7a5 340 * Register : CTRL2_G
cparata 0:e4f89df7a7a5 341 * Address : 0X11
cparata 0:e4f89df7a7a5 342 * Bit Group Name: FS_G
cparata 0:e4f89df7a7a5 343 * Permission : RW
cparata 0:e4f89df7a7a5 344 *******************************************************************************/
cparata 0:e4f89df7a7a5 345 typedef enum {
cparata 0:e4f89df7a7a5 346 LSM6DSL_ACC_GYRO_FS_G_245dps =0x00,
cparata 0:e4f89df7a7a5 347 LSM6DSL_ACC_GYRO_FS_G_500dps =0x04,
cparata 0:e4f89df7a7a5 348 LSM6DSL_ACC_GYRO_FS_G_1000dps =0x08,
cparata 0:e4f89df7a7a5 349 LSM6DSL_ACC_GYRO_FS_G_2000dps =0x0C,
cparata 0:e4f89df7a7a5 350 } LSM6DSL_ACC_GYRO_FS_G_t;
cparata 0:e4f89df7a7a5 351
cparata 0:e4f89df7a7a5 352 #define LSM6DSL_ACC_GYRO_FS_G_MASK 0x0C
cparata 0:e4f89df7a7a5 353 status_t LSM6DSL_ACC_GYRO_W_FS_G(void *handle, LSM6DSL_ACC_GYRO_FS_G_t newValue);
cparata 0:e4f89df7a7a5 354 status_t LSM6DSL_ACC_GYRO_R_FS_G(void *handle, LSM6DSL_ACC_GYRO_FS_G_t *value);
cparata 0:e4f89df7a7a5 355
cparata 0:e4f89df7a7a5 356 /*******************************************************************************
cparata 0:e4f89df7a7a5 357 * Register : CTRL2_G
cparata 0:e4f89df7a7a5 358 * Address : 0X11
cparata 0:e4f89df7a7a5 359 * Bit Group Name: ODR_G
cparata 0:e4f89df7a7a5 360 * Permission : RW
cparata 0:e4f89df7a7a5 361 *******************************************************************************/
cparata 0:e4f89df7a7a5 362 typedef enum {
cparata 0:e4f89df7a7a5 363 LSM6DSL_ACC_GYRO_ODR_G_POWER_DOWN =0x00,
cparata 0:e4f89df7a7a5 364 LSM6DSL_ACC_GYRO_ODR_G_13Hz =0x10,
cparata 0:e4f89df7a7a5 365 LSM6DSL_ACC_GYRO_ODR_G_26Hz =0x20,
cparata 0:e4f89df7a7a5 366 LSM6DSL_ACC_GYRO_ODR_G_52Hz =0x30,
cparata 0:e4f89df7a7a5 367 LSM6DSL_ACC_GYRO_ODR_G_104Hz =0x40,
cparata 0:e4f89df7a7a5 368 LSM6DSL_ACC_GYRO_ODR_G_208Hz =0x50,
cparata 0:e4f89df7a7a5 369 LSM6DSL_ACC_GYRO_ODR_G_416Hz =0x60,
cparata 0:e4f89df7a7a5 370 LSM6DSL_ACC_GYRO_ODR_G_833Hz =0x70,
cparata 0:e4f89df7a7a5 371 LSM6DSL_ACC_GYRO_ODR_G_1660Hz =0x80,
cparata 0:e4f89df7a7a5 372 LSM6DSL_ACC_GYRO_ODR_G_3330Hz =0x90,
cparata 0:e4f89df7a7a5 373 LSM6DSL_ACC_GYRO_ODR_G_6660Hz =0xA0,
cparata 0:e4f89df7a7a5 374 } LSM6DSL_ACC_GYRO_ODR_G_t;
cparata 0:e4f89df7a7a5 375
cparata 0:e4f89df7a7a5 376 #define LSM6DSL_ACC_GYRO_ODR_G_MASK 0xF0
cparata 0:e4f89df7a7a5 377 status_t LSM6DSL_ACC_GYRO_W_ODR_G(void *handle, LSM6DSL_ACC_GYRO_ODR_G_t newValue);
cparata 0:e4f89df7a7a5 378 status_t LSM6DSL_ACC_GYRO_R_ODR_G(void *handle, LSM6DSL_ACC_GYRO_ODR_G_t *value);
cparata 0:e4f89df7a7a5 379 status_t LSM6DSL_ACC_GYRO_translate_ODR_G(LSM6DSL_ACC_GYRO_ODR_G_t value, u16_t *odr_hz_val);
cparata 0:e4f89df7a7a5 380
cparata 0:e4f89df7a7a5 381 /*******************************************************************************
cparata 0:e4f89df7a7a5 382 * Register : <REGISTER_L> - <REGISTER_H>
cparata 0:e4f89df7a7a5 383 * Output Type : GetGyroData
cparata 0:e4f89df7a7a5 384 * Permission : RO
cparata 0:e4f89df7a7a5 385 *******************************************************************************/
cparata 0:e4f89df7a7a5 386 status_t LSM6DSL_ACC_GYRO_GetRawGyroData(void *handle, u8_t *buff);
cparata 0:e4f89df7a7a5 387 status_t LSM6DSL_ACC_Get_AngularRate(void *handle, int *buff, u8_t from_fifo);
cparata 0:e4f89df7a7a5 388
cparata 0:e4f89df7a7a5 389 /*******************************************************************************
cparata 0:e4f89df7a7a5 390 * Register : CTRL1_XL
cparata 0:e4f89df7a7a5 391 * Address : 0X10
cparata 0:e4f89df7a7a5 392 * Bit Group Name: BW_SEL
cparata 0:e4f89df7a7a5 393 * Permission : RW
cparata 0:e4f89df7a7a5 394 *******************************************************************************/
cparata 0:e4f89df7a7a5 395 typedef enum {
cparata 0:e4f89df7a7a5 396 LSM6DSL_ACC_GYRO_BW_SEL_ODR2 =0x00,
cparata 0:e4f89df7a7a5 397 LSM6DSL_ACC_GYRO_BW_SEL_ODR4 =0x02,
cparata 0:e4f89df7a7a5 398 } LSM6DSL_ACC_GYRO_BW_SEL_t;
cparata 0:e4f89df7a7a5 399
cparata 0:e4f89df7a7a5 400 #define LSM6DSL_ACC_GYRO_BW_SEL_MASK 0x02
cparata 0:e4f89df7a7a5 401 status_t LSM6DSL_ACC_GYRO_W_BW_SEL(void *handle, LSM6DSL_ACC_GYRO_BW_SEL_t newValue);
cparata 0:e4f89df7a7a5 402 status_t LSM6DSL_ACC_GYRO_R_BW_SEL(void *handle, LSM6DSL_ACC_GYRO_BW_SEL_t *value);
cparata 0:e4f89df7a7a5 403
cparata 0:e4f89df7a7a5 404 /*******************************************************************************
cparata 0:e4f89df7a7a5 405 * Register : CTRL2_G
cparata 0:e4f89df7a7a5 406 * Address : 0X11
cparata 0:e4f89df7a7a5 407 * Bit Group Name: FS_125
cparata 0:e4f89df7a7a5 408 * Permission : RW
cparata 0:e4f89df7a7a5 409 *******************************************************************************/
cparata 0:e4f89df7a7a5 410 typedef enum {
cparata 0:e4f89df7a7a5 411 LSM6DSL_ACC_GYRO_FS_125_DISABLED =0x00,
cparata 0:e4f89df7a7a5 412 LSM6DSL_ACC_GYRO_FS_125_ENABLED =0x02,
cparata 0:e4f89df7a7a5 413 } LSM6DSL_ACC_GYRO_FS_125_t;
cparata 0:e4f89df7a7a5 414
cparata 0:e4f89df7a7a5 415 #define LSM6DSL_ACC_GYRO_FS_125_MASK 0x02
cparata 0:e4f89df7a7a5 416 status_t LSM6DSL_ACC_GYRO_W_FS_125(void *handle, LSM6DSL_ACC_GYRO_FS_125_t newValue);
cparata 0:e4f89df7a7a5 417 status_t LSM6DSL_ACC_GYRO_R_FS_125(void *handle, LSM6DSL_ACC_GYRO_FS_125_t *value);
cparata 0:e4f89df7a7a5 418
cparata 0:e4f89df7a7a5 419 /**************** Advanced Function *******************/
cparata 0:e4f89df7a7a5 420
cparata 0:e4f89df7a7a5 421 /*******************************************************************************
cparata 0:e4f89df7a7a5 422 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 423 * Address : 0X12
cparata 0:e4f89df7a7a5 424 * Bit Group Name: BLE
cparata 0:e4f89df7a7a5 425 * Permission : RW
cparata 0:e4f89df7a7a5 426 *******************************************************************************/
cparata 0:e4f89df7a7a5 427 typedef enum {
cparata 0:e4f89df7a7a5 428 LSM6DSL_ACC_GYRO_BLE_LSB =0x00,
cparata 0:e4f89df7a7a5 429 LSM6DSL_ACC_GYRO_BLE_MSB =0x02,
cparata 0:e4f89df7a7a5 430 } LSM6DSL_ACC_GYRO_BLE_t;
cparata 0:e4f89df7a7a5 431
cparata 0:e4f89df7a7a5 432 #define LSM6DSL_ACC_GYRO_BLE_MASK 0x02
cparata 0:e4f89df7a7a5 433 status_t LSM6DSL_ACC_GYRO_W_BLE(void *handle, LSM6DSL_ACC_GYRO_BLE_t newValue);
cparata 0:e4f89df7a7a5 434 status_t LSM6DSL_ACC_GYRO_R_BLE(void *handle, LSM6DSL_ACC_GYRO_BLE_t *value);
cparata 0:e4f89df7a7a5 435
cparata 0:e4f89df7a7a5 436 /*******************************************************************************
cparata 0:e4f89df7a7a5 437 * Register : FUNC_CFG_ACCESS
cparata 0:e4f89df7a7a5 438 * Address : 0X01
cparata 0:e4f89df7a7a5 439 * Bit Group Name: EMB_ACC
cparata 0:e4f89df7a7a5 440 * Permission : RW
cparata 0:e4f89df7a7a5 441 *******************************************************************************/
cparata 0:e4f89df7a7a5 442 typedef enum {
cparata 0:e4f89df7a7a5 443 LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED =0x00,
cparata 0:e4f89df7a7a5 444 LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED =0x80,
cparata 0:e4f89df7a7a5 445 } LSM6DSL_ACC_GYRO_EMB_ACC_t;
cparata 0:e4f89df7a7a5 446
cparata 0:e4f89df7a7a5 447 #define LSM6DSL_ACC_GYRO_EMB_ACC_MASK 0x80
cparata 0:e4f89df7a7a5 448 status_t LSM6DSL_ACC_GYRO_W_EmbeddedAccess(void *handle, LSM6DSL_ACC_GYRO_EMB_ACC_t newValue);
cparata 0:e4f89df7a7a5 449 status_t LSM6DSL_ACC_GYRO_R_EmbeddedAccess(void *handle, LSM6DSL_ACC_GYRO_EMB_ACC_t *value);
cparata 0:e4f89df7a7a5 450
cparata 0:e4f89df7a7a5 451 /*******************************************************************************
cparata 0:e4f89df7a7a5 452 * Register : SENSOR_SYNC_TIME
cparata 0:e4f89df7a7a5 453 * Address : 0X04
cparata 0:e4f89df7a7a5 454 * Bit Group Name: TPH
cparata 0:e4f89df7a7a5 455 * Permission : RW
cparata 0:e4f89df7a7a5 456 *******************************************************************************/
cparata 0:e4f89df7a7a5 457 #define LSM6DSL_ACC_GYRO_TPH_MASK 0xFF
cparata 0:e4f89df7a7a5 458 #define LSM6DSL_ACC_GYRO_TPH_POSITION 0
cparata 0:e4f89df7a7a5 459 status_t LSM6DSL_ACC_GYRO_W_Stamping_Time_Frame(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 460 status_t LSM6DSL_ACC_GYRO_R_Stamping_Time_Frame(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 461
cparata 0:e4f89df7a7a5 462 /*******************************************************************************
cparata 0:e4f89df7a7a5 463 * Register : SENSOR_SYNC_RES_RATIO
cparata 0:e4f89df7a7a5 464 * Address : 0X05
cparata 0:e4f89df7a7a5 465 * Bit Group Name: RR
cparata 0:e4f89df7a7a5 466 * Permission : RW
cparata 0:e4f89df7a7a5 467 *******************************************************************************/
cparata 0:e4f89df7a7a5 468 typedef enum {
cparata 0:e4f89df7a7a5 469 LSM6DSL_ACC_GYRO_TIM_RATIO_2_11 =0x00,
cparata 0:e4f89df7a7a5 470 LSM6DSL_ACC_GYRO_TIM_RATIO_2_12 =0x01,
cparata 0:e4f89df7a7a5 471 LSM6DSL_ACC_GYRO_TIM_RATIO_2_13 =0x02,
cparata 0:e4f89df7a7a5 472 LSM6DSL_ACC_GYRO_TIM_RATIO_2_14 =0x03,
cparata 0:e4f89df7a7a5 473 } LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t;
cparata 0:e4f89df7a7a5 474
cparata 0:e4f89df7a7a5 475 #define LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_MASK 0x03
cparata 0:e4f89df7a7a5 476 status_t LSM6DSL_ACC_GYRO_W_SYNC_RES_RATIO(void *handle, LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t newValue);
cparata 0:e4f89df7a7a5 477 status_t LSM6DSL_ACC_GYRO_R_SYNC_RES_RATIO(void *handle, LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t *value);
cparata 0:e4f89df7a7a5 478
cparata 0:e4f89df7a7a5 479
cparata 0:e4f89df7a7a5 480 /*******************************************************************************
cparata 0:e4f89df7a7a5 481 * Register : FIFO_CTRL1
cparata 0:e4f89df7a7a5 482 * Address : 0X06
cparata 0:e4f89df7a7a5 483 * Bit Group Name: WTM_FIFO
cparata 0:e4f89df7a7a5 484 * Permission : RW
cparata 0:e4f89df7a7a5 485 *******************************************************************************/
cparata 0:e4f89df7a7a5 486 #define LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_MASK 0xFF
cparata 0:e4f89df7a7a5 487 #define LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_POSITION 0
cparata 0:e4f89df7a7a5 488 #define LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_MASK 0x07
cparata 0:e4f89df7a7a5 489 #define LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_POSITION 0
cparata 0:e4f89df7a7a5 490 status_t LSM6DSL_ACC_GYRO_W_FIFO_Watermark(void *handle, u16_t newValue);
cparata 0:e4f89df7a7a5 491 status_t LSM6DSL_ACC_GYRO_R_FIFO_Watermark(void *handle, u16_t *value);
cparata 0:e4f89df7a7a5 492
cparata 0:e4f89df7a7a5 493 /*******************************************************************************
cparata 0:e4f89df7a7a5 494 * Register : FIFO_CTRL2
cparata 0:e4f89df7a7a5 495 * Address : 0X07
cparata 0:e4f89df7a7a5 496 * Bit Group Name: FIFO_TEMP_EN
cparata 0:e4f89df7a7a5 497 * Permission : RW
cparata 0:e4f89df7a7a5 498 *******************************************************************************/
cparata 0:e4f89df7a7a5 499 typedef enum {
cparata 0:e4f89df7a7a5 500 LSM6DSL_ACC_GYRO_FIFO_TEMP_DISABLE =0x00,
cparata 0:e4f89df7a7a5 501 LSM6DSL_ACC_GYRO_FIFO_TEMP_ENABLE =0x08,
cparata 0:e4f89df7a7a5 502 } LSM6DSL_ACC_GYRO_FIFO_TEMP_t;
cparata 0:e4f89df7a7a5 503
cparata 0:e4f89df7a7a5 504 #define LSM6DSL_ACC_GYRO_FIFO_TEMP_MASK 0x08
cparata 0:e4f89df7a7a5 505 status_t LSM6DSL_ACC_GYRO_W_FIFO_TEMP(void *handle, LSM6DSL_ACC_GYRO_FIFO_TEMP_t newValue);
cparata 0:e4f89df7a7a5 506 status_t LSM6DSL_ACC_GYRO_R_FIFO_TEMP(void *handle, LSM6DSL_ACC_GYRO_FIFO_TEMP_t *value);
cparata 0:e4f89df7a7a5 507
cparata 0:e4f89df7a7a5 508
cparata 0:e4f89df7a7a5 509 /*******************************************************************************
cparata 0:e4f89df7a7a5 510 * Register : FIFO_CTRL2
cparata 0:e4f89df7a7a5 511 * Address : 0X07
cparata 0:e4f89df7a7a5 512 * Bit Group Name: TIM_PEDO_FIFO_DRDY
cparata 0:e4f89df7a7a5 513 * Permission : RW
cparata 0:e4f89df7a7a5 514 *******************************************************************************/
cparata 0:e4f89df7a7a5 515 typedef enum {
cparata 0:e4f89df7a7a5 516 LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_DISABLED =0x00,
cparata 0:e4f89df7a7a5 517 LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_ENABLED =0x40,
cparata 0:e4f89df7a7a5 518 } LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t;
cparata 0:e4f89df7a7a5 519
cparata 0:e4f89df7a7a5 520 #define LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_MASK 0x40
cparata 0:e4f89df7a7a5 521 status_t LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_Write_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t newValue);
cparata 0:e4f89df7a7a5 522 status_t LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_Write_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t *value);
cparata 0:e4f89df7a7a5 523
cparata 0:e4f89df7a7a5 524 /*******************************************************************************
cparata 0:e4f89df7a7a5 525 * Register : FIFO_CTRL2
cparata 0:e4f89df7a7a5 526 * Address : 0X07
cparata 0:e4f89df7a7a5 527 * Bit Group Name: TIM_PEDO_FIFO_EN
cparata 0:e4f89df7a7a5 528 * Permission : RW
cparata 0:e4f89df7a7a5 529 *******************************************************************************/
cparata 0:e4f89df7a7a5 530 typedef enum {
cparata 0:e4f89df7a7a5 531 LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 532 LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_ENABLED =0x80,
cparata 0:e4f89df7a7a5 533 } LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t;
cparata 0:e4f89df7a7a5 534
cparata 0:e4f89df7a7a5 535 #define LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_MASK 0x80
cparata 0:e4f89df7a7a5 536 status_t LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t newValue);
cparata 0:e4f89df7a7a5 537 status_t LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t *value);
cparata 0:e4f89df7a7a5 538
cparata 0:e4f89df7a7a5 539 /*******************************************************************************
cparata 0:e4f89df7a7a5 540 * Register : FIFO_CTRL3
cparata 0:e4f89df7a7a5 541 * Address : 0X08
cparata 0:e4f89df7a7a5 542 * Bit Group Name: DEC_FIFO_XL
cparata 0:e4f89df7a7a5 543 * Permission : RW
cparata 0:e4f89df7a7a5 544 *******************************************************************************/
cparata 0:e4f89df7a7a5 545 typedef enum {
cparata 0:e4f89df7a7a5 546 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DATA_NOT_IN_FIFO =0x00,
cparata 0:e4f89df7a7a5 547 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_NO_DECIMATION =0x01,
cparata 0:e4f89df7a7a5 548 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_2 =0x02,
cparata 0:e4f89df7a7a5 549 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_3 =0x03,
cparata 0:e4f89df7a7a5 550 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_4 =0x04,
cparata 0:e4f89df7a7a5 551 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_8 =0x05,
cparata 0:e4f89df7a7a5 552 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_16 =0x06,
cparata 0:e4f89df7a7a5 553 LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_32 =0x07,
cparata 0:e4f89df7a7a5 554 } LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t;
cparata 0:e4f89df7a7a5 555
cparata 0:e4f89df7a7a5 556 #define LSM6DSL_ACC_GYRO_DEC_FIFO_XL_MASK 0x07
cparata 0:e4f89df7a7a5 557 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t newValue);
cparata 0:e4f89df7a7a5 558 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL_val(void *handle, u16_t newValue);
cparata 0:e4f89df7a7a5 559 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_XL(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t *value);
cparata 0:e4f89df7a7a5 560
cparata 0:e4f89df7a7a5 561 /*******************************************************************************
cparata 0:e4f89df7a7a5 562 * Register : FIFO_CTRL3
cparata 0:e4f89df7a7a5 563 * Address : 0X08
cparata 0:e4f89df7a7a5 564 * Bit Group Name: DEC_FIFO_G
cparata 0:e4f89df7a7a5 565 * Permission : RW
cparata 0:e4f89df7a7a5 566 *******************************************************************************/
cparata 0:e4f89df7a7a5 567 typedef enum {
cparata 0:e4f89df7a7a5 568 LSM6DSL_ACC_GYRO_DEC_FIFO_G_DATA_NOT_IN_FIFO =0x00,
cparata 0:e4f89df7a7a5 569 LSM6DSL_ACC_GYRO_DEC_FIFO_G_NO_DECIMATION =0x08,
cparata 0:e4f89df7a7a5 570 LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_2 =0x10,
cparata 0:e4f89df7a7a5 571 LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_3 =0x18,
cparata 0:e4f89df7a7a5 572 LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_4 =0x20,
cparata 0:e4f89df7a7a5 573 LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_8 =0x28,
cparata 0:e4f89df7a7a5 574 LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_16 =0x30,
cparata 0:e4f89df7a7a5 575 LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_32 =0x38,
cparata 0:e4f89df7a7a5 576 } LSM6DSL_ACC_GYRO_DEC_FIFO_G_t;
cparata 0:e4f89df7a7a5 577
cparata 0:e4f89df7a7a5 578 #define LSM6DSL_ACC_GYRO_DEC_FIFO_G_MASK 0x38
cparata 0:e4f89df7a7a5 579 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_t newValue);
cparata 0:e4f89df7a7a5 580 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_G_val(void *handle, u16_t newValue);
cparata 0:e4f89df7a7a5 581 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_G(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_t *value);
cparata 0:e4f89df7a7a5 582
cparata 0:e4f89df7a7a5 583 /*******************************************************************************
cparata 0:e4f89df7a7a5 584 * Register : FIFO_CTRL4
cparata 0:e4f89df7a7a5 585 * Address : 0X09
cparata 0:e4f89df7a7a5 586 * Bit Group Name: DEC_DS3_FIFO
cparata 0:e4f89df7a7a5 587 * Permission : RW
cparata 0:e4f89df7a7a5 588 *******************************************************************************/
cparata 0:e4f89df7a7a5 589 typedef enum {
cparata 0:e4f89df7a7a5 590 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_DATA_NOT_IN_FIFO =0x00,
cparata 0:e4f89df7a7a5 591 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_NO_DECIMATION =0x01,
cparata 0:e4f89df7a7a5 592 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_DECIMATION_BY_2 =0x02,
cparata 0:e4f89df7a7a5 593 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_DECIMATION_BY_3 =0x03,
cparata 0:e4f89df7a7a5 594 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_DECIMATION_BY_4 =0x04,
cparata 0:e4f89df7a7a5 595 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_DECIMATION_BY_8 =0x05,
cparata 0:e4f89df7a7a5 596 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_DECIMATION_BY_16 =0x06,
cparata 0:e4f89df7a7a5 597 LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_DECIMATION_BY_32 =0x07,
cparata 0:e4f89df7a7a5 598 } LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t;
cparata 0:e4f89df7a7a5 599
cparata 0:e4f89df7a7a5 600 #define LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_MASK 0x07
cparata 0:e4f89df7a7a5 601 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS3(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t newValue);
cparata 0:e4f89df7a7a5 602 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS3(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t *value);
cparata 0:e4f89df7a7a5 603
cparata 0:e4f89df7a7a5 604 /*******************************************************************************
cparata 0:e4f89df7a7a5 605 * Register : FIFO_CTRL4
cparata 0:e4f89df7a7a5 606 * Address : 0X09
cparata 0:e4f89df7a7a5 607 * Bit Group Name: DEC_DS4_FIFO
cparata 0:e4f89df7a7a5 608 * Permission : RW
cparata 0:e4f89df7a7a5 609 *******************************************************************************/
cparata 0:e4f89df7a7a5 610 typedef enum {
cparata 0:e4f89df7a7a5 611 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_DATA_NOT_IN_FIFO =0x00,
cparata 0:e4f89df7a7a5 612 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_NO_DECIMATION =0x08,
cparata 0:e4f89df7a7a5 613 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_DECIMATION_BY_2 =0x10,
cparata 0:e4f89df7a7a5 614 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_DECIMATION_BY_3 =0x18,
cparata 0:e4f89df7a7a5 615 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_DECIMATION_BY_4 =0x20,
cparata 0:e4f89df7a7a5 616 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_DECIMATION_BY_8 =0x28,
cparata 0:e4f89df7a7a5 617 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_DECIMATION_BY_16 =0x30,
cparata 0:e4f89df7a7a5 618 LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_DECIMATION_BY_32 =0x38,
cparata 0:e4f89df7a7a5 619 } LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t;
cparata 0:e4f89df7a7a5 620
cparata 0:e4f89df7a7a5 621 #define LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_MASK 0x38
cparata 0:e4f89df7a7a5 622 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS4(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t newValue);
cparata 0:e4f89df7a7a5 623 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS4(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t *value);
cparata 0:e4f89df7a7a5 624
cparata 0:e4f89df7a7a5 625 /*******************************************************************************
cparata 0:e4f89df7a7a5 626 * Register : FIFO_CTRL4
cparata 0:e4f89df7a7a5 627 * Address : 0X09
cparata 0:e4f89df7a7a5 628 * Bit Group Name: HI_DATA_ONLY
cparata 0:e4f89df7a7a5 629 * Permission : RW
cparata 0:e4f89df7a7a5 630 *******************************************************************************/
cparata 0:e4f89df7a7a5 631 typedef enum {
cparata 0:e4f89df7a7a5 632 LSM6DSL_ACC_GYRO_HI_DATA_ONLY_DISABLED =0x00,
cparata 0:e4f89df7a7a5 633 LSM6DSL_ACC_GYRO_HI_DATA_ONLY_ENABLED =0x40,
cparata 0:e4f89df7a7a5 634 } LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t;
cparata 0:e4f89df7a7a5 635
cparata 0:e4f89df7a7a5 636 #define LSM6DSL_ACC_GYRO_HI_DATA_ONLY_MASK 0x40
cparata 0:e4f89df7a7a5 637 status_t LSM6DSL_ACC_GYRO_W_HI_DATA_ONLY(void *handle, LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t newValue);
cparata 0:e4f89df7a7a5 638 status_t LSM6DSL_ACC_GYRO_R_HI_DATA_ONLY(void *handle, LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t *value);
cparata 0:e4f89df7a7a5 639
cparata 0:e4f89df7a7a5 640 /*******************************************************************************
cparata 0:e4f89df7a7a5 641 * Register : FIFO_CTRL4
cparata 0:e4f89df7a7a5 642 * Address : 0X09
cparata 0:e4f89df7a7a5 643 * Bit Group Name: STOP_ON_FTH
cparata 0:e4f89df7a7a5 644 * Permission : RW
cparata 0:e4f89df7a7a5 645 *******************************************************************************/
cparata 0:e4f89df7a7a5 646 typedef enum {
cparata 0:e4f89df7a7a5 647 LSM6DSL_ACC_GYRO_STOP_ON_FTH_DISABLED =0x00,
cparata 0:e4f89df7a7a5 648 LSM6DSL_ACC_GYRO_STOP_ON_FTH_ENABLED =0x80,
cparata 0:e4f89df7a7a5 649 } LSM6DSL_ACC_GYRO_STOP_ON_FTH_t;
cparata 0:e4f89df7a7a5 650
cparata 0:e4f89df7a7a5 651 #define LSM6DSL_ACC_GYRO_STOP_ON_FTH_MASK 0x80
cparata 0:e4f89df7a7a5 652 status_t LSM6DSL_ACC_GYRO_W_STOP_ON_FTH(void *handle, LSM6DSL_ACC_GYRO_STOP_ON_FTH_t newValue);
cparata 0:e4f89df7a7a5 653 status_t LSM6DSL_ACC_GYRO_R_STOP_ON_FTH(void *handle, LSM6DSL_ACC_GYRO_STOP_ON_FTH_t *value);
cparata 0:e4f89df7a7a5 654
cparata 0:e4f89df7a7a5 655 /*******************************************************************************
cparata 0:e4f89df7a7a5 656 * Register : FIFO_CTRL5
cparata 0:e4f89df7a7a5 657 * Address : 0X0A
cparata 0:e4f89df7a7a5 658 * Bit Group Name: FIFO_MODE
cparata 0:e4f89df7a7a5 659 * Permission : RW
cparata 0:e4f89df7a7a5 660 *******************************************************************************/
cparata 0:e4f89df7a7a5 661 typedef enum {
cparata 0:e4f89df7a7a5 662 LSM6DSL_ACC_GYRO_FIFO_MODE_BYPASS =0x00,
cparata 0:e4f89df7a7a5 663 LSM6DSL_ACC_GYRO_FIFO_MODE_FIFO =0x01,
cparata 0:e4f89df7a7a5 664 LSM6DSL_ACC_GYRO_FIFO_MODE_STREAM =0x02,
cparata 0:e4f89df7a7a5 665 LSM6DSL_ACC_GYRO_FIFO_MODE_STF =0x03,
cparata 0:e4f89df7a7a5 666 LSM6DSL_ACC_GYRO_FIFO_MODE_BTS =0x04,
cparata 0:e4f89df7a7a5 667 LSM6DSL_ACC_GYRO_FIFO_MODE_DYN_STREAM =0x05,
cparata 0:e4f89df7a7a5 668 LSM6DSL_ACC_GYRO_FIFO_MODE_DYN_STREAM_2 =0x06,
cparata 0:e4f89df7a7a5 669 LSM6DSL_ACC_GYRO_FIFO_MODE_BTF =0x07,
cparata 0:e4f89df7a7a5 670 } LSM6DSL_ACC_GYRO_FIFO_MODE_t;
cparata 0:e4f89df7a7a5 671
cparata 0:e4f89df7a7a5 672 #define LSM6DSL_ACC_GYRO_FIFO_MODE_MASK 0x07
cparata 0:e4f89df7a7a5 673 status_t LSM6DSL_ACC_GYRO_W_FIFO_MODE(void *handle, LSM6DSL_ACC_GYRO_FIFO_MODE_t newValue);
cparata 0:e4f89df7a7a5 674 status_t LSM6DSL_ACC_GYRO_R_FIFO_MODE(void *handle, LSM6DSL_ACC_GYRO_FIFO_MODE_t *value);
cparata 0:e4f89df7a7a5 675
cparata 0:e4f89df7a7a5 676 /*******************************************************************************
cparata 0:e4f89df7a7a5 677 * Register : FIFO_CTRL5
cparata 0:e4f89df7a7a5 678 * Address : 0X0A
cparata 0:e4f89df7a7a5 679 * Bit Group Name: ODR_FIFO
cparata 0:e4f89df7a7a5 680 * Permission : RW
cparata 0:e4f89df7a7a5 681 *******************************************************************************/
cparata 0:e4f89df7a7a5 682 typedef enum {
cparata 0:e4f89df7a7a5 683 LSM6DSL_ACC_GYRO_ODR_FIFO_10Hz =0x08,
cparata 0:e4f89df7a7a5 684 LSM6DSL_ACC_GYRO_ODR_FIFO_25Hz =0x10,
cparata 0:e4f89df7a7a5 685 LSM6DSL_ACC_GYRO_ODR_FIFO_50Hz =0x18,
cparata 0:e4f89df7a7a5 686 LSM6DSL_ACC_GYRO_ODR_FIFO_100Hz =0x20,
cparata 0:e4f89df7a7a5 687 LSM6DSL_ACC_GYRO_ODR_FIFO_200Hz =0x28,
cparata 0:e4f89df7a7a5 688 LSM6DSL_ACC_GYRO_ODR_FIFO_400Hz =0x30,
cparata 0:e4f89df7a7a5 689 LSM6DSL_ACC_GYRO_ODR_FIFO_800Hz =0x38,
cparata 0:e4f89df7a7a5 690 LSM6DSL_ACC_GYRO_ODR_FIFO_1600Hz =0x40,
cparata 0:e4f89df7a7a5 691 LSM6DSL_ACC_GYRO_ODR_FIFO_3300Hz =0x48,
cparata 0:e4f89df7a7a5 692 LSM6DSL_ACC_GYRO_ODR_FIFO_6600Hz =0x50,
cparata 0:e4f89df7a7a5 693 LSM6DSL_ACC_GYRO_ODR_FIFO_13300Hz =0x58,
cparata 0:e4f89df7a7a5 694 } LSM6DSL_ACC_GYRO_ODR_FIFO_t;
cparata 0:e4f89df7a7a5 695
cparata 0:e4f89df7a7a5 696 #define LSM6DSL_ACC_GYRO_ODR_FIFO_MASK 0x78
cparata 0:e4f89df7a7a5 697 status_t LSM6DSL_ACC_GYRO_W_ODR_FIFO(void *handle, LSM6DSL_ACC_GYRO_ODR_FIFO_t newValue);
cparata 0:e4f89df7a7a5 698 status_t LSM6DSL_ACC_GYRO_R_ODR_FIFO(void *handle, LSM6DSL_ACC_GYRO_ODR_FIFO_t *value);
cparata 0:e4f89df7a7a5 699
cparata 0:e4f89df7a7a5 700 /*******************************************************************************
cparata 0:e4f89df7a7a5 701 * Register : DRDY_PULSE_CFG_G
cparata 0:e4f89df7a7a5 702 * Address : 0X0B
cparata 0:e4f89df7a7a5 703 * Bit Group Name: DRDY_PULSE
cparata 0:e4f89df7a7a5 704 * Permission : RW
cparata 0:e4f89df7a7a5 705 *******************************************************************************/
cparata 0:e4f89df7a7a5 706 typedef enum {
cparata 0:e4f89df7a7a5 707 LSM6DSL_ACC_GYRO_DRDY_LATCH =0x00,
cparata 0:e4f89df7a7a5 708 LSM6DSL_ACC_GYRO_DRDY_PULSE =0x80,
cparata 0:e4f89df7a7a5 709 } LSM6DSL_ACC_GYRO_DRDY_PULSE_t;
cparata 0:e4f89df7a7a5 710
cparata 0:e4f89df7a7a5 711 #define LSM6DSL_ACC_GYRO_DRDY_PULSE_MASK 0x80
cparata 0:e4f89df7a7a5 712 status_t LSM6DSL_ACC_GYRO_W_DRDY_PULSE(void *handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_t newValue);
cparata 0:e4f89df7a7a5 713 status_t LSM6DSL_ACC_GYRO_R_DRDY_PULSE(void *handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_t *value);
cparata 0:e4f89df7a7a5 714
cparata 0:e4f89df7a7a5 715 /*******************************************************************************
cparata 0:e4f89df7a7a5 716 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 717 * Address : 0X0D
cparata 0:e4f89df7a7a5 718 * Bit Group Name: INT1_DRDY_XL
cparata 0:e4f89df7a7a5 719 * Permission : RW
cparata 0:e4f89df7a7a5 720 *******************************************************************************/
cparata 0:e4f89df7a7a5 721 typedef enum {
cparata 0:e4f89df7a7a5 722 LSM6DSL_ACC_GYRO_INT1_DRDY_XL_DISABLED =0x00,
cparata 0:e4f89df7a7a5 723 LSM6DSL_ACC_GYRO_INT1_DRDY_XL_ENABLED =0x01,
cparata 0:e4f89df7a7a5 724 } LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t;
cparata 0:e4f89df7a7a5 725
cparata 0:e4f89df7a7a5 726 #define LSM6DSL_ACC_GYRO_INT1_DRDY_XL_MASK 0x01
cparata 0:e4f89df7a7a5 727 status_t LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t newValue);
cparata 0:e4f89df7a7a5 728 status_t LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t *value);
cparata 0:e4f89df7a7a5 729
cparata 0:e4f89df7a7a5 730 /*******************************************************************************
cparata 0:e4f89df7a7a5 731 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 732 * Address : 0X0D
cparata 0:e4f89df7a7a5 733 * Bit Group Name: INT1_DRDY_G
cparata 0:e4f89df7a7a5 734 * Permission : RW
cparata 0:e4f89df7a7a5 735 *******************************************************************************/
cparata 0:e4f89df7a7a5 736 typedef enum {
cparata 0:e4f89df7a7a5 737 LSM6DSL_ACC_GYRO_INT1_DRDY_G_DISABLED =0x00,
cparata 0:e4f89df7a7a5 738 LSM6DSL_ACC_GYRO_INT1_DRDY_G_ENABLED =0x02,
cparata 0:e4f89df7a7a5 739 } LSM6DSL_ACC_GYRO_INT1_DRDY_G_t;
cparata 0:e4f89df7a7a5 740
cparata 0:e4f89df7a7a5 741 #define LSM6DSL_ACC_GYRO_INT1_DRDY_G_MASK 0x02
cparata 0:e4f89df7a7a5 742 status_t LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_G_t newValue);
cparata 0:e4f89df7a7a5 743 status_t LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_G_t *value);
cparata 0:e4f89df7a7a5 744
cparata 0:e4f89df7a7a5 745 /*******************************************************************************
cparata 0:e4f89df7a7a5 746 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 747 * Address : 0X0D
cparata 0:e4f89df7a7a5 748 * Bit Group Name: INT1_BOOT
cparata 0:e4f89df7a7a5 749 * Permission : RW
cparata 0:e4f89df7a7a5 750 *******************************************************************************/
cparata 0:e4f89df7a7a5 751 typedef enum {
cparata 0:e4f89df7a7a5 752 LSM6DSL_ACC_GYRO_INT1_BOOT_DISABLED =0x00,
cparata 0:e4f89df7a7a5 753 LSM6DSL_ACC_GYRO_INT1_BOOT_ENABLED =0x04,
cparata 0:e4f89df7a7a5 754 } LSM6DSL_ACC_GYRO_INT1_BOOT_t;
cparata 0:e4f89df7a7a5 755
cparata 0:e4f89df7a7a5 756 #define LSM6DSL_ACC_GYRO_INT1_BOOT_MASK 0x04
cparata 0:e4f89df7a7a5 757 status_t LSM6DSL_ACC_GYRO_W_BOOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_BOOT_t newValue);
cparata 0:e4f89df7a7a5 758 status_t LSM6DSL_ACC_GYRO_R_BOOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_BOOT_t *value);
cparata 0:e4f89df7a7a5 759
cparata 0:e4f89df7a7a5 760 /*******************************************************************************
cparata 0:e4f89df7a7a5 761 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 762 * Address : 0X0D
cparata 0:e4f89df7a7a5 763 * Bit Group Name: INT1_FTH
cparata 0:e4f89df7a7a5 764 * Permission : RW
cparata 0:e4f89df7a7a5 765 *******************************************************************************/
cparata 0:e4f89df7a7a5 766 typedef enum {
cparata 0:e4f89df7a7a5 767 LSM6DSL_ACC_GYRO_INT1_FTH_DISABLED =0x00,
cparata 0:e4f89df7a7a5 768 LSM6DSL_ACC_GYRO_INT1_FTH_ENABLED =0x08,
cparata 0:e4f89df7a7a5 769 } LSM6DSL_ACC_GYRO_INT1_FTH_t;
cparata 0:e4f89df7a7a5 770
cparata 0:e4f89df7a7a5 771 #define LSM6DSL_ACC_GYRO_INT1_FTH_MASK 0x08
cparata 0:e4f89df7a7a5 772 status_t LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FTH_t newValue);
cparata 0:e4f89df7a7a5 773 status_t LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FTH_t *value);
cparata 0:e4f89df7a7a5 774
cparata 0:e4f89df7a7a5 775 /*******************************************************************************
cparata 0:e4f89df7a7a5 776 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 777 * Address : 0X0D
cparata 0:e4f89df7a7a5 778 * Bit Group Name: INT1_OVR
cparata 0:e4f89df7a7a5 779 * Permission : RW
cparata 0:e4f89df7a7a5 780 *******************************************************************************/
cparata 0:e4f89df7a7a5 781 typedef enum {
cparata 0:e4f89df7a7a5 782 LSM6DSL_ACC_GYRO_INT1_OVR_DISABLED =0x00,
cparata 0:e4f89df7a7a5 783 LSM6DSL_ACC_GYRO_INT1_OVR_ENABLED =0x10,
cparata 0:e4f89df7a7a5 784 } LSM6DSL_ACC_GYRO_INT1_OVR_t;
cparata 0:e4f89df7a7a5 785
cparata 0:e4f89df7a7a5 786 #define LSM6DSL_ACC_GYRO_INT1_OVR_MASK 0x10
cparata 0:e4f89df7a7a5 787 status_t LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_OVR_t newValue);
cparata 0:e4f89df7a7a5 788 status_t LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_OVR_t *value);
cparata 0:e4f89df7a7a5 789
cparata 0:e4f89df7a7a5 790 /*******************************************************************************
cparata 0:e4f89df7a7a5 791 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 792 * Address : 0X0D
cparata 0:e4f89df7a7a5 793 * Bit Group Name: INT1_FULL_FLAG
cparata 0:e4f89df7a7a5 794 * Permission : RW
cparata 0:e4f89df7a7a5 795 *******************************************************************************/
cparata 0:e4f89df7a7a5 796 typedef enum {
cparata 0:e4f89df7a7a5 797 LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_DISABLED =0x00,
cparata 0:e4f89df7a7a5 798 LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_ENABLED =0x20,
cparata 0:e4f89df7a7a5 799 } LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t;
cparata 0:e4f89df7a7a5 800
cparata 0:e4f89df7a7a5 801 #define LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_MASK 0x20
cparata 0:e4f89df7a7a5 802 status_t LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t newValue);
cparata 0:e4f89df7a7a5 803 status_t LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t *value);
cparata 0:e4f89df7a7a5 804
cparata 0:e4f89df7a7a5 805 /*******************************************************************************
cparata 0:e4f89df7a7a5 806 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 807 * Address : 0X0D
cparata 0:e4f89df7a7a5 808 * Bit Group Name: INT1_SIGN_MOT
cparata 0:e4f89df7a7a5 809 * Permission : RW
cparata 0:e4f89df7a7a5 810 *******************************************************************************/
cparata 0:e4f89df7a7a5 811 typedef enum {
cparata 0:e4f89df7a7a5 812 LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_DISABLED =0x00,
cparata 0:e4f89df7a7a5 813 LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_ENABLED =0x40,
cparata 0:e4f89df7a7a5 814 } LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t;
cparata 0:e4f89df7a7a5 815
cparata 0:e4f89df7a7a5 816 #define LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_MASK 0x40
cparata 0:e4f89df7a7a5 817 status_t LSM6DSL_ACC_GYRO_W_SIGN_MOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t newValue);
cparata 0:e4f89df7a7a5 818 status_t LSM6DSL_ACC_GYRO_R_SIGN_MOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t *value);
cparata 0:e4f89df7a7a5 819
cparata 0:e4f89df7a7a5 820 /*******************************************************************************
cparata 0:e4f89df7a7a5 821 * Register : INT1_CTRL
cparata 0:e4f89df7a7a5 822 * Address : 0X0D
cparata 0:e4f89df7a7a5 823 * Bit Group Name: INT1_STEP_DETECTOR
cparata 0:e4f89df7a7a5 824 * Permission : RW
cparata 0:e4f89df7a7a5 825 *******************************************************************************/
cparata 0:e4f89df7a7a5 826 typedef enum {
cparata 0:e4f89df7a7a5 827 LSM6DSL_ACC_GYRO_INT1_PEDO_DISABLED =0x00,
cparata 0:e4f89df7a7a5 828 LSM6DSL_ACC_GYRO_INT1_PEDO_ENABLED =0x80,
cparata 0:e4f89df7a7a5 829 } LSM6DSL_ACC_GYRO_INT1_PEDO_t;
cparata 0:e4f89df7a7a5 830
cparata 0:e4f89df7a7a5 831 #define LSM6DSL_ACC_GYRO_INT1_PEDO_MASK 0x80
cparata 0:e4f89df7a7a5 832 status_t LSM6DSL_ACC_GYRO_W_STEP_DET_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_PEDO_t newValue);
cparata 0:e4f89df7a7a5 833 status_t LSM6DSL_ACC_GYRO_R_STEP_DET_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_PEDO_t *value);
cparata 0:e4f89df7a7a5 834
cparata 0:e4f89df7a7a5 835 /*******************************************************************************
cparata 0:e4f89df7a7a5 836 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 837 * Address : 0X0E
cparata 0:e4f89df7a7a5 838 * Bit Group Name: INT2_DRDY_XL
cparata 0:e4f89df7a7a5 839 * Permission : RW
cparata 0:e4f89df7a7a5 840 *******************************************************************************/
cparata 0:e4f89df7a7a5 841 typedef enum {
cparata 0:e4f89df7a7a5 842 LSM6DSL_ACC_GYRO_INT2_DRDY_XL_DISABLED =0x00,
cparata 0:e4f89df7a7a5 843 LSM6DSL_ACC_GYRO_INT2_DRDY_XL_ENABLED =0x01,
cparata 0:e4f89df7a7a5 844 } LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t;
cparata 0:e4f89df7a7a5 845
cparata 0:e4f89df7a7a5 846 #define LSM6DSL_ACC_GYRO_INT2_DRDY_XL_MASK 0x01
cparata 0:e4f89df7a7a5 847 status_t LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t newValue);
cparata 0:e4f89df7a7a5 848 status_t LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t *value);
cparata 0:e4f89df7a7a5 849
cparata 0:e4f89df7a7a5 850 /*******************************************************************************
cparata 0:e4f89df7a7a5 851 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 852 * Address : 0X0E
cparata 0:e4f89df7a7a5 853 * Bit Group Name: INT2_DRDY_G
cparata 0:e4f89df7a7a5 854 * Permission : RW
cparata 0:e4f89df7a7a5 855 *******************************************************************************/
cparata 0:e4f89df7a7a5 856 typedef enum {
cparata 0:e4f89df7a7a5 857 LSM6DSL_ACC_GYRO_INT2_DRDY_G_DISABLED =0x00,
cparata 0:e4f89df7a7a5 858 LSM6DSL_ACC_GYRO_INT2_DRDY_G_ENABLED =0x02,
cparata 0:e4f89df7a7a5 859 } LSM6DSL_ACC_GYRO_INT2_DRDY_G_t;
cparata 0:e4f89df7a7a5 860
cparata 0:e4f89df7a7a5 861 #define LSM6DSL_ACC_GYRO_INT2_DRDY_G_MASK 0x02
cparata 0:e4f89df7a7a5 862 status_t LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_G_t newValue);
cparata 0:e4f89df7a7a5 863 status_t LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_G_t *value);
cparata 0:e4f89df7a7a5 864
cparata 0:e4f89df7a7a5 865 /*******************************************************************************
cparata 0:e4f89df7a7a5 866 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 867 * Address : 0X0E
cparata 0:e4f89df7a7a5 868 * Bit Group Name: INT2_DRDY_TEMP
cparata 0:e4f89df7a7a5 869 * Permission : RW
cparata 0:e4f89df7a7a5 870 *******************************************************************************/
cparata 0:e4f89df7a7a5 871 typedef enum {
cparata 0:e4f89df7a7a5 872 LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 873 LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_ENABLED =0x04,
cparata 0:e4f89df7a7a5 874 } LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t;
cparata 0:e4f89df7a7a5 875
cparata 0:e4f89df7a7a5 876 #define LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_MASK 0x04
cparata 0:e4f89df7a7a5 877 status_t LSM6DSL_ACC_GYRO_W_DRDY_TEMP_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t newValue);
cparata 0:e4f89df7a7a5 878 status_t LSM6DSL_ACC_GYRO_R_DRDY_TEMP_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t *value);
cparata 0:e4f89df7a7a5 879
cparata 0:e4f89df7a7a5 880
cparata 0:e4f89df7a7a5 881 /*******************************************************************************
cparata 0:e4f89df7a7a5 882 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 883 * Address : 0X0E
cparata 0:e4f89df7a7a5 884 * Bit Group Name: INT2_FTH
cparata 0:e4f89df7a7a5 885 * Permission : RW
cparata 0:e4f89df7a7a5 886 *******************************************************************************/
cparata 0:e4f89df7a7a5 887 typedef enum {
cparata 0:e4f89df7a7a5 888 LSM6DSL_ACC_GYRO_INT2_FTH_DISABLED =0x00,
cparata 0:e4f89df7a7a5 889 LSM6DSL_ACC_GYRO_INT2_FTH_ENABLED =0x08,
cparata 0:e4f89df7a7a5 890 } LSM6DSL_ACC_GYRO_INT2_FTH_t;
cparata 0:e4f89df7a7a5 891
cparata 0:e4f89df7a7a5 892 #define LSM6DSL_ACC_GYRO_INT2_FTH_MASK 0x08
cparata 0:e4f89df7a7a5 893 status_t LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FTH_t newValue);
cparata 0:e4f89df7a7a5 894 status_t LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FTH_t *value);
cparata 0:e4f89df7a7a5 895
cparata 0:e4f89df7a7a5 896 /*******************************************************************************
cparata 0:e4f89df7a7a5 897 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 898 * Address : 0X0E
cparata 0:e4f89df7a7a5 899 * Bit Group Name: INT2_OVR
cparata 0:e4f89df7a7a5 900 * Permission : RW
cparata 0:e4f89df7a7a5 901 *******************************************************************************/
cparata 0:e4f89df7a7a5 902 typedef enum {
cparata 0:e4f89df7a7a5 903 LSM6DSL_ACC_GYRO_INT2_OVR_DISABLED =0x00,
cparata 0:e4f89df7a7a5 904 LSM6DSL_ACC_GYRO_INT2_OVR_ENABLED =0x10,
cparata 0:e4f89df7a7a5 905 } LSM6DSL_ACC_GYRO_INT2_OVR_t;
cparata 0:e4f89df7a7a5 906
cparata 0:e4f89df7a7a5 907 #define LSM6DSL_ACC_GYRO_INT2_OVR_MASK 0x10
cparata 0:e4f89df7a7a5 908 status_t LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_OVR_t newValue);
cparata 0:e4f89df7a7a5 909 status_t LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_OVR_t *value);
cparata 0:e4f89df7a7a5 910
cparata 0:e4f89df7a7a5 911 /*******************************************************************************
cparata 0:e4f89df7a7a5 912 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 913 * Address : 0X0E
cparata 0:e4f89df7a7a5 914 * Bit Group Name: INT2_FULL_FLAG
cparata 0:e4f89df7a7a5 915 * Permission : RW
cparata 0:e4f89df7a7a5 916 *******************************************************************************/
cparata 0:e4f89df7a7a5 917 typedef enum {
cparata 0:e4f89df7a7a5 918 LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_DISABLED =0x00,
cparata 0:e4f89df7a7a5 919 LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_ENABLED =0x20,
cparata 0:e4f89df7a7a5 920 } LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t;
cparata 0:e4f89df7a7a5 921
cparata 0:e4f89df7a7a5 922 #define LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_MASK 0x20
cparata 0:e4f89df7a7a5 923 status_t LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t newValue);
cparata 0:e4f89df7a7a5 924 status_t LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t *value);
cparata 0:e4f89df7a7a5 925
cparata 0:e4f89df7a7a5 926 /*******************************************************************************
cparata 0:e4f89df7a7a5 927 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 928 * Address : 0X0E
cparata 0:e4f89df7a7a5 929 * Bit Group Name: INT2_STEP_COUNT_OV
cparata 0:e4f89df7a7a5 930 * Permission : RW
cparata 0:e4f89df7a7a5 931 *******************************************************************************/
cparata 0:e4f89df7a7a5 932 typedef enum {
cparata 0:e4f89df7a7a5 933 LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_DISABLED =0x00,
cparata 0:e4f89df7a7a5 934 LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_ENABLED =0x40,
cparata 0:e4f89df7a7a5 935 } LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t;
cparata 0:e4f89df7a7a5 936
cparata 0:e4f89df7a7a5 937 #define LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_MASK 0x40
cparata 0:e4f89df7a7a5 938 status_t LSM6DSL_ACC_GYRO_W_STEP_COUNT_OV_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t newValue);
cparata 0:e4f89df7a7a5 939 status_t LSM6DSL_ACC_GYRO_R_STEP_COUNT_OV_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t *value);
cparata 0:e4f89df7a7a5 940
cparata 0:e4f89df7a7a5 941 /*******************************************************************************
cparata 0:e4f89df7a7a5 942 * Register : INT2_CTRL
cparata 0:e4f89df7a7a5 943 * Address : 0X0E
cparata 0:e4f89df7a7a5 944 * Bit Group Name: INT2_STEP_DELTA
cparata 0:e4f89df7a7a5 945 * Permission : RW
cparata 0:e4f89df7a7a5 946 *******************************************************************************/
cparata 0:e4f89df7a7a5 947 typedef enum {
cparata 0:e4f89df7a7a5 948 LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_DISABLED =0x00,
cparata 0:e4f89df7a7a5 949 LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_ENABLED =0x80,
cparata 0:e4f89df7a7a5 950 } LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t;
cparata 0:e4f89df7a7a5 951
cparata 0:e4f89df7a7a5 952 #define LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_MASK 0x80
cparata 0:e4f89df7a7a5 953 status_t LSM6DSL_ACC_GYRO_W_STEP_DELTA_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t newValue);
cparata 0:e4f89df7a7a5 954 status_t LSM6DSL_ACC_GYRO_R_STEP_DELTA_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t *value);
cparata 0:e4f89df7a7a5 955
cparata 0:e4f89df7a7a5 956 /*******************************************************************************
cparata 0:e4f89df7a7a5 957 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 958 * Address : 0X12
cparata 0:e4f89df7a7a5 959 * Bit Group Name: SW_RESET
cparata 0:e4f89df7a7a5 960 * Permission : RW
cparata 0:e4f89df7a7a5 961 *******************************************************************************/
cparata 0:e4f89df7a7a5 962 typedef enum {
cparata 0:e4f89df7a7a5 963 LSM6DSL_ACC_GYRO_SW_RESET_NORMAL_MODE =0x00,
cparata 0:e4f89df7a7a5 964 LSM6DSL_ACC_GYRO_SW_RESET_RESET_DEVICE =0x01,
cparata 0:e4f89df7a7a5 965 } LSM6DSL_ACC_GYRO_SW_RESET_t;
cparata 0:e4f89df7a7a5 966
cparata 0:e4f89df7a7a5 967 #define LSM6DSL_ACC_GYRO_SW_RESET_MASK 0x01
cparata 0:e4f89df7a7a5 968 status_t LSM6DSL_ACC_GYRO_W_SW_RESET(void *handle, LSM6DSL_ACC_GYRO_SW_RESET_t newValue);
cparata 0:e4f89df7a7a5 969 status_t LSM6DSL_ACC_GYRO_R_SW_RESET(void *handle, LSM6DSL_ACC_GYRO_SW_RESET_t *value);
cparata 0:e4f89df7a7a5 970
cparata 0:e4f89df7a7a5 971
cparata 0:e4f89df7a7a5 972 /*******************************************************************************
cparata 0:e4f89df7a7a5 973 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 974 * Address : 0X12
cparata 0:e4f89df7a7a5 975 * Bit Group Name: IF_INC
cparata 0:e4f89df7a7a5 976 * Permission : RW
cparata 0:e4f89df7a7a5 977 *******************************************************************************/
cparata 0:e4f89df7a7a5 978 typedef enum {
cparata 0:e4f89df7a7a5 979 LSM6DSL_ACC_GYRO_IF_INC_DISABLED =0x00,
cparata 0:e4f89df7a7a5 980 LSM6DSL_ACC_GYRO_IF_INC_ENABLED =0x04,
cparata 0:e4f89df7a7a5 981 } LSM6DSL_ACC_GYRO_IF_INC_t;
cparata 0:e4f89df7a7a5 982
cparata 0:e4f89df7a7a5 983 #define LSM6DSL_ACC_GYRO_IF_INC_MASK 0x04
cparata 0:e4f89df7a7a5 984 status_t LSM6DSL_ACC_GYRO_W_IF_Addr_Incr(void *handle, LSM6DSL_ACC_GYRO_IF_INC_t newValue);
cparata 0:e4f89df7a7a5 985 status_t LSM6DSL_ACC_GYRO_R_IF_Addr_Incr(void *handle, LSM6DSL_ACC_GYRO_IF_INC_t *value);
cparata 0:e4f89df7a7a5 986
cparata 0:e4f89df7a7a5 987 /*******************************************************************************
cparata 0:e4f89df7a7a5 988 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 989 * Address : 0X12
cparata 0:e4f89df7a7a5 990 * Bit Group Name: SIM
cparata 0:e4f89df7a7a5 991 * Permission : RW
cparata 0:e4f89df7a7a5 992 *******************************************************************************/
cparata 0:e4f89df7a7a5 993 typedef enum {
cparata 0:e4f89df7a7a5 994 LSM6DSL_ACC_GYRO_SIM_4_WIRE =0x00,
cparata 0:e4f89df7a7a5 995 LSM6DSL_ACC_GYRO_SIM_3_WIRE =0x08,
cparata 0:e4f89df7a7a5 996 } LSM6DSL_ACC_GYRO_SIM_t;
cparata 0:e4f89df7a7a5 997
cparata 0:e4f89df7a7a5 998 #define LSM6DSL_ACC_GYRO_SIM_MASK 0x08
cparata 0:e4f89df7a7a5 999 status_t LSM6DSL_ACC_GYRO_W_SPI_Mode(void *handle, LSM6DSL_ACC_GYRO_SIM_t newValue);
cparata 0:e4f89df7a7a5 1000 status_t LSM6DSL_ACC_GYRO_R_SPI_Mode(void *handle, LSM6DSL_ACC_GYRO_SIM_t *value);
cparata 0:e4f89df7a7a5 1001
cparata 0:e4f89df7a7a5 1002 /*******************************************************************************
cparata 0:e4f89df7a7a5 1003 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 1004 * Address : 0X12
cparata 0:e4f89df7a7a5 1005 * Bit Group Name: PP_OD
cparata 0:e4f89df7a7a5 1006 * Permission : RW
cparata 0:e4f89df7a7a5 1007 *******************************************************************************/
cparata 0:e4f89df7a7a5 1008 typedef enum {
cparata 0:e4f89df7a7a5 1009 LSM6DSL_ACC_GYRO_PP_OD_PUSH_PULL =0x00,
cparata 0:e4f89df7a7a5 1010 LSM6DSL_ACC_GYRO_PP_OD_OPEN_DRAIN =0x10,
cparata 0:e4f89df7a7a5 1011 } LSM6DSL_ACC_GYRO_PP_OD_t;
cparata 0:e4f89df7a7a5 1012
cparata 0:e4f89df7a7a5 1013 #define LSM6DSL_ACC_GYRO_PP_OD_MASK 0x10
cparata 0:e4f89df7a7a5 1014 status_t LSM6DSL_ACC_GYRO_W_PadSel(void *handle, LSM6DSL_ACC_GYRO_PP_OD_t newValue);
cparata 0:e4f89df7a7a5 1015 status_t LSM6DSL_ACC_GYRO_R_PadSel(void *handle, LSM6DSL_ACC_GYRO_PP_OD_t *value);
cparata 0:e4f89df7a7a5 1016
cparata 0:e4f89df7a7a5 1017 /*******************************************************************************
cparata 0:e4f89df7a7a5 1018 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 1019 * Address : 0X12
cparata 0:e4f89df7a7a5 1020 * Bit Group Name: H_LACTIVE
cparata 0:e4f89df7a7a5 1021 * Permission : RW
cparata 0:e4f89df7a7a5 1022 *******************************************************************************/
cparata 0:e4f89df7a7a5 1023 typedef enum {
cparata 0:e4f89df7a7a5 1024 LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_ACTIVE_HI =0x00,
cparata 0:e4f89df7a7a5 1025 LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_ACTIVE_LO =0x20,
cparata 0:e4f89df7a7a5 1026 } LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t;
cparata 0:e4f89df7a7a5 1027
cparata 0:e4f89df7a7a5 1028 #define LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_MASK 0x20
cparata 0:e4f89df7a7a5 1029 status_t LSM6DSL_ACC_GYRO_W_INT_ACT_LEVEL(void *handle, LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t newValue);
cparata 0:e4f89df7a7a5 1030 status_t LSM6DSL_ACC_GYRO_R_INT_ACT_LEVEL(void *handle, LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t *value);
cparata 0:e4f89df7a7a5 1031
cparata 0:e4f89df7a7a5 1032
cparata 0:e4f89df7a7a5 1033 /*******************************************************************************
cparata 0:e4f89df7a7a5 1034 * Register : CTRL3_C
cparata 0:e4f89df7a7a5 1035 * Address : 0X12
cparata 0:e4f89df7a7a5 1036 * Bit Group Name: BOOT
cparata 0:e4f89df7a7a5 1037 * Permission : RW
cparata 0:e4f89df7a7a5 1038 *******************************************************************************/
cparata 0:e4f89df7a7a5 1039 typedef enum {
cparata 0:e4f89df7a7a5 1040 LSM6DSL_ACC_GYRO_BOOT_NORMAL_MODE =0x00,
cparata 0:e4f89df7a7a5 1041 LSM6DSL_ACC_GYRO_BOOT_REBOOT_MODE =0x80,
cparata 0:e4f89df7a7a5 1042 } LSM6DSL_ACC_GYRO_BOOT_t;
cparata 0:e4f89df7a7a5 1043
cparata 0:e4f89df7a7a5 1044 #define LSM6DSL_ACC_GYRO_BOOT_MASK 0x80
cparata 0:e4f89df7a7a5 1045 status_t LSM6DSL_ACC_GYRO_W_BOOT(void *handle, LSM6DSL_ACC_GYRO_BOOT_t newValue);
cparata 0:e4f89df7a7a5 1046 status_t LSM6DSL_ACC_GYRO_R_BOOT(void *handle, LSM6DSL_ACC_GYRO_BOOT_t *value);
cparata 0:e4f89df7a7a5 1047
cparata 0:e4f89df7a7a5 1048 /*******************************************************************************
cparata 0:e4f89df7a7a5 1049 * Register : CTRL4_C
cparata 0:e4f89df7a7a5 1050 * Address : 0X13
cparata 0:e4f89df7a7a5 1051 * Bit Group Name: LPF1_SEL_G
cparata 0:e4f89df7a7a5 1052 * Permission : RW
cparata 0:e4f89df7a7a5 1053 *******************************************************************************/
cparata 0:e4f89df7a7a5 1054 typedef enum {
cparata 0:e4f89df7a7a5 1055 LSM6DSL_ACC_GYRO_MODE3_LPF1_G_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1056 LSM6DSL_ACC_GYRO_MODE3_LPF1_G_ENABLED =0x02,
cparata 0:e4f89df7a7a5 1057 } LSM6DSL_ACC_GYRO_LPF1_SEL_G_t;
cparata 0:e4f89df7a7a5 1058
cparata 0:e4f89df7a7a5 1059 #define LSM6DSL_ACC_GYRO_LPF1_SEL_G_MASK 0x02
cparata 0:e4f89df7a7a5 1060 status_t LSM6DSL_ACC_GYRO_W_LPF1_SEL_G(void *handle, LSM6DSL_ACC_GYRO_LPF1_SEL_G_t newValue);
cparata 0:e4f89df7a7a5 1061 status_t LSM6DSL_ACC_GYRO_R_LPF1_SEL_G(void *handle, LSM6DSL_ACC_GYRO_LPF1_SEL_G_t *value);
cparata 0:e4f89df7a7a5 1062
cparata 0:e4f89df7a7a5 1063 /*******************************************************************************
cparata 0:e4f89df7a7a5 1064 * Register : CTRL4_C
cparata 0:e4f89df7a7a5 1065 * Address : 0X13
cparata 0:e4f89df7a7a5 1066 * Bit Group Name: I2C_DISABLE
cparata 0:e4f89df7a7a5 1067 * Permission : RW
cparata 0:e4f89df7a7a5 1068 *******************************************************************************/
cparata 0:e4f89df7a7a5 1069 typedef enum {
cparata 0:e4f89df7a7a5 1070 LSM6DSL_ACC_GYRO_I2C_DISABLE_I2C_AND_SPI =0x00,
cparata 0:e4f89df7a7a5 1071 LSM6DSL_ACC_GYRO_I2C_DISABLE_SPI_ONLY =0x04,
cparata 0:e4f89df7a7a5 1072 } LSM6DSL_ACC_GYRO_I2C_DISABLE_t;
cparata 0:e4f89df7a7a5 1073
cparata 0:e4f89df7a7a5 1074 #define LSM6DSL_ACC_GYRO_I2C_DISABLE_MASK 0x04
cparata 0:e4f89df7a7a5 1075 status_t LSM6DSL_ACC_GYRO_W_I2C_DISABLE(void *handle, LSM6DSL_ACC_GYRO_I2C_DISABLE_t newValue);
cparata 0:e4f89df7a7a5 1076 status_t LSM6DSL_ACC_GYRO_R_I2C_DISABLE(void *handle, LSM6DSL_ACC_GYRO_I2C_DISABLE_t *value);
cparata 0:e4f89df7a7a5 1077
cparata 0:e4f89df7a7a5 1078 /*******************************************************************************
cparata 0:e4f89df7a7a5 1079 * Register : CTRL4_C
cparata 0:e4f89df7a7a5 1080 * Address : 0X13
cparata 0:e4f89df7a7a5 1081 * Bit Group Name: DRDY_MSK
cparata 0:e4f89df7a7a5 1082 * Permission : RW
cparata 0:e4f89df7a7a5 1083 *******************************************************************************/
cparata 0:e4f89df7a7a5 1084 typedef enum {
cparata 0:e4f89df7a7a5 1085 LSM6DSL_ACC_GYRO_DRDY_MSK_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1086 LSM6DSL_ACC_GYRO_DRDY_MSK_ENABLED =0x08,
cparata 0:e4f89df7a7a5 1087 } LSM6DSL_ACC_GYRO_DRDY_MSK_t;
cparata 0:e4f89df7a7a5 1088
cparata 0:e4f89df7a7a5 1089 #define LSM6DSL_ACC_GYRO_DRDY_MSK_MASK 0x08
cparata 0:e4f89df7a7a5 1090 status_t LSM6DSL_ACC_GYRO_W_DRDY_MSK(void *handle, LSM6DSL_ACC_GYRO_DRDY_MSK_t newValue);
cparata 0:e4f89df7a7a5 1091 status_t LSM6DSL_ACC_GYRO_R_DRDY_MSK(void *handle, LSM6DSL_ACC_GYRO_DRDY_MSK_t *value);
cparata 0:e4f89df7a7a5 1092
cparata 0:e4f89df7a7a5 1093 /*******************************************************************************
cparata 0:e4f89df7a7a5 1094 * Register : CTRL4_C
cparata 0:e4f89df7a7a5 1095 * Address : 0X13
cparata 0:e4f89df7a7a5 1096 * Bit Group Name: INT2_ON_INT1
cparata 0:e4f89df7a7a5 1097 * Permission : RW
cparata 0:e4f89df7a7a5 1098 *******************************************************************************/
cparata 0:e4f89df7a7a5 1099 typedef enum {
cparata 0:e4f89df7a7a5 1100 LSM6DSL_ACC_GYRO_INT2_ON_INT1_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1101 LSM6DSL_ACC_GYRO_INT2_ON_INT1_ENABLED =0x20,
cparata 0:e4f89df7a7a5 1102 } LSM6DSL_ACC_GYRO_INT2_ON_INT1_t;
cparata 0:e4f89df7a7a5 1103
cparata 0:e4f89df7a7a5 1104 #define LSM6DSL_ACC_GYRO_INT2_ON_INT1_MASK 0x20
cparata 0:e4f89df7a7a5 1105 status_t LSM6DSL_ACC_GYRO_W_INT2_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_INT2_ON_INT1_t newValue);
cparata 0:e4f89df7a7a5 1106 status_t LSM6DSL_ACC_GYRO_R_INT2_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_INT2_ON_INT1_t *value);
cparata 0:e4f89df7a7a5 1107
cparata 0:e4f89df7a7a5 1108 /*******************************************************************************
cparata 0:e4f89df7a7a5 1109 * Register : CTRL4_C
cparata 0:e4f89df7a7a5 1110 * Address : 0X13
cparata 0:e4f89df7a7a5 1111 * Bit Group Name: SLEEP_G
cparata 0:e4f89df7a7a5 1112 * Permission : RW
cparata 0:e4f89df7a7a5 1113 *******************************************************************************/
cparata 0:e4f89df7a7a5 1114 typedef enum {
cparata 0:e4f89df7a7a5 1115 LSM6DSL_ACC_GYRO_SLEEP_G_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1116 LSM6DSL_ACC_GYRO_SLEEP_G_ENABLED =0x40,
cparata 0:e4f89df7a7a5 1117 } LSM6DSL_ACC_GYRO_SLEEP_G_t;
cparata 0:e4f89df7a7a5 1118
cparata 0:e4f89df7a7a5 1119 #define LSM6DSL_ACC_GYRO_SLEEP_G_MASK 0x40
cparata 0:e4f89df7a7a5 1120 status_t LSM6DSL_ACC_GYRO_W_SleepMode_G(void *handle, LSM6DSL_ACC_GYRO_SLEEP_G_t newValue);
cparata 0:e4f89df7a7a5 1121 status_t LSM6DSL_ACC_GYRO_R_SleepMode_G(void *handle, LSM6DSL_ACC_GYRO_SLEEP_G_t *value);
cparata 0:e4f89df7a7a5 1122
cparata 0:e4f89df7a7a5 1123 /*******************************************************************************
cparata 0:e4f89df7a7a5 1124 * Register : CTRL5_C
cparata 0:e4f89df7a7a5 1125 * Address : 0X14
cparata 0:e4f89df7a7a5 1126 * Bit Group Name: ST_XL
cparata 0:e4f89df7a7a5 1127 * Permission : RW
cparata 0:e4f89df7a7a5 1128 *******************************************************************************/
cparata 0:e4f89df7a7a5 1129 typedef enum {
cparata 0:e4f89df7a7a5 1130 LSM6DSL_ACC_GYRO_ST_XL_NORMAL_MODE =0x00,
cparata 0:e4f89df7a7a5 1131 LSM6DSL_ACC_GYRO_ST_XL_POS_SIGN_TEST =0x01,
cparata 0:e4f89df7a7a5 1132 LSM6DSL_ACC_GYRO_ST_XL_NEG_SIGN_TEST =0x02,
cparata 0:e4f89df7a7a5 1133 LSM6DSL_ACC_GYRO_ST_XL_NA =0x03,
cparata 0:e4f89df7a7a5 1134 } LSM6DSL_ACC_GYRO_ST_XL_t;
cparata 0:e4f89df7a7a5 1135
cparata 0:e4f89df7a7a5 1136 #define LSM6DSL_ACC_GYRO_ST_XL_MASK 0x03
cparata 0:e4f89df7a7a5 1137 status_t LSM6DSL_ACC_GYRO_W_SelfTest_XL(void *handle, LSM6DSL_ACC_GYRO_ST_XL_t newValue);
cparata 0:e4f89df7a7a5 1138 status_t LSM6DSL_ACC_GYRO_R_SelfTest_XL(void *handle, LSM6DSL_ACC_GYRO_ST_XL_t *value);
cparata 0:e4f89df7a7a5 1139
cparata 0:e4f89df7a7a5 1140 /*******************************************************************************
cparata 0:e4f89df7a7a5 1141 * Register : CTRL5_C
cparata 0:e4f89df7a7a5 1142 * Address : 0X14
cparata 0:e4f89df7a7a5 1143 * Bit Group Name: ST_G
cparata 0:e4f89df7a7a5 1144 * Permission : RW
cparata 0:e4f89df7a7a5 1145 *******************************************************************************/
cparata 0:e4f89df7a7a5 1146 typedef enum {
cparata 0:e4f89df7a7a5 1147 LSM6DSL_ACC_GYRO_ST_G_NORMAL_MODE =0x00,
cparata 0:e4f89df7a7a5 1148 LSM6DSL_ACC_GYRO_ST_G_POS_SIGN_TEST =0x04,
cparata 0:e4f89df7a7a5 1149 LSM6DSL_ACC_GYRO_ST_G_NA =0x08,
cparata 0:e4f89df7a7a5 1150 LSM6DSL_ACC_GYRO_ST_G_NEG_SIGN_TEST =0x0C,
cparata 0:e4f89df7a7a5 1151 } LSM6DSL_ACC_GYRO_ST_G_t;
cparata 0:e4f89df7a7a5 1152
cparata 0:e4f89df7a7a5 1153 #define LSM6DSL_ACC_GYRO_ST_G_MASK 0x0C
cparata 0:e4f89df7a7a5 1154 status_t LSM6DSL_ACC_GYRO_W_SelfTest_G(void *handle, LSM6DSL_ACC_GYRO_ST_G_t newValue);
cparata 0:e4f89df7a7a5 1155 status_t LSM6DSL_ACC_GYRO_R_SelfTest_G(void *handle, LSM6DSL_ACC_GYRO_ST_G_t *value);
cparata 0:e4f89df7a7a5 1156
cparata 0:e4f89df7a7a5 1157 /*******************************************************************************
cparata 0:e4f89df7a7a5 1158 * Register : CTRL5_C
cparata 0:e4f89df7a7a5 1159 * Address : 0X14
cparata 0:e4f89df7a7a5 1160 * Bit Group Name: DEN_LH
cparata 0:e4f89df7a7a5 1161 * Permission : RW
cparata 0:e4f89df7a7a5 1162 *******************************************************************************/
cparata 0:e4f89df7a7a5 1163 typedef enum {
cparata 0:e4f89df7a7a5 1164 LSM6DSL_ACC_GYRO_DEN_LOW =0x00,
cparata 0:e4f89df7a7a5 1165 LSM6DSL_ACC_GYRO_DEN_HIGH =0x10,
cparata 0:e4f89df7a7a5 1166 } LSM6DSL_ACC_GYRO_DEN_LH_t;
cparata 0:e4f89df7a7a5 1167
cparata 0:e4f89df7a7a5 1168 #define LSM6DSL_ACC_GYRO_DEN_LH_MASK 0x10
cparata 0:e4f89df7a7a5 1169 status_t LSM6DSL_ACC_GYRO_W_DEN_Polarity(void *handle, LSM6DSL_ACC_GYRO_DEN_LH_t newValue);
cparata 0:e4f89df7a7a5 1170 status_t LSM6DSL_ACC_GYRO_R_DEN_Polarity(void *handle, LSM6DSL_ACC_GYRO_DEN_LH_t *value);
cparata 0:e4f89df7a7a5 1171
cparata 0:e4f89df7a7a5 1172 /*******************************************************************************
cparata 0:e4f89df7a7a5 1173 * Register : CTRL5_C
cparata 0:e4f89df7a7a5 1174 * Address : 0X14
cparata 0:e4f89df7a7a5 1175 * Bit Group Name: ST_ROUNDING
cparata 0:e4f89df7a7a5 1176 * Permission : RW
cparata 0:e4f89df7a7a5 1177 *******************************************************************************/
cparata 0:e4f89df7a7a5 1178 typedef enum {
cparata 0:e4f89df7a7a5 1179 LSM6DSL_ACC_GYRO_NO_ROUNDING =0x00,
cparata 0:e4f89df7a7a5 1180 LSM6DSL_ACC_GYRO_ACC_ONLY =0x20,
cparata 0:e4f89df7a7a5 1181 LSM6DSL_ACC_GYRO_GYRO_ONLY =0x40,
cparata 0:e4f89df7a7a5 1182 LSM6DSL_ACC_GYRO_ACC_GYRO =0x60,
cparata 0:e4f89df7a7a5 1183 LSM6DSL_ACC_GYRO_SH1_SH6 =0x80,
cparata 0:e4f89df7a7a5 1184 LSM6DSL_ACC_GYRO_ACC_SH1_SH6 =0xA0,
cparata 0:e4f89df7a7a5 1185 LSM6DSL_ACC_GYRO_ACC_GYRO_SH1_SH6_SH7_SH12 =0xC0,
cparata 0:e4f89df7a7a5 1186 LSM6DSL_ACC_GYRO_ACC_GYRO_SH1_SH6 =0xE0,
cparata 0:e4f89df7a7a5 1187 } LSM6DSL_ACC_GYRO_ROUNDING_t;
cparata 0:e4f89df7a7a5 1188
cparata 0:e4f89df7a7a5 1189 #define LSM6DSL_ACC_GYRO_LSM6DSL_ACC_GYRO_ROUNDING_t_MASK 0xE0
cparata 0:e4f89df7a7a5 1190 status_t LSM6DSL_ACC_GYRO_W_CircularBurstMode(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_t newValue);
cparata 0:e4f89df7a7a5 1191 status_t LSM6DSL_ACC_GYRO_R_CircularBurstMode(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_t *value);
cparata 0:e4f89df7a7a5 1192
cparata 0:e4f89df7a7a5 1193 /*******************************************************************************
cparata 0:e4f89df7a7a5 1194 * Register : CTRL6_G
cparata 0:e4f89df7a7a5 1195 * Address : 0X15
cparata 0:e4f89df7a7a5 1196 * Bit Group Name: FTYPE
cparata 0:e4f89df7a7a5 1197 * Permission : RW
cparata 0:e4f89df7a7a5 1198 *******************************************************************************/
cparata 0:e4f89df7a7a5 1199 typedef enum {
cparata 0:e4f89df7a7a5 1200 LSM6DSL_ACC_GYRO_LP_G_NORMAL =0x00,
cparata 0:e4f89df7a7a5 1201 LSM6DSL_ACC_GYRO_LP_G_NARROW =0x01,
cparata 0:e4f89df7a7a5 1202 LSM6DSL_ACC_GYRO_LP_G_VERY_NARROW =0x02,
cparata 0:e4f89df7a7a5 1203 LSM6DSL_ACC_GYRO_LP_G_WIDE =0x03,
cparata 0:e4f89df7a7a5 1204 } LSM6DSL_ACC_GYRO_FTYPE_t;
cparata 0:e4f89df7a7a5 1205
cparata 0:e4f89df7a7a5 1206 #define LSM6DSL_ACC_GYRO_FTYPE_MASK 0x03
cparata 0:e4f89df7a7a5 1207 status_t LSM6DSL_ACC_GYRO_W_LP_BW_G(void *handle, LSM6DSL_ACC_GYRO_FTYPE_t newValue);
cparata 0:e4f89df7a7a5 1208 status_t LSM6DSL_ACC_GYRO_R_LP_BW_G(void *handle, LSM6DSL_ACC_GYRO_FTYPE_t *value);
cparata 0:e4f89df7a7a5 1209
cparata 0:e4f89df7a7a5 1210 /*******************************************************************************
cparata 0:e4f89df7a7a5 1211 * Register : CTRL6_G
cparata 0:e4f89df7a7a5 1212 * Address : 0X15
cparata 0:e4f89df7a7a5 1213 * Bit Group Name: USR_OFF_W
cparata 0:e4f89df7a7a5 1214 * Permission : RW
cparata 0:e4f89df7a7a5 1215 *******************************************************************************/
cparata 0:e4f89df7a7a5 1216 typedef enum {
cparata 0:e4f89df7a7a5 1217 LSM6DSL_ACC_GYRO_2Emin10 =0x00,
cparata 0:e4f89df7a7a5 1218 LSM6DSL_ACC_GYRO_2Emin6 =0x08,
cparata 0:e4f89df7a7a5 1219 } LSM6DSL_ACC_GYRO_USR_OFF_W_t;
cparata 0:e4f89df7a7a5 1220
cparata 0:e4f89df7a7a5 1221 #define LSM6DSL_ACC_GYRO_USR_OFF_W_MASK 0x08
cparata 0:e4f89df7a7a5 1222 status_t LSM6DSL_ACC_GYRO_W_UserOffsetWeight(void *handle, LSM6DSL_ACC_GYRO_USR_OFF_W_t newValue);
cparata 0:e4f89df7a7a5 1223 status_t LSM6DSL_ACC_GYRO_R_UserOffsetWeight(void *handle, LSM6DSL_ACC_GYRO_USR_OFF_W_t *value);
cparata 0:e4f89df7a7a5 1224
cparata 0:e4f89df7a7a5 1225
cparata 0:e4f89df7a7a5 1226 /*******************************************************************************
cparata 0:e4f89df7a7a5 1227 * Register : CTRL6_G
cparata 0:e4f89df7a7a5 1228 * Address : 0X15
cparata 0:e4f89df7a7a5 1229 * Bit Group Name: LP_XL
cparata 0:e4f89df7a7a5 1230 * Permission : RW
cparata 0:e4f89df7a7a5 1231 *******************************************************************************/
cparata 0:e4f89df7a7a5 1232 typedef enum {
cparata 0:e4f89df7a7a5 1233 LSM6DSL_ACC_GYRO_LP_XL_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1234 LSM6DSL_ACC_GYRO_LP_XL_ENABLED =0x10,
cparata 0:e4f89df7a7a5 1235 } LSM6DSL_ACC_GYRO_LP_XL_t;
cparata 0:e4f89df7a7a5 1236
cparata 0:e4f89df7a7a5 1237 #define LSM6DSL_ACC_GYRO_LP_XL_MASK 0x10
cparata 0:e4f89df7a7a5 1238 status_t LSM6DSL_ACC_GYRO_W_LowPower_XL(void *handle, LSM6DSL_ACC_GYRO_LP_XL_t newValue);
cparata 0:e4f89df7a7a5 1239 status_t LSM6DSL_ACC_GYRO_R_LowPower_XL(void *handle, LSM6DSL_ACC_GYRO_LP_XL_t *value);
cparata 0:e4f89df7a7a5 1240
cparata 0:e4f89df7a7a5 1241 /*******************************************************************************
cparata 0:e4f89df7a7a5 1242 * Register : CTRL6_G
cparata 0:e4f89df7a7a5 1243 * Address : 0X15
cparata 0:e4f89df7a7a5 1244 * Bit Group Name: DEN_LVL2_EN
cparata 0:e4f89df7a7a5 1245 * Permission : RW
cparata 0:e4f89df7a7a5 1246 *******************************************************************************/
cparata 0:e4f89df7a7a5 1247 typedef enum {
cparata 0:e4f89df7a7a5 1248 LSM6DSL_ACC_GYRO_DEN_LVL2_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1249 LSM6DSL_ACC_GYRO_DEN_LVL2_EN_ENABLED =0x20,
cparata 0:e4f89df7a7a5 1250 } LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t;
cparata 0:e4f89df7a7a5 1251
cparata 0:e4f89df7a7a5 1252 #define LSM6DSL_ACC_GYRO_DEN_LVL2_EN_MASK 0x20
cparata 0:e4f89df7a7a5 1253 status_t LSM6DSL_ACC_GYRO_W_DEN_LVL2_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t newValue);
cparata 0:e4f89df7a7a5 1254 status_t LSM6DSL_ACC_GYRO_R_DEN_LVL2_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t *value);
cparata 0:e4f89df7a7a5 1255
cparata 0:e4f89df7a7a5 1256 /*******************************************************************************
cparata 0:e4f89df7a7a5 1257 * Register : CTRL6_G
cparata 0:e4f89df7a7a5 1258 * Address : 0X15
cparata 0:e4f89df7a7a5 1259 * Bit Group Name: DEN_LVL_EN
cparata 0:e4f89df7a7a5 1260 * Permission : RW
cparata 0:e4f89df7a7a5 1261 *******************************************************************************/
cparata 0:e4f89df7a7a5 1262 typedef enum {
cparata 0:e4f89df7a7a5 1263 LSM6DSL_ACC_GYRO_DEN_LVL_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1264 LSM6DSL_ACC_GYRO_DEN_LVL_EN_ENABLED =0x40,
cparata 0:e4f89df7a7a5 1265 } LSM6DSL_ACC_GYRO_DEN_LVL_EN_t;
cparata 0:e4f89df7a7a5 1266
cparata 0:e4f89df7a7a5 1267 #define LSM6DSL_ACC_GYRO_DEN_LVL_EN_MASK 0x40
cparata 0:e4f89df7a7a5 1268 status_t LSM6DSL_ACC_GYRO_W_DEN_LVL_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL_EN_t newValue);
cparata 0:e4f89df7a7a5 1269 status_t LSM6DSL_ACC_GYRO_R_DEN_LVL_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL_EN_t *value);
cparata 0:e4f89df7a7a5 1270
cparata 0:e4f89df7a7a5 1271 /*******************************************************************************
cparata 0:e4f89df7a7a5 1272 * Register : CTRL6_G
cparata 0:e4f89df7a7a5 1273 * Address : 0X15
cparata 0:e4f89df7a7a5 1274 * Bit Group Name: TRIG_EN
cparata 0:e4f89df7a7a5 1275 * Permission : RW
cparata 0:e4f89df7a7a5 1276 *******************************************************************************/
cparata 0:e4f89df7a7a5 1277 typedef enum {
cparata 0:e4f89df7a7a5 1278 LSM6DSL_ACC_GYRO_DEN_EDGE_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1279 LSM6DSL_ACC_GYRO_DEN_EDGE_EN_ENABLED =0x80,
cparata 0:e4f89df7a7a5 1280 } LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t;
cparata 0:e4f89df7a7a5 1281
cparata 0:e4f89df7a7a5 1282 #define LSM6DSL_ACC_GYRO_DEN_EDGE_EN_MASK 0x80
cparata 0:e4f89df7a7a5 1283 status_t LSM6DSL_ACC_GYRO_W_ExternalTrigger(void *handle, LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t newValue);
cparata 0:e4f89df7a7a5 1284 status_t LSM6DSL_ACC_GYRO_R_ExternalTrigger(void *handle, LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t *value);
cparata 0:e4f89df7a7a5 1285
cparata 0:e4f89df7a7a5 1286 /*******************************************************************************
cparata 0:e4f89df7a7a5 1287 * Register : CTRL7_G
cparata 0:e4f89df7a7a5 1288 * Address : 0X16
cparata 0:e4f89df7a7a5 1289 * Bit Group Name: ROUNDING_STATUS
cparata 0:e4f89df7a7a5 1290 * Permission : RW
cparata 0:e4f89df7a7a5 1291 *******************************************************************************/
cparata 0:e4f89df7a7a5 1292 typedef enum {
cparata 0:e4f89df7a7a5 1293 LSM6DSL_ACC_GYRO_RND_DISABLE =0x00,
cparata 0:e4f89df7a7a5 1294 LSM6DSL_ACC_GYRO_RND_ENABLE =0x04,
cparata 0:e4f89df7a7a5 1295 } LSM6DSL_ACC_GYRO_RND_STATUS_t;
cparata 0:e4f89df7a7a5 1296
cparata 0:e4f89df7a7a5 1297 #define LSM6DSL_ACC_GYRO_RND_STATUS_MASK 0x04
cparata 0:e4f89df7a7a5 1298 status_t LSM6DSL_ACC_GYRO_W_RoundingOnStatusRegisters(void *handle, LSM6DSL_ACC_GYRO_RND_STATUS_t newValue);
cparata 0:e4f89df7a7a5 1299 status_t LSM6DSL_ACC_GYRO_R_RoundingOnStatusRegisters(void *handle, LSM6DSL_ACC_GYRO_RND_STATUS_t *value);
cparata 0:e4f89df7a7a5 1300
cparata 0:e4f89df7a7a5 1301
cparata 0:e4f89df7a7a5 1302 /*******************************************************************************
cparata 0:e4f89df7a7a5 1303 * Register : CTRL7_G
cparata 0:e4f89df7a7a5 1304 * Address : 0X16
cparata 0:e4f89df7a7a5 1305 * Bit Group Name: HPM_G
cparata 0:e4f89df7a7a5 1306 * Permission : RW
cparata 0:e4f89df7a7a5 1307 *******************************************************************************/
cparata 0:e4f89df7a7a5 1308 typedef enum {
cparata 0:e4f89df7a7a5 1309 LSM6DSL_ACC_GYRO_HPM_G_0Hz016 =0x00,
cparata 0:e4f89df7a7a5 1310 LSM6DSL_ACC_GYRO_HPM_G_0Hz065 =0x10,
cparata 0:e4f89df7a7a5 1311 LSM6DSL_ACC_GYRO_HPM_G_2Hz260 =0x20,
cparata 0:e4f89df7a7a5 1312 LSM6DSL_ACC_GYRO_HPM_G_1Hz04 =0x30,
cparata 0:e4f89df7a7a5 1313 } LSM6DSL_ACC_GYRO_HPM_G_t;
cparata 0:e4f89df7a7a5 1314
cparata 0:e4f89df7a7a5 1315 #define LSM6DSL_ACC_GYRO_HPM_G_MASK 0x30
cparata 0:e4f89df7a7a5 1316 status_t LSM6DSL_ACC_GYRO_W_HPM_G(void *handle, LSM6DSL_ACC_GYRO_HPM_G_t newValue);
cparata 0:e4f89df7a7a5 1317 status_t LSM6DSL_ACC_GYRO_R_HPM_G(void *handle, LSM6DSL_ACC_GYRO_HPM_G_t *value);
cparata 0:e4f89df7a7a5 1318
cparata 0:e4f89df7a7a5 1319 /*******************************************************************************
cparata 0:e4f89df7a7a5 1320 * Register : CTRL7_G
cparata 0:e4f89df7a7a5 1321 * Address : 0X16
cparata 0:e4f89df7a7a5 1322 * Bit Group Name: HP_EN_G
cparata 0:e4f89df7a7a5 1323 * Permission : RW
cparata 0:e4f89df7a7a5 1324 *******************************************************************************/
cparata 0:e4f89df7a7a5 1325 typedef enum {
cparata 0:e4f89df7a7a5 1326 LSM6DSL_ACC_GYRO_HP_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1327 LSM6DSL_ACC_GYRO_HP_EN_ENABLED =0x40,
cparata 0:e4f89df7a7a5 1328 } LSM6DSL_ACC_GYRO_HP_EN_t;
cparata 0:e4f89df7a7a5 1329
cparata 0:e4f89df7a7a5 1330 #define LSM6DSL_ACC_GYRO_HP_EN_MASK 0x40
cparata 0:e4f89df7a7a5 1331 status_t LSM6DSL_ACC_GYRO_W_HPFilter_En(void *handle, LSM6DSL_ACC_GYRO_HP_EN_t newValue);
cparata 0:e4f89df7a7a5 1332 status_t LSM6DSL_ACC_GYRO_R_HPFilter_En(void *handle, LSM6DSL_ACC_GYRO_HP_EN_t *value);
cparata 0:e4f89df7a7a5 1333
cparata 0:e4f89df7a7a5 1334 /*******************************************************************************
cparata 0:e4f89df7a7a5 1335 * Register : CTRL7_G
cparata 0:e4f89df7a7a5 1336 * Address : 0X16
cparata 0:e4f89df7a7a5 1337 * Bit Group Name: LP_EN
cparata 0:e4f89df7a7a5 1338 * Permission : RW
cparata 0:e4f89df7a7a5 1339 *******************************************************************************/
cparata 0:e4f89df7a7a5 1340 typedef enum {
cparata 0:e4f89df7a7a5 1341 LSM6DSL_ACC_GYRO_LP_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1342 LSM6DSL_ACC_GYRO_LP_EN_ENABLED =0x80,
cparata 0:e4f89df7a7a5 1343 } LSM6DSL_ACC_GYRO_LP_EN_t;
cparata 0:e4f89df7a7a5 1344
cparata 0:e4f89df7a7a5 1345 #define LSM6DSL_ACC_GYRO_LP_EN_MASK 0x80
cparata 0:e4f89df7a7a5 1346 status_t LSM6DSL_ACC_GYRO_W_LP_Mode(void *handle, LSM6DSL_ACC_GYRO_LP_EN_t newValue);
cparata 0:e4f89df7a7a5 1347 status_t LSM6DSL_ACC_GYRO_R_LP_Mode(void *handle, LSM6DSL_ACC_GYRO_LP_EN_t *value);
cparata 0:e4f89df7a7a5 1348
cparata 0:e4f89df7a7a5 1349 /*******************************************************************************
cparata 0:e4f89df7a7a5 1350 * Register : CTRL7_G
cparata 0:e4f89df7a7a5 1351 * Address : 0X16
cparata 0:e4f89df7a7a5 1352 * Bit Group Name: ROUNDING_STATUS
cparata 0:e4f89df7a7a5 1353 * Permission : RW
cparata 0:e4f89df7a7a5 1354 *******************************************************************************/
cparata 0:e4f89df7a7a5 1355 typedef enum {
cparata 0:e4f89df7a7a5 1356 LSM6DSL_ACC_GYRO_ROUNDING_STATUS_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1357 LSM6DSL_ACC_GYRO_ROUNDING_STATUS_ENABLED =0x04,
cparata 0:e4f89df7a7a5 1358 } LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t;
cparata 0:e4f89df7a7a5 1359
cparata 0:e4f89df7a7a5 1360 #define LSM6DSL_ACC_GYRO_ROUNDING_STATUS_MASK 0x04
cparata 0:e4f89df7a7a5 1361 status_t LSM6DSL_ACC_GYRO_W_ROUNDING_STATUS(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t newValue);
cparata 0:e4f89df7a7a5 1362 status_t LSM6DSL_ACC_GYRO_R_ROUNDING_STATUS(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t *value);
cparata 0:e4f89df7a7a5 1363
cparata 0:e4f89df7a7a5 1364 /*******************************************************************************
cparata 0:e4f89df7a7a5 1365 * Register : CTRL7_G
cparata 0:e4f89df7a7a5 1366 * Address : 0X16
cparata 0:e4f89df7a7a5 1367 * Bit Group Name: HP_G_RST
cparata 0:e4f89df7a7a5 1368 * Permission : RW
cparata 0:e4f89df7a7a5 1369 *******************************************************************************/
cparata 0:e4f89df7a7a5 1370 typedef enum {
cparata 0:e4f89df7a7a5 1371 LSM6DSL_ACC_GYRO_HP_G_RST_OFF =0x00,
cparata 0:e4f89df7a7a5 1372 LSM6DSL_ACC_GYRO_HP_G_RST_ON =0x08,
cparata 0:e4f89df7a7a5 1373 } LSM6DSL_ACC_GYRO_HP_G_RST_t;
cparata 0:e4f89df7a7a5 1374
cparata 0:e4f89df7a7a5 1375 #define LSM6DSL_ACC_GYRO_HP_G_RST_MASK 0x08
cparata 0:e4f89df7a7a5 1376 status_t LSM6DSL_ACC_GYRO_W_HP_G_RST(void *handle, LSM6DSL_ACC_GYRO_HP_G_RST_t newValue);
cparata 0:e4f89df7a7a5 1377 status_t LSM6DSL_ACC_GYRO_R_HP_G_RST(void *handle, LSM6DSL_ACC_GYRO_HP_G_RST_t *value);
cparata 0:e4f89df7a7a5 1378
cparata 0:e4f89df7a7a5 1379 /*******************************************************************************
cparata 0:e4f89df7a7a5 1380 * Register : CTRL8_XL
cparata 0:e4f89df7a7a5 1381 * Address : 0X17
cparata 0:e4f89df7a7a5 1382 * Bit Group Name: LOW_PASS_ON_6D
cparata 0:e4f89df7a7a5 1383 * Permission : RW
cparata 0:e4f89df7a7a5 1384 *******************************************************************************/
cparata 0:e4f89df7a7a5 1385 typedef enum {
cparata 0:e4f89df7a7a5 1386 LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_OFF =0x00,
cparata 0:e4f89df7a7a5 1387 LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_ON =0x01,
cparata 0:e4f89df7a7a5 1388 } LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t;
cparata 0:e4f89df7a7a5 1389
cparata 0:e4f89df7a7a5 1390 #define LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_MASK 0x01
cparata 0:e4f89df7a7a5 1391 status_t LSM6DSL_ACC_GYRO_W_LOW_PASS_ON_6D(void *handle, LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t newValue);
cparata 0:e4f89df7a7a5 1392 status_t LSM6DSL_ACC_GYRO_R_LOW_PASS_ON_6D(void *handle, LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t *value);
cparata 0:e4f89df7a7a5 1393
cparata 0:e4f89df7a7a5 1394 /*******************************************************************************
cparata 0:e4f89df7a7a5 1395 * Register : CTRL8_XL
cparata 0:e4f89df7a7a5 1396 * Address : 0X17
cparata 0:e4f89df7a7a5 1397 * Bit Group Name: HP_SLOPE_XL_EN
cparata 0:e4f89df7a7a5 1398 * Permission : RW
cparata 0:e4f89df7a7a5 1399 *******************************************************************************/
cparata 0:e4f89df7a7a5 1400 typedef enum {
cparata 0:e4f89df7a7a5 1401 LSM6DSL_ACC_GYRO_HP_SLOPE_XL_EN =0x00,
cparata 0:e4f89df7a7a5 1402 LSM6DSL_ACC_GYRO_HP_SLOPE_XL_DIS =0x04,
cparata 0:e4f89df7a7a5 1403 } LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t;
cparata 0:e4f89df7a7a5 1404
cparata 0:e4f89df7a7a5 1405 #define LSM6DSL_ACC_GYRO_HP_SLOPE_XL_MASK 0x04
cparata 0:e4f89df7a7a5 1406 status_t LSM6DSL_ACC_GYRO_W_HP_SLOPE_XL(void *handle, LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t newValue);
cparata 0:e4f89df7a7a5 1407 status_t LSM6DSL_ACC_GYRO_R_HP_SLOPE_XL(void *handle, LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t *value);
cparata 0:e4f89df7a7a5 1408
cparata 0:e4f89df7a7a5 1409 /*******************************************************************************
cparata 0:e4f89df7a7a5 1410 * Register : CTRL8_XL
cparata 0:e4f89df7a7a5 1411 * Address : 0X17
cparata 0:e4f89df7a7a5 1412 * Bit Group Name: INPUT_COMPOSITE
cparata 0:e4f89df7a7a5 1413 * Permission : RW
cparata 0:e4f89df7a7a5 1414 *******************************************************************************/
cparata 0:e4f89df7a7a5 1415 typedef enum {
cparata 0:e4f89df7a7a5 1416 LSM6DSL_ACC_GYRO_IN_ODR_DIV_2 =0x00,
cparata 0:e4f89df7a7a5 1417 LSM6DSL_ACC_GYRO_IN_ODR_DIV_4 =0x80,
cparata 0:e4f89df7a7a5 1418 } LSM6DSL_ACC_GYRO_IN_COMP_t;
cparata 0:e4f89df7a7a5 1419
cparata 0:e4f89df7a7a5 1420 #define LSM6DSL_ACC_GYRO_IN_COMP_MASK 0x80
cparata 0:e4f89df7a7a5 1421 status_t LSM6DSL_ACC_GYRO_W_InComposit(void *handle, LSM6DSL_ACC_GYRO_IN_COMP_t newValue);
cparata 0:e4f89df7a7a5 1422 status_t LSM6DSL_ACC_GYRO_R_InComposit(void *handle, LSM6DSL_ACC_GYRO_IN_COMP_t *value);
cparata 0:e4f89df7a7a5 1423
cparata 0:e4f89df7a7a5 1424 /*******************************************************************************
cparata 0:e4f89df7a7a5 1425 * Register : CTRL8_XL
cparata 0:e4f89df7a7a5 1426 * Address : 0X17
cparata 0:e4f89df7a7a5 1427 * Bit Group Name: HP_REF_MODE
cparata 0:e4f89df7a7a5 1428 * Permission : RW
cparata 0:e4f89df7a7a5 1429 *******************************************************************************/
cparata 0:e4f89df7a7a5 1430 typedef enum {
cparata 0:e4f89df7a7a5 1431 LSM6DSL_ACC_GYRO_HP_REF_DISABLE =0x00,
cparata 0:e4f89df7a7a5 1432 LSM6DSL_ACC_GYRO_HP_REF_ENABLE =0x10,
cparata 0:e4f89df7a7a5 1433 } LSM6DSL_ACC_GYRO_HP_REF_MODE_t;
cparata 0:e4f89df7a7a5 1434
cparata 0:e4f89df7a7a5 1435 #define LSM6DSL_ACC_GYRO_HP_REF_MODE_MASK 0x10
cparata 0:e4f89df7a7a5 1436 status_t LSM6DSL_ACC_GYRO_W_HPfilterReference(void *handle, LSM6DSL_ACC_GYRO_HP_REF_MODE_t newValue);
cparata 0:e4f89df7a7a5 1437 status_t LSM6DSL_ACC_GYRO_R_HPfilterReference(void *handle, LSM6DSL_ACC_GYRO_HP_REF_MODE_t *value);
cparata 0:e4f89df7a7a5 1438
cparata 0:e4f89df7a7a5 1439 /*******************************************************************************
cparata 0:e4f89df7a7a5 1440 * Register : CTRL8_XL
cparata 0:e4f89df7a7a5 1441 * Address : 0X17
cparata 0:e4f89df7a7a5 1442 * Bit Group Name: HPCF_XL
cparata 0:e4f89df7a7a5 1443 * Permission : RW
cparata 0:e4f89df7a7a5 1444 *******************************************************************************/
cparata 0:e4f89df7a7a5 1445 typedef enum {
cparata 0:e4f89df7a7a5 1446 LSM6DSL_ACC_GYRO_HPCF_XL_DIV4 =0x00,
cparata 0:e4f89df7a7a5 1447 LSM6DSL_ACC_GYRO_HPCF_XL_DIV100 =0x20,
cparata 0:e4f89df7a7a5 1448 LSM6DSL_ACC_GYRO_HPCF_XL_DIV9 =0x40,
cparata 0:e4f89df7a7a5 1449 LSM6DSL_ACC_GYRO_HPCF_XL_DIV400 =0x60,
cparata 0:e4f89df7a7a5 1450 } LSM6DSL_ACC_GYRO_HPCF_XL_t;
cparata 0:e4f89df7a7a5 1451
cparata 0:e4f89df7a7a5 1452 #define LSM6DSL_ACC_GYRO_HPCF_XL_MASK 0x60
cparata 0:e4f89df7a7a5 1453 status_t LSM6DSL_ACC_GYRO_W_HPCF_XL(void *handle, LSM6DSL_ACC_GYRO_HPCF_XL_t newValue);
cparata 0:e4f89df7a7a5 1454 status_t LSM6DSL_ACC_GYRO_R_HPCF_XL(void *handle, LSM6DSL_ACC_GYRO_HPCF_XL_t *value);
cparata 0:e4f89df7a7a5 1455
cparata 0:e4f89df7a7a5 1456 /*******************************************************************************
cparata 0:e4f89df7a7a5 1457 * Register : CTRL8_XL
cparata 0:e4f89df7a7a5 1458 * Address : 0X17
cparata 0:e4f89df7a7a5 1459 * Bit Group Name: LPF2_XL_EN
cparata 0:e4f89df7a7a5 1460 * Permission : RW
cparata 0:e4f89df7a7a5 1461 *******************************************************************************/
cparata 0:e4f89df7a7a5 1462 typedef enum {
cparata 0:e4f89df7a7a5 1463 LSM6DSL_ACC_GYRO_LPF2_XL_DISABLE =0x00,
cparata 0:e4f89df7a7a5 1464 LSM6DSL_ACC_GYRO_LPF2_XL_ENABLE =0x80,
cparata 0:e4f89df7a7a5 1465 } LSM6DSL_ACC_GYRO_LPF2_XL_t;
cparata 0:e4f89df7a7a5 1466
cparata 0:e4f89df7a7a5 1467 #define LSM6DSL_ACC_GYRO_LPF2_XL_MASK 0x80
cparata 0:e4f89df7a7a5 1468 status_t LSM6DSL_ACC_GYRO_W_LowPassFiltSel_XL(void *handle, LSM6DSL_ACC_GYRO_LPF2_XL_t newValue);
cparata 0:e4f89df7a7a5 1469 status_t LSM6DSL_ACC_GYRO_R_LowPassFiltSel_XL(void *handle, LSM6DSL_ACC_GYRO_LPF2_XL_t *value);
cparata 0:e4f89df7a7a5 1470
cparata 0:e4f89df7a7a5 1471
cparata 0:e4f89df7a7a5 1472 /*******************************************************************************
cparata 0:e4f89df7a7a5 1473 * Register : CTRL9_XL
cparata 0:e4f89df7a7a5 1474 * Address : 0X18
cparata 0:e4f89df7a7a5 1475 * Bit Group Name: SOFT_EN
cparata 0:e4f89df7a7a5 1476 * Permission : RW
cparata 0:e4f89df7a7a5 1477 *******************************************************************************/
cparata 0:e4f89df7a7a5 1478 typedef enum {
cparata 0:e4f89df7a7a5 1479 LSM6DSL_ACC_GYRO_SOFT_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1480 LSM6DSL_ACC_GYRO_SOFT_ENABLE =0x04,
cparata 0:e4f89df7a7a5 1481 } LSM6DSL_ACC_GYRO_SOFT_t;
cparata 0:e4f89df7a7a5 1482
cparata 0:e4f89df7a7a5 1483 #define LSM6DSL_ACC_GYRO_SOFT_MASK 0x04
cparata 0:e4f89df7a7a5 1484 status_t LSM6DSL_ACC_GYRO_W_SOFT(void *handle, LSM6DSL_ACC_GYRO_SOFT_t newValue);
cparata 0:e4f89df7a7a5 1485 status_t LSM6DSL_ACC_GYRO_R_SOFT(void *handle, LSM6DSL_ACC_GYRO_SOFT_t *value);
cparata 0:e4f89df7a7a5 1486
cparata 0:e4f89df7a7a5 1487 /*******************************************************************************
cparata 0:e4f89df7a7a5 1488 * Register : CTRL10_C
cparata 0:e4f89df7a7a5 1489 * Address : 0X19
cparata 0:e4f89df7a7a5 1490 * Bit Group Name: SIGN_MOTION_EN
cparata 0:e4f89df7a7a5 1491 * Permission : RW
cparata 0:e4f89df7a7a5 1492 *******************************************************************************/
cparata 0:e4f89df7a7a5 1493 typedef enum {
cparata 0:e4f89df7a7a5 1494 LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1495 LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_ENABLED =0x01,
cparata 0:e4f89df7a7a5 1496 } LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t;
cparata 0:e4f89df7a7a5 1497
cparata 0:e4f89df7a7a5 1498 #define LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_MASK 0x01
cparata 0:e4f89df7a7a5 1499 status_t LSM6DSL_ACC_GYRO_W_SignifcantMotion(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t newValue);
cparata 0:e4f89df7a7a5 1500 status_t LSM6DSL_ACC_GYRO_R_SignifcantMotion(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t *value);
cparata 0:e4f89df7a7a5 1501
cparata 0:e4f89df7a7a5 1502 /*******************************************************************************
cparata 0:e4f89df7a7a5 1503 * Register : CTRL10_C
cparata 0:e4f89df7a7a5 1504 * Address : 0X19
cparata 0:e4f89df7a7a5 1505 * Bit Group Name: PEDO_RST_STEP
cparata 0:e4f89df7a7a5 1506 * Permission : RW
cparata 0:e4f89df7a7a5 1507 *******************************************************************************/
cparata 0:e4f89df7a7a5 1508 typedef enum {
cparata 0:e4f89df7a7a5 1509 LSM6DSL_ACC_GYRO_PEDO_RST_STEP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1510 LSM6DSL_ACC_GYRO_PEDO_RST_STEP_ENABLED =0x02,
cparata 0:e4f89df7a7a5 1511 } LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t;
cparata 0:e4f89df7a7a5 1512
cparata 0:e4f89df7a7a5 1513 #define LSM6DSL_ACC_GYRO_PEDO_RST_STEP_MASK 0x02
cparata 0:e4f89df7a7a5 1514 status_t LSM6DSL_ACC_GYRO_W_PedoStepReset(void *handle, LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t newValue);
cparata 0:e4f89df7a7a5 1515 status_t LSM6DSL_ACC_GYRO_R_PedoStepReset(void *handle, LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t *value);
cparata 0:e4f89df7a7a5 1516
cparata 0:e4f89df7a7a5 1517 /*******************************************************************************
cparata 0:e4f89df7a7a5 1518 * Register : CTRL10_C
cparata 0:e4f89df7a7a5 1519 * Address : 0X19
cparata 0:e4f89df7a7a5 1520 * Bit Group Name: FUNC_EN
cparata 0:e4f89df7a7a5 1521 * Permission : RW
cparata 0:e4f89df7a7a5 1522 *******************************************************************************/
cparata 0:e4f89df7a7a5 1523 typedef enum {
cparata 0:e4f89df7a7a5 1524 LSM6DSL_ACC_GYRO_FUNC_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1525 LSM6DSL_ACC_GYRO_FUNC_EN_ENABLED =0x04,
cparata 0:e4f89df7a7a5 1526 } LSM6DSL_ACC_GYRO_FUNC_EN_t;
cparata 0:e4f89df7a7a5 1527
cparata 0:e4f89df7a7a5 1528 #define LSM6DSL_ACC_GYRO_FUNC_EN_MASK 0x04
cparata 0:e4f89df7a7a5 1529 status_t LSM6DSL_ACC_GYRO_W_FUNC_EN(void *handle, LSM6DSL_ACC_GYRO_FUNC_EN_t newValue);
cparata 0:e4f89df7a7a5 1530 status_t LSM6DSL_ACC_GYRO_R_FUNC_EN(void *handle, LSM6DSL_ACC_GYRO_FUNC_EN_t *value);
cparata 0:e4f89df7a7a5 1531
cparata 0:e4f89df7a7a5 1532 /*******************************************************************************
cparata 0:e4f89df7a7a5 1533 * Register : CTRL10_C
cparata 0:e4f89df7a7a5 1534 * Address : 0X19
cparata 0:e4f89df7a7a5 1535 * Bit Group Name: TILT_EN
cparata 0:e4f89df7a7a5 1536 * Permission : RW
cparata 0:e4f89df7a7a5 1537 *******************************************************************************/
cparata 0:e4f89df7a7a5 1538 typedef enum {
cparata 0:e4f89df7a7a5 1539 LSM6DSL_ACC_GYRO_TILT_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1540 LSM6DSL_ACC_GYRO_TILT_ENABLED =0x08,
cparata 0:e4f89df7a7a5 1541 } LSM6DSL_ACC_GYRO_TILT_G_t;
cparata 0:e4f89df7a7a5 1542
cparata 0:e4f89df7a7a5 1543 #define LSM6DSL_ACC_GYRO_TILT_MASK 0x08
cparata 0:e4f89df7a7a5 1544 status_t LSM6DSL_ACC_GYRO_W_TILT(void *handle, LSM6DSL_ACC_GYRO_TILT_G_t newValue);
cparata 0:e4f89df7a7a5 1545 status_t LSM6DSL_ACC_GYRO_R_TILT(void *handle, LSM6DSL_ACC_GYRO_TILT_G_t *value);
cparata 0:e4f89df7a7a5 1546
cparata 0:e4f89df7a7a5 1547 /*******************************************************************************
cparata 0:e4f89df7a7a5 1548 * Register : CTRL10_C
cparata 0:e4f89df7a7a5 1549 * Address : 0X19
cparata 0:e4f89df7a7a5 1550 * Bit Group Name: PEDO_EN
cparata 0:e4f89df7a7a5 1551 * Permission : RW
cparata 0:e4f89df7a7a5 1552 *******************************************************************************/
cparata 0:e4f89df7a7a5 1553 typedef enum {
cparata 0:e4f89df7a7a5 1554 LSM6DSL_ACC_GYRO_PEDO_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1555 LSM6DSL_ACC_GYRO_PEDO_ENABLED =0x10,
cparata 0:e4f89df7a7a5 1556 } LSM6DSL_ACC_GYRO_PEDO_t;
cparata 0:e4f89df7a7a5 1557
cparata 0:e4f89df7a7a5 1558 #define LSM6DSL_ACC_GYRO_PEDO_MASK 0x10
cparata 0:e4f89df7a7a5 1559 status_t LSM6DSL_ACC_GYRO_W_PEDO(void *handle, LSM6DSL_ACC_GYRO_PEDO_t newValue);
cparata 0:e4f89df7a7a5 1560 status_t LSM6DSL_ACC_GYRO_R_PEDO(void *handle, LSM6DSL_ACC_GYRO_PEDO_t *value);
cparata 0:e4f89df7a7a5 1561
cparata 0:e4f89df7a7a5 1562 /*******************************************************************************
cparata 0:e4f89df7a7a5 1563 * Register : CTRL10_C
cparata 0:e4f89df7a7a5 1564 * Address : 0X19
cparata 0:e4f89df7a7a5 1565 * Bit Group Name: TIMER_EN
cparata 0:e4f89df7a7a5 1566 * Permission : RW
cparata 0:e4f89df7a7a5 1567 *******************************************************************************/
cparata 0:e4f89df7a7a5 1568 typedef enum {
cparata 0:e4f89df7a7a5 1569 LSM6DSL_ACC_GYRO_TIMER_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1570 LSM6DSL_ACC_GYRO_TIMER_ENABLED =0x20,
cparata 0:e4f89df7a7a5 1571 } LSM6DSL_ACC_GYRO_TIMER_t;
cparata 0:e4f89df7a7a5 1572
cparata 0:e4f89df7a7a5 1573 #define LSM6DSL_ACC_GYRO_TIMER_MASK 0x20
cparata 0:e4f89df7a7a5 1574 status_t LSM6DSL_ACC_GYRO_W_TIMER(void *handle, LSM6DSL_ACC_GYRO_TIMER_t newValue);
cparata 0:e4f89df7a7a5 1575 status_t LSM6DSL_ACC_GYRO_R_TIMER(void *handle, LSM6DSL_ACC_GYRO_TIMER_t *value);
cparata 0:e4f89df7a7a5 1576
cparata 0:e4f89df7a7a5 1577
cparata 0:e4f89df7a7a5 1578 /*******************************************************************************
cparata 0:e4f89df7a7a5 1579 * Register : MASTER_CONFIG
cparata 0:e4f89df7a7a5 1580 * Address : 0X1A
cparata 0:e4f89df7a7a5 1581 * Bit Group Name: MASTER_ON
cparata 0:e4f89df7a7a5 1582 * Permission : RW
cparata 0:e4f89df7a7a5 1583 *******************************************************************************/
cparata 0:e4f89df7a7a5 1584 typedef enum {
cparata 0:e4f89df7a7a5 1585 LSM6DSL_ACC_GYRO_MASTER_ON_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1586 LSM6DSL_ACC_GYRO_MASTER_ON_ENABLED =0x01,
cparata 0:e4f89df7a7a5 1587 } LSM6DSL_ACC_GYRO_MASTER_ON_t;
cparata 0:e4f89df7a7a5 1588
cparata 0:e4f89df7a7a5 1589 #define LSM6DSL_ACC_GYRO_MASTER_ON_MASK 0x01
cparata 0:e4f89df7a7a5 1590 status_t LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(void *handle, LSM6DSL_ACC_GYRO_MASTER_ON_t newValue);
cparata 0:e4f89df7a7a5 1591 status_t LSM6DSL_ACC_GYRO_R_I2C_MASTER_Enable(void *handle, LSM6DSL_ACC_GYRO_MASTER_ON_t *value);
cparata 0:e4f89df7a7a5 1592
cparata 0:e4f89df7a7a5 1593 /*******************************************************************************
cparata 0:e4f89df7a7a5 1594 * Register : MASTER_CONFIG
cparata 0:e4f89df7a7a5 1595 * Address : 0X1A
cparata 0:e4f89df7a7a5 1596 * Bit Group Name: IRON_EN
cparata 0:e4f89df7a7a5 1597 * Permission : RW
cparata 0:e4f89df7a7a5 1598 *******************************************************************************/
cparata 0:e4f89df7a7a5 1599 typedef enum {
cparata 0:e4f89df7a7a5 1600 LSM6DSL_ACC_GYRO_IRON_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1601 LSM6DSL_ACC_GYRO_IRON_EN_ENABLED =0x02,
cparata 0:e4f89df7a7a5 1602 } LSM6DSL_ACC_GYRO_IRON_EN_t;
cparata 0:e4f89df7a7a5 1603
cparata 0:e4f89df7a7a5 1604 #define LSM6DSL_ACC_GYRO_IRON_EN_MASK 0x02
cparata 0:e4f89df7a7a5 1605 status_t LSM6DSL_ACC_GYRO_W_IronCorrection_EN(void *handle, LSM6DSL_ACC_GYRO_IRON_EN_t newValue);
cparata 0:e4f89df7a7a5 1606 status_t LSM6DSL_ACC_GYRO_R_IronCorrection_EN(void *handle, LSM6DSL_ACC_GYRO_IRON_EN_t *value);
cparata 0:e4f89df7a7a5 1607
cparata 0:e4f89df7a7a5 1608 /*******************************************************************************
cparata 0:e4f89df7a7a5 1609 * Register : MASTER_CONFIG
cparata 0:e4f89df7a7a5 1610 * Address : 0X1A
cparata 0:e4f89df7a7a5 1611 * Bit Group Name: PASS_THRU_MODE
cparata 0:e4f89df7a7a5 1612 * Permission : RW
cparata 0:e4f89df7a7a5 1613 *******************************************************************************/
cparata 0:e4f89df7a7a5 1614 typedef enum {
cparata 0:e4f89df7a7a5 1615 LSM6DSL_ACC_GYRO_PASS_THRU_MODE_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1616 LSM6DSL_ACC_GYRO_PASS_THRU_MODE_ENABLED =0x04,
cparata 0:e4f89df7a7a5 1617 } LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t;
cparata 0:e4f89df7a7a5 1618
cparata 0:e4f89df7a7a5 1619 #define LSM6DSL_ACC_GYRO_PASS_THRU_MODE_MASK 0x04
cparata 0:e4f89df7a7a5 1620 status_t LSM6DSL_ACC_GYRO_W_PASS_THRU_MODE(void *handle, LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t newValue);
cparata 0:e4f89df7a7a5 1621 status_t LSM6DSL_ACC_GYRO_R_PASS_THRU_MODE(void *handle, LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t *value);
cparata 0:e4f89df7a7a5 1622
cparata 0:e4f89df7a7a5 1623 /*******************************************************************************
cparata 0:e4f89df7a7a5 1624 * Register : MASTER_CONFIG
cparata 0:e4f89df7a7a5 1625 * Address : 0X1A
cparata 0:e4f89df7a7a5 1626 * Bit Group Name: PULL_UP_EN
cparata 0:e4f89df7a7a5 1627 * Permission : RW
cparata 0:e4f89df7a7a5 1628 *******************************************************************************/
cparata 0:e4f89df7a7a5 1629 typedef enum {
cparata 0:e4f89df7a7a5 1630 LSM6DSL_ACC_GYRO_PULL_UP_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1631 LSM6DSL_ACC_GYRO_PULL_UP_EN_ENABLED =0x08,
cparata 0:e4f89df7a7a5 1632 } LSM6DSL_ACC_GYRO_PULL_UP_EN_t;
cparata 0:e4f89df7a7a5 1633
cparata 0:e4f89df7a7a5 1634 #define LSM6DSL_ACC_GYRO_PULL_UP_EN_MASK 0x08
cparata 0:e4f89df7a7a5 1635 status_t LSM6DSL_ACC_GYRO_W_PULL_UP_EN(void *handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_t newValue);
cparata 0:e4f89df7a7a5 1636 status_t LSM6DSL_ACC_GYRO_R_PULL_UP_EN(void *handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_t *value);
cparata 0:e4f89df7a7a5 1637
cparata 0:e4f89df7a7a5 1638 /*******************************************************************************
cparata 0:e4f89df7a7a5 1639 * Register : MASTER_CONFIG
cparata 0:e4f89df7a7a5 1640 * Address : 0X1A
cparata 0:e4f89df7a7a5 1641 * Bit Group Name: START_CONFIG
cparata 0:e4f89df7a7a5 1642 * Permission : RW
cparata 0:e4f89df7a7a5 1643 *******************************************************************************/
cparata 0:e4f89df7a7a5 1644 typedef enum {
cparata 0:e4f89df7a7a5 1645 LSM6DSL_ACC_GYRO_START_CONFIG_XL_G_DRDY =0x00,
cparata 0:e4f89df7a7a5 1646 LSM6DSL_ACC_GYRO_START_CONFIG_EXT_INT2 =0x10,
cparata 0:e4f89df7a7a5 1647 } LSM6DSL_ACC_GYRO_START_CONFIG_t;
cparata 0:e4f89df7a7a5 1648
cparata 0:e4f89df7a7a5 1649 #define LSM6DSL_ACC_GYRO_START_CONFIG_MASK 0x10
cparata 0:e4f89df7a7a5 1650 status_t LSM6DSL_ACC_GYRO_W_SensorHUB_Trigger_Sel(void *handle, LSM6DSL_ACC_GYRO_START_CONFIG_t newValue);
cparata 0:e4f89df7a7a5 1651 status_t LSM6DSL_ACC_GYRO_R_SensorHUB_Trigger_Sel(void *handle, LSM6DSL_ACC_GYRO_START_CONFIG_t *value);
cparata 0:e4f89df7a7a5 1652
cparata 0:e4f89df7a7a5 1653 /*******************************************************************************
cparata 0:e4f89df7a7a5 1654 * Register : MASTER_CONFIG
cparata 0:e4f89df7a7a5 1655 * Address : 0X1A
cparata 0:e4f89df7a7a5 1656 * Bit Group Name: DATA_VAL_SEL_FIFO
cparata 0:e4f89df7a7a5 1657 * Permission : RW
cparata 0:e4f89df7a7a5 1658 *******************************************************************************/
cparata 0:e4f89df7a7a5 1659 typedef enum {
cparata 0:e4f89df7a7a5 1660 LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_XL_G_DRDY =0x00,
cparata 0:e4f89df7a7a5 1661 LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_SHUB_DRDY =0x40,
cparata 0:e4f89df7a7a5 1662 } LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t;
cparata 0:e4f89df7a7a5 1663
cparata 0:e4f89df7a7a5 1664 #define LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_MASK 0x40
cparata 0:e4f89df7a7a5 1665 status_t LSM6DSL_ACC_GYRO_W_DATA_VAL_SEL_FIFO(void *handle, LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t newValue);
cparata 0:e4f89df7a7a5 1666 status_t LSM6DSL_ACC_GYRO_R_DATA_VAL_SEL_FIFO(void *handle, LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t *value);
cparata 0:e4f89df7a7a5 1667
cparata 0:e4f89df7a7a5 1668 /*******************************************************************************
cparata 0:e4f89df7a7a5 1669 * Register : MASTER_CONFIG
cparata 0:e4f89df7a7a5 1670 * Address : 0X1A
cparata 0:e4f89df7a7a5 1671 * Bit Group Name: DRDY_ON_INT1
cparata 0:e4f89df7a7a5 1672 * Permission : RW
cparata 0:e4f89df7a7a5 1673 *******************************************************************************/
cparata 0:e4f89df7a7a5 1674 typedef enum {
cparata 0:e4f89df7a7a5 1675 LSM6DSL_ACC_GYRO_DRDY_ON_INT1_DISABLED =0x00,
cparata 0:e4f89df7a7a5 1676 LSM6DSL_ACC_GYRO_DRDY_ON_INT1_ENABLED =0x80,
cparata 0:e4f89df7a7a5 1677 } LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t;
cparata 0:e4f89df7a7a5 1678
cparata 0:e4f89df7a7a5 1679 #define LSM6DSL_ACC_GYRO_DRDY_ON_INT1_MASK 0x80
cparata 0:e4f89df7a7a5 1680 status_t LSM6DSL_ACC_GYRO_W_DRDY_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t newValue);
cparata 0:e4f89df7a7a5 1681 status_t LSM6DSL_ACC_GYRO_R_DRDY_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t *value);
cparata 0:e4f89df7a7a5 1682
cparata 0:e4f89df7a7a5 1683 /*******************************************************************************
cparata 0:e4f89df7a7a5 1684 * Register : WAKE_UP_SRC
cparata 0:e4f89df7a7a5 1685 * Address : 0X1B
cparata 0:e4f89df7a7a5 1686 * Bit Group Name: Z_WU
cparata 0:e4f89df7a7a5 1687 * Permission : RO
cparata 0:e4f89df7a7a5 1688 *******************************************************************************/
cparata 0:e4f89df7a7a5 1689 typedef enum {
cparata 0:e4f89df7a7a5 1690 LSM6DSL_ACC_GYRO_Z_WU_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1691 LSM6DSL_ACC_GYRO_Z_WU_DETECTED =0x01,
cparata 0:e4f89df7a7a5 1692 } LSM6DSL_ACC_GYRO_Z_WU_t;
cparata 0:e4f89df7a7a5 1693
cparata 0:e4f89df7a7a5 1694 #define LSM6DSL_ACC_GYRO_Z_WU_MASK 0x01
cparata 0:e4f89df7a7a5 1695 status_t LSM6DSL_ACC_GYRO_R_Z_WU(void *handle, LSM6DSL_ACC_GYRO_Z_WU_t *value);
cparata 0:e4f89df7a7a5 1696
cparata 0:e4f89df7a7a5 1697 /*******************************************************************************
cparata 0:e4f89df7a7a5 1698 * Register : WAKE_UP_SRC
cparata 0:e4f89df7a7a5 1699 * Address : 0X1B
cparata 0:e4f89df7a7a5 1700 * Bit Group Name: Y_WU
cparata 0:e4f89df7a7a5 1701 * Permission : RO
cparata 0:e4f89df7a7a5 1702 *******************************************************************************/
cparata 0:e4f89df7a7a5 1703 typedef enum {
cparata 0:e4f89df7a7a5 1704 LSM6DSL_ACC_GYRO_Y_WU_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1705 LSM6DSL_ACC_GYRO_Y_WU_DETECTED =0x02,
cparata 0:e4f89df7a7a5 1706 } LSM6DSL_ACC_GYRO_Y_WU_t;
cparata 0:e4f89df7a7a5 1707
cparata 0:e4f89df7a7a5 1708 #define LSM6DSL_ACC_GYRO_Y_WU_MASK 0x02
cparata 0:e4f89df7a7a5 1709 status_t LSM6DSL_ACC_GYRO_R_Y_WU(void *handle, LSM6DSL_ACC_GYRO_Y_WU_t *value);
cparata 0:e4f89df7a7a5 1710
cparata 0:e4f89df7a7a5 1711 /*******************************************************************************
cparata 0:e4f89df7a7a5 1712 * Register : WAKE_UP_SRC
cparata 0:e4f89df7a7a5 1713 * Address : 0X1B
cparata 0:e4f89df7a7a5 1714 * Bit Group Name: X_WU
cparata 0:e4f89df7a7a5 1715 * Permission : RO
cparata 0:e4f89df7a7a5 1716 *******************************************************************************/
cparata 0:e4f89df7a7a5 1717 typedef enum {
cparata 0:e4f89df7a7a5 1718 LSM6DSL_ACC_GYRO_X_WU_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1719 LSM6DSL_ACC_GYRO_X_WU_DETECTED =0x04,
cparata 0:e4f89df7a7a5 1720 } LSM6DSL_ACC_GYRO_X_WU_t;
cparata 0:e4f89df7a7a5 1721
cparata 0:e4f89df7a7a5 1722 #define LSM6DSL_ACC_GYRO_X_WU_MASK 0x04
cparata 0:e4f89df7a7a5 1723 status_t LSM6DSL_ACC_GYRO_R_X_WU(void *handle, LSM6DSL_ACC_GYRO_X_WU_t *value);
cparata 0:e4f89df7a7a5 1724
cparata 0:e4f89df7a7a5 1725 /*******************************************************************************
cparata 0:e4f89df7a7a5 1726 * Register : WAKE_UP_SRC
cparata 0:e4f89df7a7a5 1727 * Address : 0X1B
cparata 0:e4f89df7a7a5 1728 * Bit Group Name: WU_EV_STATUS
cparata 0:e4f89df7a7a5 1729 * Permission : RO
cparata 0:e4f89df7a7a5 1730 *******************************************************************************/
cparata 0:e4f89df7a7a5 1731 typedef enum {
cparata 0:e4f89df7a7a5 1732 LSM6DSL_ACC_GYRO_WU_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1733 LSM6DSL_ACC_GYRO_WU_EV_STATUS_DETECTED =0x08,
cparata 0:e4f89df7a7a5 1734 } LSM6DSL_ACC_GYRO_WU_EV_STATUS_t;
cparata 0:e4f89df7a7a5 1735
cparata 0:e4f89df7a7a5 1736 #define LSM6DSL_ACC_GYRO_WU_EV_STATUS_MASK 0x08
cparata 0:e4f89df7a7a5 1737 status_t LSM6DSL_ACC_GYRO_R_WU_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_WU_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 1738
cparata 0:e4f89df7a7a5 1739 /*******************************************************************************
cparata 0:e4f89df7a7a5 1740 * Register : WAKE_UP_SRC
cparata 0:e4f89df7a7a5 1741 * Address : 0X1B
cparata 0:e4f89df7a7a5 1742 * Bit Group Name: SLEEP_EV_STATUS
cparata 0:e4f89df7a7a5 1743 * Permission : RO
cparata 0:e4f89df7a7a5 1744 *******************************************************************************/
cparata 0:e4f89df7a7a5 1745 typedef enum {
cparata 0:e4f89df7a7a5 1746 LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1747 LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_DETECTED =0x10,
cparata 0:e4f89df7a7a5 1748 } LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t;
cparata 0:e4f89df7a7a5 1749
cparata 0:e4f89df7a7a5 1750 #define LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_MASK 0x10
cparata 0:e4f89df7a7a5 1751 status_t LSM6DSL_ACC_GYRO_R_SLEEP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 1752
cparata 0:e4f89df7a7a5 1753 /*******************************************************************************
cparata 0:e4f89df7a7a5 1754 * Register : WAKE_UP_SRC
cparata 0:e4f89df7a7a5 1755 * Address : 0X1B
cparata 0:e4f89df7a7a5 1756 * Bit Group Name: FF_EV_STATUS
cparata 0:e4f89df7a7a5 1757 * Permission : RO
cparata 0:e4f89df7a7a5 1758 *******************************************************************************/
cparata 0:e4f89df7a7a5 1759 typedef enum {
cparata 0:e4f89df7a7a5 1760 LSM6DSL_ACC_GYRO_FF_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1761 LSM6DSL_ACC_GYRO_FF_EV_STATUS_DETECTED =0x20,
cparata 0:e4f89df7a7a5 1762 } LSM6DSL_ACC_GYRO_FF_EV_STATUS_t;
cparata 0:e4f89df7a7a5 1763
cparata 0:e4f89df7a7a5 1764 #define LSM6DSL_ACC_GYRO_FF_EV_STATUS_MASK 0x20
cparata 0:e4f89df7a7a5 1765 status_t LSM6DSL_ACC_GYRO_R_FF_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_FF_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 1766
cparata 0:e4f89df7a7a5 1767 /*******************************************************************************
cparata 0:e4f89df7a7a5 1768 * Register : TAP_SRC
cparata 0:e4f89df7a7a5 1769 * Address : 0X1C
cparata 0:e4f89df7a7a5 1770 * Bit Group Name: Z_TAP
cparata 0:e4f89df7a7a5 1771 * Permission : RO
cparata 0:e4f89df7a7a5 1772 *******************************************************************************/
cparata 0:e4f89df7a7a5 1773 typedef enum {
cparata 0:e4f89df7a7a5 1774 LSM6DSL_ACC_GYRO_Z_TAP_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1775 LSM6DSL_ACC_GYRO_Z_TAP_DETECTED =0x01,
cparata 0:e4f89df7a7a5 1776 } LSM6DSL_ACC_GYRO_Z_TAP_t;
cparata 0:e4f89df7a7a5 1777
cparata 0:e4f89df7a7a5 1778 #define LSM6DSL_ACC_GYRO_Z_TAP_MASK 0x01
cparata 0:e4f89df7a7a5 1779 status_t LSM6DSL_ACC_GYRO_R_Z_TAP(void *handle, LSM6DSL_ACC_GYRO_Z_TAP_t *value);
cparata 0:e4f89df7a7a5 1780
cparata 0:e4f89df7a7a5 1781 /*******************************************************************************
cparata 0:e4f89df7a7a5 1782 * Register : TAP_SRC
cparata 0:e4f89df7a7a5 1783 * Address : 0X1C
cparata 0:e4f89df7a7a5 1784 * Bit Group Name: Y_TAP
cparata 0:e4f89df7a7a5 1785 * Permission : RO
cparata 0:e4f89df7a7a5 1786 *******************************************************************************/
cparata 0:e4f89df7a7a5 1787 typedef enum {
cparata 0:e4f89df7a7a5 1788 LSM6DSL_ACC_GYRO_Y_TAP_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1789 LSM6DSL_ACC_GYRO_Y_TAP_DETECTED =0x02,
cparata 0:e4f89df7a7a5 1790 } LSM6DSL_ACC_GYRO_Y_TAP_t;
cparata 0:e4f89df7a7a5 1791
cparata 0:e4f89df7a7a5 1792 #define LSM6DSL_ACC_GYRO_Y_TAP_MASK 0x02
cparata 0:e4f89df7a7a5 1793 status_t LSM6DSL_ACC_GYRO_R_Y_TAP(void *handle, LSM6DSL_ACC_GYRO_Y_TAP_t *value);
cparata 0:e4f89df7a7a5 1794
cparata 0:e4f89df7a7a5 1795 /*******************************************************************************
cparata 0:e4f89df7a7a5 1796 * Register : TAP_SRC
cparata 0:e4f89df7a7a5 1797 * Address : 0X1C
cparata 0:e4f89df7a7a5 1798 * Bit Group Name: X_TAP
cparata 0:e4f89df7a7a5 1799 * Permission : RO
cparata 0:e4f89df7a7a5 1800 *******************************************************************************/
cparata 0:e4f89df7a7a5 1801 typedef enum {
cparata 0:e4f89df7a7a5 1802 LSM6DSL_ACC_GYRO_X_TAP_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1803 LSM6DSL_ACC_GYRO_X_TAP_DETECTED =0x04,
cparata 0:e4f89df7a7a5 1804 } LSM6DSL_ACC_GYRO_X_TAP_t;
cparata 0:e4f89df7a7a5 1805
cparata 0:e4f89df7a7a5 1806 #define LSM6DSL_ACC_GYRO_X_TAP_MASK 0x04
cparata 0:e4f89df7a7a5 1807 status_t LSM6DSL_ACC_GYRO_R_X_TAP(void *handle, LSM6DSL_ACC_GYRO_X_TAP_t *value);
cparata 0:e4f89df7a7a5 1808
cparata 0:e4f89df7a7a5 1809 /*******************************************************************************
cparata 0:e4f89df7a7a5 1810 * Register : TAP_SRC
cparata 0:e4f89df7a7a5 1811 * Address : 0X1C
cparata 0:e4f89df7a7a5 1812 * Bit Group Name: TAP_SIGN
cparata 0:e4f89df7a7a5 1813 * Permission : RO
cparata 0:e4f89df7a7a5 1814 *******************************************************************************/
cparata 0:e4f89df7a7a5 1815 typedef enum {
cparata 0:e4f89df7a7a5 1816 LSM6DSL_ACC_GYRO_TAP_SIGN_POS_SIGN =0x00,
cparata 0:e4f89df7a7a5 1817 LSM6DSL_ACC_GYRO_TAP_SIGN_NEG_SIGN =0x08,
cparata 0:e4f89df7a7a5 1818 } LSM6DSL_ACC_GYRO_TAP_SIGN_t;
cparata 0:e4f89df7a7a5 1819
cparata 0:e4f89df7a7a5 1820 #define LSM6DSL_ACC_GYRO_TAP_SIGN_MASK 0x08
cparata 0:e4f89df7a7a5 1821 status_t LSM6DSL_ACC_GYRO_R_TAP_SIGN(void *handle, LSM6DSL_ACC_GYRO_TAP_SIGN_t *value);
cparata 0:e4f89df7a7a5 1822
cparata 0:e4f89df7a7a5 1823 /*******************************************************************************
cparata 0:e4f89df7a7a5 1824 * Register : TAP_SRC
cparata 0:e4f89df7a7a5 1825 * Address : 0X1C
cparata 0:e4f89df7a7a5 1826 * Bit Group Name: DOUBLE_TAP_EV_STATUS
cparata 0:e4f89df7a7a5 1827 * Permission : RO
cparata 0:e4f89df7a7a5 1828 *******************************************************************************/
cparata 0:e4f89df7a7a5 1829 typedef enum {
cparata 0:e4f89df7a7a5 1830 LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1831 LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_DETECTED =0x10,
cparata 0:e4f89df7a7a5 1832 } LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t;
cparata 0:e4f89df7a7a5 1833
cparata 0:e4f89df7a7a5 1834 #define LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_MASK 0x10
cparata 0:e4f89df7a7a5 1835 status_t LSM6DSL_ACC_GYRO_R_DOUBLE_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 1836
cparata 0:e4f89df7a7a5 1837 /*******************************************************************************
cparata 0:e4f89df7a7a5 1838 * Register : TAP_SRC
cparata 0:e4f89df7a7a5 1839 * Address : 0X1C
cparata 0:e4f89df7a7a5 1840 * Bit Group Name: SINGLE_TAP_EV_STATUS
cparata 0:e4f89df7a7a5 1841 * Permission : RO
cparata 0:e4f89df7a7a5 1842 *******************************************************************************/
cparata 0:e4f89df7a7a5 1843 typedef enum {
cparata 0:e4f89df7a7a5 1844 LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1845 LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_DETECTED =0x20,
cparata 0:e4f89df7a7a5 1846 } LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t;
cparata 0:e4f89df7a7a5 1847
cparata 0:e4f89df7a7a5 1848 #define LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_MASK 0x20
cparata 0:e4f89df7a7a5 1849 status_t LSM6DSL_ACC_GYRO_R_SINGLE_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 1850
cparata 0:e4f89df7a7a5 1851 /*******************************************************************************
cparata 0:e4f89df7a7a5 1852 * Register : TAP_SRC
cparata 0:e4f89df7a7a5 1853 * Address : 0X1C
cparata 0:e4f89df7a7a5 1854 * Bit Group Name: TAP_EV_STATUS
cparata 0:e4f89df7a7a5 1855 * Permission : RO
cparata 0:e4f89df7a7a5 1856 *******************************************************************************/
cparata 0:e4f89df7a7a5 1857 typedef enum {
cparata 0:e4f89df7a7a5 1858 LSM6DSL_ACC_GYRO_TAP_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1859 LSM6DSL_ACC_GYRO_TAP_EV_STATUS_DETECTED =0x40,
cparata 0:e4f89df7a7a5 1860 } LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t;
cparata 0:e4f89df7a7a5 1861
cparata 0:e4f89df7a7a5 1862 #define LSM6DSL_ACC_GYRO_TAP_EV_STATUS_MASK 0x40
cparata 0:e4f89df7a7a5 1863 status_t LSM6DSL_ACC_GYRO_R_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 1864
cparata 0:e4f89df7a7a5 1865 /*******************************************************************************
cparata 0:e4f89df7a7a5 1866 * Register : D6D_SRC
cparata 0:e4f89df7a7a5 1867 * Address : 0X1D
cparata 0:e4f89df7a7a5 1868 * Bit Group Name: DSD_XL
cparata 0:e4f89df7a7a5 1869 * Permission : RO
cparata 0:e4f89df7a7a5 1870 *******************************************************************************/
cparata 0:e4f89df7a7a5 1871 typedef enum {
cparata 0:e4f89df7a7a5 1872 LSM6DSL_ACC_GYRO_DSD_XL_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1873 LSM6DSL_ACC_GYRO_DSD_XL_DETECTED =0x01,
cparata 0:e4f89df7a7a5 1874 } LSM6DSL_ACC_GYRO_DSD_XL_t;
cparata 0:e4f89df7a7a5 1875
cparata 0:e4f89df7a7a5 1876 #define LSM6DSL_ACC_GYRO_DSD_XL_MASK 0x01
cparata 0:e4f89df7a7a5 1877 status_t LSM6DSL_ACC_GYRO_R_DSD_XL(void *handle, LSM6DSL_ACC_GYRO_DSD_XL_t *value);
cparata 0:e4f89df7a7a5 1878
cparata 0:e4f89df7a7a5 1879 /*******************************************************************************
cparata 0:e4f89df7a7a5 1880 * Register : D6D_SRC
cparata 0:e4f89df7a7a5 1881 * Address : 0X1D
cparata 0:e4f89df7a7a5 1882 * Bit Group Name: DSD_XH
cparata 0:e4f89df7a7a5 1883 * Permission : RO
cparata 0:e4f89df7a7a5 1884 *******************************************************************************/
cparata 0:e4f89df7a7a5 1885 typedef enum {
cparata 0:e4f89df7a7a5 1886 LSM6DSL_ACC_GYRO_DSD_XH_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1887 LSM6DSL_ACC_GYRO_DSD_XH_DETECTED =0x02,
cparata 0:e4f89df7a7a5 1888 } LSM6DSL_ACC_GYRO_DSD_XH_t;
cparata 0:e4f89df7a7a5 1889
cparata 0:e4f89df7a7a5 1890 #define LSM6DSL_ACC_GYRO_DSD_XH_MASK 0x02
cparata 0:e4f89df7a7a5 1891 status_t LSM6DSL_ACC_GYRO_R_DSD_XH(void *handle, LSM6DSL_ACC_GYRO_DSD_XH_t *value);
cparata 0:e4f89df7a7a5 1892
cparata 0:e4f89df7a7a5 1893 /*******************************************************************************
cparata 0:e4f89df7a7a5 1894 * Register : D6D_SRC
cparata 0:e4f89df7a7a5 1895 * Address : 0X1D
cparata 0:e4f89df7a7a5 1896 * Bit Group Name: DSD_YL
cparata 0:e4f89df7a7a5 1897 * Permission : RO
cparata 0:e4f89df7a7a5 1898 *******************************************************************************/
cparata 0:e4f89df7a7a5 1899 typedef enum {
cparata 0:e4f89df7a7a5 1900 LSM6DSL_ACC_GYRO_DSD_YL_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1901 LSM6DSL_ACC_GYRO_DSD_YL_DETECTED =0x04,
cparata 0:e4f89df7a7a5 1902 } LSM6DSL_ACC_GYRO_DSD_YL_t;
cparata 0:e4f89df7a7a5 1903
cparata 0:e4f89df7a7a5 1904 #define LSM6DSL_ACC_GYRO_DSD_YL_MASK 0x04
cparata 0:e4f89df7a7a5 1905 status_t LSM6DSL_ACC_GYRO_R_DSD_YL(void *handle, LSM6DSL_ACC_GYRO_DSD_YL_t *value);
cparata 0:e4f89df7a7a5 1906
cparata 0:e4f89df7a7a5 1907 /*******************************************************************************
cparata 0:e4f89df7a7a5 1908 * Register : D6D_SRC
cparata 0:e4f89df7a7a5 1909 * Address : 0X1D
cparata 0:e4f89df7a7a5 1910 * Bit Group Name: DSD_YH
cparata 0:e4f89df7a7a5 1911 * Permission : RO
cparata 0:e4f89df7a7a5 1912 *******************************************************************************/
cparata 0:e4f89df7a7a5 1913 typedef enum {
cparata 0:e4f89df7a7a5 1914 LSM6DSL_ACC_GYRO_DSD_YH_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1915 LSM6DSL_ACC_GYRO_DSD_YH_DETECTED =0x08,
cparata 0:e4f89df7a7a5 1916 } LSM6DSL_ACC_GYRO_DSD_YH_t;
cparata 0:e4f89df7a7a5 1917
cparata 0:e4f89df7a7a5 1918 #define LSM6DSL_ACC_GYRO_DSD_YH_MASK 0x08
cparata 0:e4f89df7a7a5 1919 status_t LSM6DSL_ACC_GYRO_R_DSD_YH(void *handle, LSM6DSL_ACC_GYRO_DSD_YH_t *value);
cparata 0:e4f89df7a7a5 1920
cparata 0:e4f89df7a7a5 1921 /*******************************************************************************
cparata 0:e4f89df7a7a5 1922 * Register : D6D_SRC
cparata 0:e4f89df7a7a5 1923 * Address : 0X1D
cparata 0:e4f89df7a7a5 1924 * Bit Group Name: DSD_ZL
cparata 0:e4f89df7a7a5 1925 * Permission : RO
cparata 0:e4f89df7a7a5 1926 *******************************************************************************/
cparata 0:e4f89df7a7a5 1927 typedef enum {
cparata 0:e4f89df7a7a5 1928 LSM6DSL_ACC_GYRO_DSD_ZL_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1929 LSM6DSL_ACC_GYRO_DSD_ZL_DETECTED =0x10,
cparata 0:e4f89df7a7a5 1930 } LSM6DSL_ACC_GYRO_DSD_ZL_t;
cparata 0:e4f89df7a7a5 1931
cparata 0:e4f89df7a7a5 1932 #define LSM6DSL_ACC_GYRO_DSD_ZL_MASK 0x10
cparata 0:e4f89df7a7a5 1933 status_t LSM6DSL_ACC_GYRO_R_DSD_ZL(void *handle, LSM6DSL_ACC_GYRO_DSD_ZL_t *value);
cparata 0:e4f89df7a7a5 1934
cparata 0:e4f89df7a7a5 1935 /*******************************************************************************
cparata 0:e4f89df7a7a5 1936 * Register : D6D_SRC
cparata 0:e4f89df7a7a5 1937 * Address : 0X1D
cparata 0:e4f89df7a7a5 1938 * Bit Group Name: DSD_ZH
cparata 0:e4f89df7a7a5 1939 * Permission : RO
cparata 0:e4f89df7a7a5 1940 *******************************************************************************/
cparata 0:e4f89df7a7a5 1941 typedef enum {
cparata 0:e4f89df7a7a5 1942 LSM6DSL_ACC_GYRO_DSD_ZH_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1943 LSM6DSL_ACC_GYRO_DSD_ZH_DETECTED =0x20,
cparata 0:e4f89df7a7a5 1944 } LSM6DSL_ACC_GYRO_DSD_ZH_t;
cparata 0:e4f89df7a7a5 1945
cparata 0:e4f89df7a7a5 1946 #define LSM6DSL_ACC_GYRO_DSD_ZH_MASK 0x20
cparata 0:e4f89df7a7a5 1947 status_t LSM6DSL_ACC_GYRO_R_DSD_ZH(void *handle, LSM6DSL_ACC_GYRO_DSD_ZH_t *value);
cparata 0:e4f89df7a7a5 1948
cparata 0:e4f89df7a7a5 1949 /*******************************************************************************
cparata 0:e4f89df7a7a5 1950 * Register : D6D_SRC
cparata 0:e4f89df7a7a5 1951 * Address : 0X1D
cparata 0:e4f89df7a7a5 1952 * Bit Group Name: D6D_EV_STATUS
cparata 0:e4f89df7a7a5 1953 * Permission : RO
cparata 0:e4f89df7a7a5 1954 *******************************************************************************/
cparata 0:e4f89df7a7a5 1955 typedef enum {
cparata 0:e4f89df7a7a5 1956 LSM6DSL_ACC_GYRO_D6D_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 1957 LSM6DSL_ACC_GYRO_D6D_EV_STATUS_DETECTED =0x40,
cparata 0:e4f89df7a7a5 1958 } LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t;
cparata 0:e4f89df7a7a5 1959
cparata 0:e4f89df7a7a5 1960 #define LSM6DSL_ACC_GYRO_D6D_EV_STATUS_MASK 0x40
cparata 0:e4f89df7a7a5 1961 status_t LSM6DSL_ACC_GYRO_R_D6D_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 1962
cparata 0:e4f89df7a7a5 1963 /*******************************************************************************
cparata 0:e4f89df7a7a5 1964 * Register : STATUS_REG
cparata 0:e4f89df7a7a5 1965 * Address : 0X1E
cparata 0:e4f89df7a7a5 1966 * Bit Group Name: XLDA
cparata 0:e4f89df7a7a5 1967 * Permission : RO
cparata 0:e4f89df7a7a5 1968 *******************************************************************************/
cparata 0:e4f89df7a7a5 1969 typedef enum {
cparata 0:e4f89df7a7a5 1970 LSM6DSL_ACC_GYRO_XLDA_NO_DATA_AVAIL =0x00,
cparata 0:e4f89df7a7a5 1971 LSM6DSL_ACC_GYRO_XLDA_DATA_AVAIL =0x01,
cparata 0:e4f89df7a7a5 1972 } LSM6DSL_ACC_GYRO_XLDA_t;
cparata 0:e4f89df7a7a5 1973
cparata 0:e4f89df7a7a5 1974 #define LSM6DSL_ACC_GYRO_XLDA_MASK 0x01
cparata 0:e4f89df7a7a5 1975 status_t LSM6DSL_ACC_GYRO_R_XLDA(void *handle, LSM6DSL_ACC_GYRO_XLDA_t *value);
cparata 0:e4f89df7a7a5 1976
cparata 0:e4f89df7a7a5 1977 /*******************************************************************************
cparata 0:e4f89df7a7a5 1978 * Register : STATUS_REG
cparata 0:e4f89df7a7a5 1979 * Address : 0X1E
cparata 0:e4f89df7a7a5 1980 * Bit Group Name: GDA
cparata 0:e4f89df7a7a5 1981 * Permission : RO
cparata 0:e4f89df7a7a5 1982 *******************************************************************************/
cparata 0:e4f89df7a7a5 1983 typedef enum {
cparata 0:e4f89df7a7a5 1984 LSM6DSL_ACC_GYRO_GDA_NO_DATA_AVAIL =0x00,
cparata 0:e4f89df7a7a5 1985 LSM6DSL_ACC_GYRO_GDA_DATA_AVAIL =0x02,
cparata 0:e4f89df7a7a5 1986 } LSM6DSL_ACC_GYRO_GDA_t;
cparata 0:e4f89df7a7a5 1987
cparata 0:e4f89df7a7a5 1988 #define LSM6DSL_ACC_GYRO_GDA_MASK 0x02
cparata 0:e4f89df7a7a5 1989 status_t LSM6DSL_ACC_GYRO_R_GDA(void *handle, LSM6DSL_ACC_GYRO_GDA_t *value);
cparata 0:e4f89df7a7a5 1990
cparata 0:e4f89df7a7a5 1991 /*******************************************************************************
cparata 0:e4f89df7a7a5 1992 * Register : STATUS_REG
cparata 0:e4f89df7a7a5 1993 * Address : 0X1E
cparata 0:e4f89df7a7a5 1994 * Bit Group Name: TDA
cparata 0:e4f89df7a7a5 1995 * Permission : RO
cparata 0:e4f89df7a7a5 1996 *******************************************************************************/
cparata 0:e4f89df7a7a5 1997 typedef enum {
cparata 0:e4f89df7a7a5 1998 LSM6DSL_ACC_GYRO_TDA_NO_DATA_AVAIL =0x00,
cparata 0:e4f89df7a7a5 1999 LSM6DSL_ACC_GYRO_TDA_DATA_AVAIL =0x04,
cparata 0:e4f89df7a7a5 2000 } LSM6DSL_ACC_GYRO_TDA_t;
cparata 0:e4f89df7a7a5 2001
cparata 0:e4f89df7a7a5 2002 #define LSM6DSL_ACC_GYRO_TDA_MASK 0x04
cparata 0:e4f89df7a7a5 2003 status_t LSM6DSL_ACC_GYRO_R_TDA(void *handle, LSM6DSL_ACC_GYRO_TDA_t *value);
cparata 0:e4f89df7a7a5 2004
cparata 0:e4f89df7a7a5 2005 /*******************************************************************************
cparata 0:e4f89df7a7a5 2006 * Register : FIFO_STATUS1
cparata 0:e4f89df7a7a5 2007 * Address : 0X3A
cparata 0:e4f89df7a7a5 2008 * Bit Group Name: DIFF_FIFO
cparata 0:e4f89df7a7a5 2009 * Permission : RO
cparata 0:e4f89df7a7a5 2010 *******************************************************************************/
cparata 0:e4f89df7a7a5 2011 #define LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS1_MASK 0xFF
cparata 0:e4f89df7a7a5 2012 #define LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS1_POSITION 0
cparata 0:e4f89df7a7a5 2013 #define LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS2_MASK 0xF
cparata 0:e4f89df7a7a5 2014 #define LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS2_POSITION 0
cparata 0:e4f89df7a7a5 2015 status_t LSM6DSL_ACC_GYRO_R_FIFONumOfEntries(void *handle, u16_t *value);
cparata 0:e4f89df7a7a5 2016
cparata 0:e4f89df7a7a5 2017 /*******************************************************************************
cparata 0:e4f89df7a7a5 2018 * Register : FIFO_STATUS2
cparata 0:e4f89df7a7a5 2019 * Address : 0X3B
cparata 0:e4f89df7a7a5 2020 * Bit Group Name: FIFO_EMPTY
cparata 0:e4f89df7a7a5 2021 * Permission : RO
cparata 0:e4f89df7a7a5 2022 *******************************************************************************/
cparata 0:e4f89df7a7a5 2023 typedef enum {
cparata 0:e4f89df7a7a5 2024 LSM6DSL_ACC_GYRO_FIFO_EMPTY_FIFO_NOT_EMPTY =0x00,
cparata 0:e4f89df7a7a5 2025 LSM6DSL_ACC_GYRO_FIFO_EMPTY_FIFO_EMPTY =0x10,
cparata 0:e4f89df7a7a5 2026 } LSM6DSL_ACC_GYRO_FIFO_EMPTY_t;
cparata 0:e4f89df7a7a5 2027
cparata 0:e4f89df7a7a5 2028 #define LSM6DSL_ACC_GYRO_FIFO_EMPTY_MASK 0x10
cparata 0:e4f89df7a7a5 2029 status_t LSM6DSL_ACC_GYRO_R_FIFOEmpty(void *handle, LSM6DSL_ACC_GYRO_FIFO_EMPTY_t *value);
cparata 0:e4f89df7a7a5 2030
cparata 0:e4f89df7a7a5 2031 /*******************************************************************************
cparata 0:e4f89df7a7a5 2032 * Register : FIFO_STATUS2
cparata 0:e4f89df7a7a5 2033 * Address : 0X3B
cparata 0:e4f89df7a7a5 2034 * Bit Group Name: FIFO_FULL
cparata 0:e4f89df7a7a5 2035 * Permission : RO
cparata 0:e4f89df7a7a5 2036 *******************************************************************************/
cparata 0:e4f89df7a7a5 2037 typedef enum {
cparata 0:e4f89df7a7a5 2038 LSM6DSL_ACC_GYRO_FIFO_FULL_FIFO_NOT_FULL =0x00,
cparata 0:e4f89df7a7a5 2039 LSM6DSL_ACC_GYRO_FIFO_FULL_FIFO_FULL =0x20,
cparata 0:e4f89df7a7a5 2040 } LSM6DSL_ACC_GYRO_FIFO_FULL_t;
cparata 0:e4f89df7a7a5 2041
cparata 0:e4f89df7a7a5 2042 #define LSM6DSL_ACC_GYRO_FIFO_FULL_MASK 0x20
cparata 0:e4f89df7a7a5 2043 status_t LSM6DSL_ACC_GYRO_R_FIFOFull(void *handle, LSM6DSL_ACC_GYRO_FIFO_FULL_t *value);
cparata 0:e4f89df7a7a5 2044
cparata 0:e4f89df7a7a5 2045 /*******************************************************************************
cparata 0:e4f89df7a7a5 2046 * Register : FIFO_STATUS2
cparata 0:e4f89df7a7a5 2047 * Address : 0X3B
cparata 0:e4f89df7a7a5 2048 * Bit Group Name: OVERRUN
cparata 0:e4f89df7a7a5 2049 * Permission : RO
cparata 0:e4f89df7a7a5 2050 *******************************************************************************/
cparata 0:e4f89df7a7a5 2051 typedef enum {
cparata 0:e4f89df7a7a5 2052 LSM6DSL_ACC_GYRO_OVERRUN_NO_OVERRUN =0x00,
cparata 0:e4f89df7a7a5 2053 LSM6DSL_ACC_GYRO_OVERRUN_OVERRUN =0x40,
cparata 0:e4f89df7a7a5 2054 } LSM6DSL_ACC_GYRO_OVERRUN_t;
cparata 0:e4f89df7a7a5 2055
cparata 0:e4f89df7a7a5 2056 #define LSM6DSL_ACC_GYRO_OVERRUN_MASK 0x40
cparata 0:e4f89df7a7a5 2057 status_t LSM6DSL_ACC_GYRO_R_OVERRUN(void *handle, LSM6DSL_ACC_GYRO_OVERRUN_t *value);
cparata 0:e4f89df7a7a5 2058
cparata 0:e4f89df7a7a5 2059 /*******************************************************************************
cparata 0:e4f89df7a7a5 2060 * Register : FIFO_STATUS2
cparata 0:e4f89df7a7a5 2061 * Address : 0X3B
cparata 0:e4f89df7a7a5 2062 * Bit Group Name: WTM
cparata 0:e4f89df7a7a5 2063 * Permission : RO
cparata 0:e4f89df7a7a5 2064 *******************************************************************************/
cparata 0:e4f89df7a7a5 2065 typedef enum {
cparata 0:e4f89df7a7a5 2066 LSM6DSL_ACC_GYRO_WTM_BELOW_WTM =0x00,
cparata 0:e4f89df7a7a5 2067 LSM6DSL_ACC_GYRO_WTM_ABOVE_OR_EQUAL_WTM =0x80,
cparata 0:e4f89df7a7a5 2068 } LSM6DSL_ACC_GYRO_WTM_t;
cparata 0:e4f89df7a7a5 2069
cparata 0:e4f89df7a7a5 2070 #define LSM6DSL_ACC_GYRO_WTM_MASK 0x80
cparata 0:e4f89df7a7a5 2071 status_t LSM6DSL_ACC_GYRO_R_WaterMark(void *handle, LSM6DSL_ACC_GYRO_WTM_t *value);
cparata 0:e4f89df7a7a5 2072
cparata 0:e4f89df7a7a5 2073 /*******************************************************************************
cparata 0:e4f89df7a7a5 2074 * Register : FIFO_STATUS3
cparata 0:e4f89df7a7a5 2075 * Address : 0X3C
cparata 0:e4f89df7a7a5 2076 * Bit Group Name: FIFO_PATTERN
cparata 0:e4f89df7a7a5 2077 * Permission : RO
cparata 0:e4f89df7a7a5 2078 *******************************************************************************/
cparata 0:e4f89df7a7a5 2079 #define LSM6DSL_ACC_GYRO_FIFO_STATUS3_PATTERN_MASK 0xFF
cparata 0:e4f89df7a7a5 2080 #define LSM6DSL_ACC_GYRO_FIFO_STATUS3_PATTERN_POSITION 0
cparata 0:e4f89df7a7a5 2081 #define LSM6DSL_ACC_GYRO_FIFO_STATUS4_PATTERN_MASK 0x03
cparata 0:e4f89df7a7a5 2082 #define LSM6DSL_ACC_GYRO_FIFO_STATUS4_PATTERN_POSITION 0
cparata 0:e4f89df7a7a5 2083 status_t LSM6DSL_ACC_GYRO_R_FIFOPattern(void *handle, u16_t *value);
cparata 0:e4f89df7a7a5 2084
cparata 0:e4f89df7a7a5 2085 /*******************************************************************************
cparata 0:e4f89df7a7a5 2086 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2087 * Address : 0X53
cparata 0:e4f89df7a7a5 2088 * Bit Group Name: SENS_HUB_END
cparata 0:e4f89df7a7a5 2089 * Permission : RO
cparata 0:e4f89df7a7a5 2090 *******************************************************************************/
cparata 0:e4f89df7a7a5 2091 typedef enum {
cparata 0:e4f89df7a7a5 2092 LSM6DSL_ACC_GYRO_SENS_HUB_END_STILL_ONGOING =0x00,
cparata 0:e4f89df7a7a5 2093 LSM6DSL_ACC_GYRO_SENS_HUB_END_OP_COMPLETED =0x01,
cparata 0:e4f89df7a7a5 2094 } LSM6DSL_ACC_GYRO_SENS_HUB_END_t;
cparata 0:e4f89df7a7a5 2095
cparata 0:e4f89df7a7a5 2096 #define LSM6DSL_ACC_GYRO_SENS_HUB_END_MASK 0x01
cparata 0:e4f89df7a7a5 2097 status_t LSM6DSL_ACC_GYRO_R_SENS_HUB_END(void *handle, LSM6DSL_ACC_GYRO_SENS_HUB_END_t *value);
cparata 0:e4f89df7a7a5 2098
cparata 0:e4f89df7a7a5 2099 /*******************************************************************************
cparata 0:e4f89df7a7a5 2100 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2101 * Address : 0X53
cparata 0:e4f89df7a7a5 2102 * Bit Group Name: SOFT_IRON_END
cparata 0:e4f89df7a7a5 2103 * Permission : RO
cparata 0:e4f89df7a7a5 2104 *******************************************************************************/
cparata 0:e4f89df7a7a5 2105 typedef enum {
cparata 0:e4f89df7a7a5 2106 LSM6DSL_ACC_GYRO_SOFT_IRON_END_NOT_COMPLETED =0x00,
cparata 0:e4f89df7a7a5 2107 LSM6DSL_ACC_GYRO_SOFT_IRON_END_COMPLETED =0x02,
cparata 0:e4f89df7a7a5 2108 } LSM6DSL_ACC_GYRO_SOFT_IRON_END_t;
cparata 0:e4f89df7a7a5 2109
cparata 0:e4f89df7a7a5 2110 #define LSM6DSL_ACC_GYRO_SOFT_IRON_END_MASK 0x02
cparata 0:e4f89df7a7a5 2111 status_t LSM6DSL_ACC_GYRO_R_SOFT_IRON_END(void *handle, LSM6DSL_ACC_GYRO_SOFT_IRON_END_t *value);
cparata 0:e4f89df7a7a5 2112
cparata 0:e4f89df7a7a5 2113 /*******************************************************************************
cparata 0:e4f89df7a7a5 2114 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2115 * Address : 0X53
cparata 0:e4f89df7a7a5 2116 * Bit Group Name: HI_FAIL
cparata 0:e4f89df7a7a5 2117 * Permission : RO
cparata 0:e4f89df7a7a5 2118 *******************************************************************************/
cparata 0:e4f89df7a7a5 2119 typedef enum {
cparata 0:e4f89df7a7a5 2120 LSM6DSL_ACC_GYRO_HARD_IRON_NORMAL =0x00,
cparata 0:e4f89df7a7a5 2121 LSM6DSL_ACC_GYRO_HARD_IRON_FAIL =0x04,
cparata 0:e4f89df7a7a5 2122 } LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t;
cparata 0:e4f89df7a7a5 2123
cparata 0:e4f89df7a7a5 2124 #define LSM6DSL_ACC_GYRO_HARD_IRON_STAT_MASK 0x04
cparata 0:e4f89df7a7a5 2125 status_t LSM6DSL_ACC_GYRO_R_HardIron(void *handle, LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t *value);
cparata 0:e4f89df7a7a5 2126
cparata 0:e4f89df7a7a5 2127 /*******************************************************************************
cparata 0:e4f89df7a7a5 2128 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2129 * Address : 0X53
cparata 0:e4f89df7a7a5 2130 * Bit Group Name: STEP_OVERFLOW
cparata 0:e4f89df7a7a5 2131 * Permission : RO
cparata 0:e4f89df7a7a5 2132 *******************************************************************************/
cparata 0:e4f89df7a7a5 2133 typedef enum {
cparata 0:e4f89df7a7a5 2134 LSM6DSL_ACC_GYRO_PEDO_STEP_IN_RANGE =0x00,
cparata 0:e4f89df7a7a5 2135 LSM6DSL_ACC_GYRO_PEDO_ESTEP_OVERFLOW =0x08,
cparata 0:e4f89df7a7a5 2136 } LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t;
cparata 0:e4f89df7a7a5 2137
cparata 0:e4f89df7a7a5 2138 #define LSM6DSL_ACC_GYRO_STEP_OVERFLOW_MASK 0x08
cparata 0:e4f89df7a7a5 2139 status_t LSM6DSL_ACC_GYRO_R_STEP_OVERFLOW(void *handle, LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t *value);
cparata 0:e4f89df7a7a5 2140
cparata 0:e4f89df7a7a5 2141 /*******************************************************************************
cparata 0:e4f89df7a7a5 2142 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2143 * Address : 0X53
cparata 0:e4f89df7a7a5 2144 * Bit Group Name: PEDO_EV_STATUS
cparata 0:e4f89df7a7a5 2145 * Permission : RO
cparata 0:e4f89df7a7a5 2146 *******************************************************************************/
cparata 0:e4f89df7a7a5 2147 typedef enum {
cparata 0:e4f89df7a7a5 2148 LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 2149 LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_DETECTED =0x10,
cparata 0:e4f89df7a7a5 2150 } LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t;
cparata 0:e4f89df7a7a5 2151
cparata 0:e4f89df7a7a5 2152 #define LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_MASK 0x10
cparata 0:e4f89df7a7a5 2153 status_t LSM6DSL_ACC_GYRO_R_PEDO_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 2154
cparata 0:e4f89df7a7a5 2155 /*******************************************************************************
cparata 0:e4f89df7a7a5 2156 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2157 * Address : 0X53
cparata 0:e4f89df7a7a5 2158 * Bit Group Name: TILT_EV_STATUS
cparata 0:e4f89df7a7a5 2159 * Permission : RO
cparata 0:e4f89df7a7a5 2160 *******************************************************************************/
cparata 0:e4f89df7a7a5 2161 typedef enum {
cparata 0:e4f89df7a7a5 2162 LSM6DSL_ACC_GYRO_TILT_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 2163 LSM6DSL_ACC_GYRO_TILT_EV_STATUS_DETECTED =0x20,
cparata 0:e4f89df7a7a5 2164 } LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t;
cparata 0:e4f89df7a7a5 2165
cparata 0:e4f89df7a7a5 2166 #define LSM6DSL_ACC_GYRO_TILT_EV_STATUS_MASK 0x20
cparata 0:e4f89df7a7a5 2167 status_t LSM6DSL_ACC_GYRO_R_TILT_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 2168
cparata 0:e4f89df7a7a5 2169 /*******************************************************************************
cparata 0:e4f89df7a7a5 2170 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2171 * Address : 0X53
cparata 0:e4f89df7a7a5 2172 * Bit Group Name: SIGN_MOT_EV_STATUS
cparata 0:e4f89df7a7a5 2173 * Permission : RO
cparata 0:e4f89df7a7a5 2174 *******************************************************************************/
cparata 0:e4f89df7a7a5 2175 typedef enum {
cparata 0:e4f89df7a7a5 2176 LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_NOT_DETECTED =0x00,
cparata 0:e4f89df7a7a5 2177 LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_DETECTED =0x40,
cparata 0:e4f89df7a7a5 2178 } LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t;
cparata 0:e4f89df7a7a5 2179
cparata 0:e4f89df7a7a5 2180 #define LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_MASK 0x40
cparata 0:e4f89df7a7a5 2181 status_t LSM6DSL_ACC_GYRO_R_SIGN_MOT_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t *value);
cparata 0:e4f89df7a7a5 2182
cparata 0:e4f89df7a7a5 2183 /*******************************************************************************
cparata 0:e4f89df7a7a5 2184 * Register : FUNC_SRC
cparata 0:e4f89df7a7a5 2185 * Address : 0X53
cparata 0:e4f89df7a7a5 2186 * Bit Group Name: STEP_COUNT_DELTA_IA
cparata 0:e4f89df7a7a5 2187 * Permission : RO
cparata 0:e4f89df7a7a5 2188 *******************************************************************************/
cparata 0:e4f89df7a7a5 2189 typedef enum {
cparata 0:e4f89df7a7a5 2190 LSM6DSL_ACC_GYRO_NO_STEP_COUNT_IN_DELTA =0x00,
cparata 0:e4f89df7a7a5 2191 LSM6DSL_ACC_GYRO_STEP_COUNT_IN_DELTA =0x80,
cparata 0:e4f89df7a7a5 2192 } LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t;
cparata 0:e4f89df7a7a5 2193
cparata 0:e4f89df7a7a5 2194 #define LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_MASK 0x80
cparata 0:e4f89df7a7a5 2195 status_t LSM6DSL_ACC_GYRO_R_STEP_COUNT_DELTA(void *handle, LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t *value);
cparata 0:e4f89df7a7a5 2196
cparata 0:e4f89df7a7a5 2197 /*******************************************************************************
cparata 0:e4f89df7a7a5 2198 * Register : TAP_CFG1
cparata 0:e4f89df7a7a5 2199 * Address : 0X58
cparata 0:e4f89df7a7a5 2200 * Bit Group Name: LIR
cparata 0:e4f89df7a7a5 2201 * Permission : RW
cparata 0:e4f89df7a7a5 2202 *******************************************************************************/
cparata 0:e4f89df7a7a5 2203 typedef enum {
cparata 0:e4f89df7a7a5 2204 LSM6DSL_ACC_GYRO_LIR_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2205 LSM6DSL_ACC_GYRO_LIR_ENABLED =0x01,
cparata 0:e4f89df7a7a5 2206 } LSM6DSL_ACC_GYRO_LIR_t;
cparata 0:e4f89df7a7a5 2207
cparata 0:e4f89df7a7a5 2208 #define LSM6DSL_ACC_GYRO_LIR_MASK 0x01
cparata 0:e4f89df7a7a5 2209 status_t LSM6DSL_ACC_GYRO_W_LIR(void *handle, LSM6DSL_ACC_GYRO_LIR_t newValue);
cparata 0:e4f89df7a7a5 2210 status_t LSM6DSL_ACC_GYRO_R_LIR(void *handle, LSM6DSL_ACC_GYRO_LIR_t *value);
cparata 0:e4f89df7a7a5 2211
cparata 0:e4f89df7a7a5 2212 /*******************************************************************************
cparata 0:e4f89df7a7a5 2213 * Register : TAP_CFG1
cparata 0:e4f89df7a7a5 2214 * Address : 0X58
cparata 0:e4f89df7a7a5 2215 * Bit Group Name: TAP_Z_EN
cparata 0:e4f89df7a7a5 2216 * Permission : RW
cparata 0:e4f89df7a7a5 2217 *******************************************************************************/
cparata 0:e4f89df7a7a5 2218 typedef enum {
cparata 0:e4f89df7a7a5 2219 LSM6DSL_ACC_GYRO_TAP_Z_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2220 LSM6DSL_ACC_GYRO_TAP_Z_EN_ENABLED =0x02,
cparata 0:e4f89df7a7a5 2221 } LSM6DSL_ACC_GYRO_TAP_Z_EN_t;
cparata 0:e4f89df7a7a5 2222
cparata 0:e4f89df7a7a5 2223 #define LSM6DSL_ACC_GYRO_TAP_Z_EN_MASK 0x02
cparata 0:e4f89df7a7a5 2224 status_t LSM6DSL_ACC_GYRO_W_TAP_Z_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Z_EN_t newValue);
cparata 0:e4f89df7a7a5 2225 status_t LSM6DSL_ACC_GYRO_R_TAP_Z_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Z_EN_t *value);
cparata 0:e4f89df7a7a5 2226
cparata 0:e4f89df7a7a5 2227 /*******************************************************************************
cparata 0:e4f89df7a7a5 2228 * Register : TAP_CFG1
cparata 0:e4f89df7a7a5 2229 * Address : 0X58
cparata 0:e4f89df7a7a5 2230 * Bit Group Name: TAP_Y_EN
cparata 0:e4f89df7a7a5 2231 * Permission : RW
cparata 0:e4f89df7a7a5 2232 *******************************************************************************/
cparata 0:e4f89df7a7a5 2233 typedef enum {
cparata 0:e4f89df7a7a5 2234 LSM6DSL_ACC_GYRO_TAP_Y_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2235 LSM6DSL_ACC_GYRO_TAP_Y_EN_ENABLED =0x04,
cparata 0:e4f89df7a7a5 2236 } LSM6DSL_ACC_GYRO_TAP_Y_EN_t;
cparata 0:e4f89df7a7a5 2237
cparata 0:e4f89df7a7a5 2238 #define LSM6DSL_ACC_GYRO_TAP_Y_EN_MASK 0x04
cparata 0:e4f89df7a7a5 2239 status_t LSM6DSL_ACC_GYRO_W_TAP_Y_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Y_EN_t newValue);
cparata 0:e4f89df7a7a5 2240 status_t LSM6DSL_ACC_GYRO_R_TAP_Y_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Y_EN_t *value);
cparata 0:e4f89df7a7a5 2241
cparata 0:e4f89df7a7a5 2242 /*******************************************************************************
cparata 0:e4f89df7a7a5 2243 * Register : TAP_CFG1
cparata 0:e4f89df7a7a5 2244 * Address : 0X58
cparata 0:e4f89df7a7a5 2245 * Bit Group Name: TAP_X_EN
cparata 0:e4f89df7a7a5 2246 * Permission : RW
cparata 0:e4f89df7a7a5 2247 *******************************************************************************/
cparata 0:e4f89df7a7a5 2248 typedef enum {
cparata 0:e4f89df7a7a5 2249 LSM6DSL_ACC_GYRO_TAP_X_EN_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2250 LSM6DSL_ACC_GYRO_TAP_X_EN_ENABLED =0x08,
cparata 0:e4f89df7a7a5 2251 } LSM6DSL_ACC_GYRO_TAP_X_EN_t;
cparata 0:e4f89df7a7a5 2252
cparata 0:e4f89df7a7a5 2253 #define LSM6DSL_ACC_GYRO_TAP_X_EN_MASK 0x08
cparata 0:e4f89df7a7a5 2254 status_t LSM6DSL_ACC_GYRO_W_TAP_X_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_X_EN_t newValue);
cparata 0:e4f89df7a7a5 2255 status_t LSM6DSL_ACC_GYRO_R_TAP_X_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_X_EN_t *value);
cparata 0:e4f89df7a7a5 2256 /*******************************************************************************
cparata 0:e4f89df7a7a5 2257 * Register : TAP_CFG1
cparata 0:e4f89df7a7a5 2258 * Address : 0X58
cparata 0:e4f89df7a7a5 2259 * Bit Group Name: SLOPE_FDS
cparata 0:e4f89df7a7a5 2260 * Permission : RW
cparata 0:e4f89df7a7a5 2261 *******************************************************************************/
cparata 0:e4f89df7a7a5 2262 typedef enum {
cparata 0:e4f89df7a7a5 2263 LSM6DSL_ACC_GYRO_SLOPE_FDS_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2264 LSM6DSL_ACC_GYRO_SLOPE_FDS_ENABLED =0x10,
cparata 0:e4f89df7a7a5 2265 } LSM6DSL_ACC_GYRO_SLOPE_FDS_t;
cparata 0:e4f89df7a7a5 2266
cparata 0:e4f89df7a7a5 2267 #define LSM6DSL_ACC_GYRO_SLOPE_FDS_MASK 0x10
cparata 0:e4f89df7a7a5 2268 status_t LSM6DSL_ACC_GYRO_W_SLOPE_FDS(void *handle, LSM6DSL_ACC_GYRO_SLOPE_FDS_t newValue);
cparata 0:e4f89df7a7a5 2269 status_t LSM6DSL_ACC_GYRO_R_SLOPE_FDS(void *handle, LSM6DSL_ACC_GYRO_SLOPE_FDS_t *value);
cparata 0:e4f89df7a7a5 2270
cparata 0:e4f89df7a7a5 2271 /*******************************************************************************
cparata 0:e4f89df7a7a5 2272 * Register : TAP_CFG1
cparata 0:e4f89df7a7a5 2273 * Address : 0X58
cparata 0:e4f89df7a7a5 2274 * Bit Group Name: INTERRUPTS_ENABLE
cparata 0:e4f89df7a7a5 2275 * Permission : RW
cparata 0:e4f89df7a7a5 2276 *******************************************************************************/
cparata 0:e4f89df7a7a5 2277 typedef enum {
cparata 0:e4f89df7a7a5 2278 LSM6DSL_ACC_GYRO_BASIC_INT_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2279 LSM6DSL_ACC_GYRO_BASIC_INT_ENABLED =0x80,
cparata 0:e4f89df7a7a5 2280 } LSM6DSL_ACC_GYRO_INT_EN_t;
cparata 0:e4f89df7a7a5 2281
cparata 0:e4f89df7a7a5 2282 #define LSM6DSL_ACC_GYRO_INT_EN_MASK 0x80
cparata 0:e4f89df7a7a5 2283 status_t LSM6DSL_ACC_GYRO_W_BASIC_INT(void *handle, LSM6DSL_ACC_GYRO_INT_EN_t newValue);
cparata 0:e4f89df7a7a5 2284 status_t LSM6DSL_ACC_GYRO_R_BASIC_INT(void *handle, LSM6DSL_ACC_GYRO_INT_EN_t *value);
cparata 0:e4f89df7a7a5 2285
cparata 0:e4f89df7a7a5 2286 /*******************************************************************************
cparata 0:e4f89df7a7a5 2287 * Register : TAP_THS_6D
cparata 0:e4f89df7a7a5 2288 * Address : 0X59
cparata 0:e4f89df7a7a5 2289 * Bit Group Name: TAP_THS
cparata 0:e4f89df7a7a5 2290 * Permission : RW
cparata 0:e4f89df7a7a5 2291 *******************************************************************************/
cparata 0:e4f89df7a7a5 2292 #define LSM6DSL_ACC_GYRO_TAP_THS_MASK 0x1F
cparata 0:e4f89df7a7a5 2293 #define LSM6DSL_ACC_GYRO_TAP_THS_POSITION 0
cparata 0:e4f89df7a7a5 2294 status_t LSM6DSL_ACC_GYRO_W_TAP_THS(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2295 status_t LSM6DSL_ACC_GYRO_R_TAP_THS(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2296
cparata 0:e4f89df7a7a5 2297 /*******************************************************************************
cparata 0:e4f89df7a7a5 2298 * Register : TAP_THS_6D
cparata 0:e4f89df7a7a5 2299 * Address : 0X59
cparata 0:e4f89df7a7a5 2300 * Bit Group Name: SIXD_THS
cparata 0:e4f89df7a7a5 2301 * Permission : RW
cparata 0:e4f89df7a7a5 2302 *******************************************************************************/
cparata 0:e4f89df7a7a5 2303 typedef enum {
cparata 0:e4f89df7a7a5 2304 LSM6DSL_ACC_GYRO_SIXD_THS_80_degree =0x00,
cparata 0:e4f89df7a7a5 2305 LSM6DSL_ACC_GYRO_SIXD_THS_70_degree =0x20,
cparata 0:e4f89df7a7a5 2306 LSM6DSL_ACC_GYRO_SIXD_THS_60_degree =0x40,
cparata 0:e4f89df7a7a5 2307 LSM6DSL_ACC_GYRO_SIXD_THS_50_degree =0x60,
cparata 0:e4f89df7a7a5 2308 } LSM6DSL_ACC_GYRO_SIXD_THS_t;
cparata 0:e4f89df7a7a5 2309
cparata 0:e4f89df7a7a5 2310 #define LSM6DSL_ACC_GYRO_SIXD_THS_MASK 0x60
cparata 0:e4f89df7a7a5 2311 status_t LSM6DSL_ACC_GYRO_W_SIXD_THS(void *handle, LSM6DSL_ACC_GYRO_SIXD_THS_t newValue);
cparata 0:e4f89df7a7a5 2312 status_t LSM6DSL_ACC_GYRO_R_SIXD_THS(void *handle, LSM6DSL_ACC_GYRO_SIXD_THS_t *value);
cparata 0:e4f89df7a7a5 2313
cparata 0:e4f89df7a7a5 2314 /*******************************************************************************
cparata 0:e4f89df7a7a5 2315 * Register : TAP_THS_6D
cparata 0:e4f89df7a7a5 2316 * Address : 0X59
cparata 0:e4f89df7a7a5 2317 * Bit Group Name: D4D_EN
cparata 0:e4f89df7a7a5 2318 * Permission : RW
cparata 0:e4f89df7a7a5 2319 *******************************************************************************/
cparata 0:e4f89df7a7a5 2320 typedef enum {
cparata 0:e4f89df7a7a5 2321 LSM6DSL_ACC_GYRO_D4D_DIS =0x00,
cparata 0:e4f89df7a7a5 2322 LSM6DSL_ACC_GYRO_D4D_EN =0x80,
cparata 0:e4f89df7a7a5 2323 } LSM6DSL_ACC_GYRO_D4D_t;
cparata 0:e4f89df7a7a5 2324
cparata 0:e4f89df7a7a5 2325 #define LSM6DSL_ACC_GYRO_D4D_MASK 0x80
cparata 0:e4f89df7a7a5 2326 status_t LSM6DSL_ACC_GYRO_W_D4D(void *handle, LSM6DSL_ACC_GYRO_D4D_t newValue);
cparata 0:e4f89df7a7a5 2327 status_t LSM6DSL_ACC_GYRO_R_D4D(void *handle, LSM6DSL_ACC_GYRO_D4D_t *value);
cparata 0:e4f89df7a7a5 2328
cparata 0:e4f89df7a7a5 2329 /*******************************************************************************
cparata 0:e4f89df7a7a5 2330 * Register : INT_DUR2
cparata 0:e4f89df7a7a5 2331 * Address : 0X5A
cparata 0:e4f89df7a7a5 2332 * Bit Group Name: SHOCK
cparata 0:e4f89df7a7a5 2333 * Permission : RW
cparata 0:e4f89df7a7a5 2334 *******************************************************************************/
cparata 0:e4f89df7a7a5 2335 #define LSM6DSL_ACC_GYRO_SHOCK_MASK 0x03
cparata 0:e4f89df7a7a5 2336 #define LSM6DSL_ACC_GYRO_SHOCK_POSITION 0
cparata 0:e4f89df7a7a5 2337 status_t LSM6DSL_ACC_GYRO_W_SHOCK_Duration(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2338 status_t LSM6DSL_ACC_GYRO_R_SHOCK_Duration(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2339
cparata 0:e4f89df7a7a5 2340 /*******************************************************************************
cparata 0:e4f89df7a7a5 2341 * Register : INT_DUR2
cparata 0:e4f89df7a7a5 2342 * Address : 0X5A
cparata 0:e4f89df7a7a5 2343 * Bit Group Name: QUIET
cparata 0:e4f89df7a7a5 2344 * Permission : RW
cparata 0:e4f89df7a7a5 2345 *******************************************************************************/
cparata 0:e4f89df7a7a5 2346 #define LSM6DSL_ACC_GYRO_QUIET_MASK 0x0C
cparata 0:e4f89df7a7a5 2347 #define LSM6DSL_ACC_GYRO_QUIET_POSITION 2
cparata 0:e4f89df7a7a5 2348 status_t LSM6DSL_ACC_GYRO_W_QUIET_Duration(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2349 status_t LSM6DSL_ACC_GYRO_R_QUIET_Duration(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2350
cparata 0:e4f89df7a7a5 2351 /*******************************************************************************
cparata 0:e4f89df7a7a5 2352 * Register : INT_DUR2
cparata 0:e4f89df7a7a5 2353 * Address : 0X5A
cparata 0:e4f89df7a7a5 2354 * Bit Group Name: DUR
cparata 0:e4f89df7a7a5 2355 * Permission : RW
cparata 0:e4f89df7a7a5 2356 *******************************************************************************/
cparata 0:e4f89df7a7a5 2357 #define LSM6DSL_ACC_GYRO_DUR_MASK 0xF0
cparata 0:e4f89df7a7a5 2358 #define LSM6DSL_ACC_GYRO_DUR_POSITION 4
cparata 0:e4f89df7a7a5 2359 status_t LSM6DSL_ACC_GYRO_W_DUR(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2360 status_t LSM6DSL_ACC_GYRO_R_DUR(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2361
cparata 0:e4f89df7a7a5 2362 /*******************************************************************************
cparata 0:e4f89df7a7a5 2363 * Register : WAKE_UP_THS
cparata 0:e4f89df7a7a5 2364 * Address : 0X5B
cparata 0:e4f89df7a7a5 2365 * Bit Group Name: WK_THS
cparata 0:e4f89df7a7a5 2366 * Permission : RW
cparata 0:e4f89df7a7a5 2367 *******************************************************************************/
cparata 0:e4f89df7a7a5 2368 #define LSM6DSL_ACC_GYRO_WK_THS_MASK 0x3F
cparata 0:e4f89df7a7a5 2369 #define LSM6DSL_ACC_GYRO_WK_THS_POSITION 0
cparata 0:e4f89df7a7a5 2370 status_t LSM6DSL_ACC_GYRO_W_WK_THS(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2371 status_t LSM6DSL_ACC_GYRO_R_WK_THS(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2372
cparata 0:e4f89df7a7a5 2373 /*******************************************************************************
cparata 0:e4f89df7a7a5 2374 * Register : WAKE_UP_THS
cparata 0:e4f89df7a7a5 2375 * Address : 0X5B
cparata 0:e4f89df7a7a5 2376 * Bit Group Name: SINGLE_DOUBLE_TAP
cparata 0:e4f89df7a7a5 2377 * Permission : RW
cparata 0:e4f89df7a7a5 2378 *******************************************************************************/
cparata 0:e4f89df7a7a5 2379 typedef enum {
cparata 0:e4f89df7a7a5 2380 LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_SINGLE_TAP =0x00,
cparata 0:e4f89df7a7a5 2381 LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_DOUBLE_TAP =0x80,
cparata 0:e4f89df7a7a5 2382 } LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t;
cparata 0:e4f89df7a7a5 2383
cparata 0:e4f89df7a7a5 2384 #define LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_MASK 0x80
cparata 0:e4f89df7a7a5 2385 status_t LSM6DSL_ACC_GYRO_W_SINGLE_DOUBLE_TAP_EV(void *handle, LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t newValue);
cparata 0:e4f89df7a7a5 2386 status_t LSM6DSL_ACC_GYRO_R_SINGLE_DOUBLE_TAP_EV(void *handle, LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t *value);
cparata 0:e4f89df7a7a5 2387
cparata 0:e4f89df7a7a5 2388 /*******************************************************************************
cparata 0:e4f89df7a7a5 2389 * Register : WAKE_UP_DUR
cparata 0:e4f89df7a7a5 2390 * Address : 0X5C
cparata 0:e4f89df7a7a5 2391 * Bit Group Name: SLEEP_DUR
cparata 0:e4f89df7a7a5 2392 * Permission : RW
cparata 0:e4f89df7a7a5 2393 *******************************************************************************/
cparata 0:e4f89df7a7a5 2394 #define LSM6DSL_ACC_GYRO_SLEEP_DUR_MASK 0x0F
cparata 0:e4f89df7a7a5 2395 #define LSM6DSL_ACC_GYRO_SLEEP_DUR_POSITION 0
cparata 0:e4f89df7a7a5 2396 status_t LSM6DSL_ACC_GYRO_W_SLEEP_DUR(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2397 status_t LSM6DSL_ACC_GYRO_R_SLEEP_DUR(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2398
cparata 0:e4f89df7a7a5 2399 /*******************************************************************************
cparata 0:e4f89df7a7a5 2400 * Register : WAKE_UP_DUR
cparata 0:e4f89df7a7a5 2401 * Address : 0X5C
cparata 0:e4f89df7a7a5 2402 * Bit Group Name: TIMER_HR
cparata 0:e4f89df7a7a5 2403 * Permission : RW
cparata 0:e4f89df7a7a5 2404 *******************************************************************************/
cparata 0:e4f89df7a7a5 2405 typedef enum {
cparata 0:e4f89df7a7a5 2406 LSM6DSL_ACC_GYRO_TIMER_HR_6_4ms =0x00,
cparata 0:e4f89df7a7a5 2407 LSM6DSL_ACC_GYRO_TIMER_HR_25us =0x10,
cparata 0:e4f89df7a7a5 2408 } LSM6DSL_ACC_GYRO_TIMER_HR_t;
cparata 0:e4f89df7a7a5 2409
cparata 0:e4f89df7a7a5 2410 #define LSM6DSL_ACC_GYRO_TIMER_HR_MASK 0x10
cparata 0:e4f89df7a7a5 2411 status_t LSM6DSL_ACC_GYRO_W_TIMER_HR(void *handle, LSM6DSL_ACC_GYRO_TIMER_HR_t newValue);
cparata 0:e4f89df7a7a5 2412 status_t LSM6DSL_ACC_GYRO_R_TIMER_HR(void *handle, LSM6DSL_ACC_GYRO_TIMER_HR_t *value);
cparata 0:e4f89df7a7a5 2413
cparata 0:e4f89df7a7a5 2414 /*******************************************************************************
cparata 0:e4f89df7a7a5 2415 * Register : WAKE_UP_DUR
cparata 0:e4f89df7a7a5 2416 * Address : 0X5C
cparata 0:e4f89df7a7a5 2417 * Bit Group Name: WAKE_DUR
cparata 0:e4f89df7a7a5 2418 * Permission : RW
cparata 0:e4f89df7a7a5 2419 *******************************************************************************/
cparata 0:e4f89df7a7a5 2420 #define LSM6DSL_ACC_GYRO_WAKE_DUR_MASK 0x60
cparata 0:e4f89df7a7a5 2421 #define LSM6DSL_ACC_GYRO_WAKE_DUR_POSITION 5
cparata 0:e4f89df7a7a5 2422 status_t LSM6DSL_ACC_GYRO_W_WAKE_DUR(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2423 status_t LSM6DSL_ACC_GYRO_R_WAKE_DUR(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2424
cparata 0:e4f89df7a7a5 2425 /*******************************************************************************
cparata 0:e4f89df7a7a5 2426 * Register : FREE_FALL
cparata 0:e4f89df7a7a5 2427 * Address : 0X5D
cparata 0:e4f89df7a7a5 2428 * Bit Group Name: FF_DUR
cparata 0:e4f89df7a7a5 2429 * Permission : RW
cparata 0:e4f89df7a7a5 2430 *******************************************************************************/
cparata 0:e4f89df7a7a5 2431 #define LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_MASK 0xF8
cparata 0:e4f89df7a7a5 2432 #define LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_POSITION 3
cparata 0:e4f89df7a7a5 2433 #define LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_MASK 0x80
cparata 0:e4f89df7a7a5 2434 #define LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_POSITION 7
cparata 0:e4f89df7a7a5 2435 status_t LSM6DSL_ACC_GYRO_W_FF_Duration(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2436 status_t LSM6DSL_ACC_GYRO_R_FF_Duration(void *handle, u8_t *value);
cparata 0:e4f89df7a7a5 2437
cparata 0:e4f89df7a7a5 2438
cparata 0:e4f89df7a7a5 2439 /*******************************************************************************
cparata 0:e4f89df7a7a5 2440 * Register : FREE_FALL
cparata 0:e4f89df7a7a5 2441 * Address : 0X5D
cparata 0:e4f89df7a7a5 2442 * Bit Group Name: FF_THS
cparata 0:e4f89df7a7a5 2443 * Permission : RW
cparata 0:e4f89df7a7a5 2444 *******************************************************************************/
cparata 0:e4f89df7a7a5 2445 typedef enum {
cparata 0:e4f89df7a7a5 2446 LSM6DSL_ACC_GYRO_FF_THS_156mg =0x00,
cparata 0:e4f89df7a7a5 2447 LSM6DSL_ACC_GYRO_FF_THS_219mg =0x01,
cparata 0:e4f89df7a7a5 2448 LSM6DSL_ACC_GYRO_FF_THS_250mg =0x02,
cparata 0:e4f89df7a7a5 2449 LSM6DSL_ACC_GYRO_FF_THS_312mg =0x03,
cparata 0:e4f89df7a7a5 2450 LSM6DSL_ACC_GYRO_FF_THS_344mg =0x04,
cparata 0:e4f89df7a7a5 2451 LSM6DSL_ACC_GYRO_FF_THS_406mg =0x05,
cparata 0:e4f89df7a7a5 2452 LSM6DSL_ACC_GYRO_FF_THS_469mg =0x06,
cparata 0:e4f89df7a7a5 2453 LSM6DSL_ACC_GYRO_FF_THS_500mg =0x07,
cparata 0:e4f89df7a7a5 2454 } LSM6DSL_ACC_GYRO_FF_THS_t;
cparata 0:e4f89df7a7a5 2455
cparata 0:e4f89df7a7a5 2456 #define LSM6DSL_ACC_GYRO_FF_THS_MASK 0x07
cparata 0:e4f89df7a7a5 2457 status_t LSM6DSL_ACC_GYRO_W_FF_THS(void *handle, LSM6DSL_ACC_GYRO_FF_THS_t newValue);
cparata 0:e4f89df7a7a5 2458 status_t LSM6DSL_ACC_GYRO_R_FF_THS(void *handle, LSM6DSL_ACC_GYRO_FF_THS_t *value);
cparata 0:e4f89df7a7a5 2459
cparata 0:e4f89df7a7a5 2460 /*******************************************************************************
cparata 0:e4f89df7a7a5 2461 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2462 * Address : 0X5E
cparata 0:e4f89df7a7a5 2463 * Bit Group Name: INT1_TIMER
cparata 0:e4f89df7a7a5 2464 * Permission : RW
cparata 0:e4f89df7a7a5 2465 *******************************************************************************/
cparata 0:e4f89df7a7a5 2466 typedef enum {
cparata 0:e4f89df7a7a5 2467 LSM6DSL_ACC_GYRO_INT1_TIMER_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2468 LSM6DSL_ACC_GYRO_INT1_TIMER_ENABLED =0x01,
cparata 0:e4f89df7a7a5 2469 } LSM6DSL_ACC_GYRO_INT1_TIMER_t;
cparata 0:e4f89df7a7a5 2470
cparata 0:e4f89df7a7a5 2471 #define LSM6DSL_ACC_GYRO_INT1_TIMER_MASK 0x01
cparata 0:e4f89df7a7a5 2472 status_t LSM6DSL_ACC_GYRO_W_TimerEvRouteInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TIMER_t newValue);
cparata 0:e4f89df7a7a5 2473 status_t LSM6DSL_ACC_GYRO_R_TimerEvRouteInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TIMER_t *value);
cparata 0:e4f89df7a7a5 2474
cparata 0:e4f89df7a7a5 2475 /*******************************************************************************
cparata 0:e4f89df7a7a5 2476 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2477 * Address : 0X5E
cparata 0:e4f89df7a7a5 2478 * Bit Group Name: INT1_TILT
cparata 0:e4f89df7a7a5 2479 * Permission : RW
cparata 0:e4f89df7a7a5 2480 *******************************************************************************/
cparata 0:e4f89df7a7a5 2481 typedef enum {
cparata 0:e4f89df7a7a5 2482 LSM6DSL_ACC_GYRO_INT1_TILT_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2483 LSM6DSL_ACC_GYRO_INT1_TILT_ENABLED =0x02,
cparata 0:e4f89df7a7a5 2484 } LSM6DSL_ACC_GYRO_INT1_TILT_t;
cparata 0:e4f89df7a7a5 2485
cparata 0:e4f89df7a7a5 2486 #define LSM6DSL_ACC_GYRO_INT1_TILT_MASK 0x02
cparata 0:e4f89df7a7a5 2487 status_t LSM6DSL_ACC_GYRO_W_TiltEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TILT_t newValue);
cparata 0:e4f89df7a7a5 2488 status_t LSM6DSL_ACC_GYRO_R_TiltEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TILT_t *value);
cparata 0:e4f89df7a7a5 2489
cparata 0:e4f89df7a7a5 2490 /*******************************************************************************
cparata 0:e4f89df7a7a5 2491 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2492 * Address : 0X5E
cparata 0:e4f89df7a7a5 2493 * Bit Group Name: INT1_6D
cparata 0:e4f89df7a7a5 2494 * Permission : RW
cparata 0:e4f89df7a7a5 2495 *******************************************************************************/
cparata 0:e4f89df7a7a5 2496 typedef enum {
cparata 0:e4f89df7a7a5 2497 LSM6DSL_ACC_GYRO_INT1_6D_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2498 LSM6DSL_ACC_GYRO_INT1_6D_ENABLED =0x04,
cparata 0:e4f89df7a7a5 2499 } LSM6DSL_ACC_GYRO_INT1_6D_t;
cparata 0:e4f89df7a7a5 2500
cparata 0:e4f89df7a7a5 2501 #define LSM6DSL_ACC_GYRO_INT1_6D_MASK 0x04
cparata 0:e4f89df7a7a5 2502 status_t LSM6DSL_ACC_GYRO_W_6DEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_6D_t newValue);
cparata 0:e4f89df7a7a5 2503 status_t LSM6DSL_ACC_GYRO_R_6DEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_6D_t *value);
cparata 0:e4f89df7a7a5 2504
cparata 0:e4f89df7a7a5 2505 /*******************************************************************************
cparata 0:e4f89df7a7a5 2506 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2507 * Address : 0X5E
cparata 0:e4f89df7a7a5 2508 * Bit Group Name: INT1_TAP
cparata 0:e4f89df7a7a5 2509 * Permission : RW
cparata 0:e4f89df7a7a5 2510 *******************************************************************************/
cparata 0:e4f89df7a7a5 2511 typedef enum {
cparata 0:e4f89df7a7a5 2512 LSM6DSL_ACC_GYRO_INT1_TAP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2513 LSM6DSL_ACC_GYRO_INT1_TAP_ENABLED =0x08,
cparata 0:e4f89df7a7a5 2514 } LSM6DSL_ACC_GYRO_INT1_TAP_t;
cparata 0:e4f89df7a7a5 2515
cparata 0:e4f89df7a7a5 2516 #define LSM6DSL_ACC_GYRO_INT1_TAP_MASK 0x08
cparata 0:e4f89df7a7a5 2517 status_t LSM6DSL_ACC_GYRO_W_TapEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TAP_t newValue);
cparata 0:e4f89df7a7a5 2518 status_t LSM6DSL_ACC_GYRO_R_TapEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TAP_t *value);
cparata 0:e4f89df7a7a5 2519
cparata 0:e4f89df7a7a5 2520 /*******************************************************************************
cparata 0:e4f89df7a7a5 2521 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2522 * Address : 0X5E
cparata 0:e4f89df7a7a5 2523 * Bit Group Name: INT1_FF
cparata 0:e4f89df7a7a5 2524 * Permission : RW
cparata 0:e4f89df7a7a5 2525 *******************************************************************************/
cparata 0:e4f89df7a7a5 2526 typedef enum {
cparata 0:e4f89df7a7a5 2527 LSM6DSL_ACC_GYRO_INT1_FF_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2528 LSM6DSL_ACC_GYRO_INT1_FF_ENABLED =0x10,
cparata 0:e4f89df7a7a5 2529 } LSM6DSL_ACC_GYRO_INT1_FF_t;
cparata 0:e4f89df7a7a5 2530
cparata 0:e4f89df7a7a5 2531 #define LSM6DSL_ACC_GYRO_INT1_FF_MASK 0x10
cparata 0:e4f89df7a7a5 2532 status_t LSM6DSL_ACC_GYRO_W_FFEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_FF_t newValue);
cparata 0:e4f89df7a7a5 2533 status_t LSM6DSL_ACC_GYRO_R_FFEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_FF_t *value);
cparata 0:e4f89df7a7a5 2534
cparata 0:e4f89df7a7a5 2535 /*******************************************************************************
cparata 0:e4f89df7a7a5 2536 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2537 * Address : 0X5E
cparata 0:e4f89df7a7a5 2538 * Bit Group Name: INT1_WU
cparata 0:e4f89df7a7a5 2539 * Permission : RW
cparata 0:e4f89df7a7a5 2540 *******************************************************************************/
cparata 0:e4f89df7a7a5 2541 typedef enum {
cparata 0:e4f89df7a7a5 2542 LSM6DSL_ACC_GYRO_INT1_WU_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2543 LSM6DSL_ACC_GYRO_INT1_WU_ENABLED =0x20,
cparata 0:e4f89df7a7a5 2544 } LSM6DSL_ACC_GYRO_INT1_WU_t;
cparata 0:e4f89df7a7a5 2545
cparata 0:e4f89df7a7a5 2546 #define LSM6DSL_ACC_GYRO_INT1_WU_MASK 0x20
cparata 0:e4f89df7a7a5 2547 status_t LSM6DSL_ACC_GYRO_W_WUEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_WU_t newValue);
cparata 0:e4f89df7a7a5 2548 status_t LSM6DSL_ACC_GYRO_R_WUEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_WU_t *value);
cparata 0:e4f89df7a7a5 2549
cparata 0:e4f89df7a7a5 2550 /*******************************************************************************
cparata 0:e4f89df7a7a5 2551 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2552 * Address : 0X5E
cparata 0:e4f89df7a7a5 2553 * Bit Group Name: INT1_SINGLE_TAP
cparata 0:e4f89df7a7a5 2554 * Permission : RW
cparata 0:e4f89df7a7a5 2555 *******************************************************************************/
cparata 0:e4f89df7a7a5 2556 typedef enum {
cparata 0:e4f89df7a7a5 2557 LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2558 LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_ENABLED =0x40,
cparata 0:e4f89df7a7a5 2559 } LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t;
cparata 0:e4f89df7a7a5 2560
cparata 0:e4f89df7a7a5 2561 #define LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_MASK 0x40
cparata 0:e4f89df7a7a5 2562 status_t LSM6DSL_ACC_GYRO_W_SingleTapOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t newValue);
cparata 0:e4f89df7a7a5 2563 status_t LSM6DSL_ACC_GYRO_R_SingleTapOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t *value);
cparata 0:e4f89df7a7a5 2564
cparata 0:e4f89df7a7a5 2565 /*******************************************************************************
cparata 0:e4f89df7a7a5 2566 * Register : MD1_CFG
cparata 0:e4f89df7a7a5 2567 * Address : 0X5E
cparata 0:e4f89df7a7a5 2568 * Bit Group Name: INT1_INACT_STATE
cparata 0:e4f89df7a7a5 2569 * Permission : RW
cparata 0:e4f89df7a7a5 2570 *******************************************************************************/
cparata 0:e4f89df7a7a5 2571 typedef enum {
cparata 0:e4f89df7a7a5 2572 LSM6DSL_ACC_GYRO_INT1_SLEEP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2573 LSM6DSL_ACC_GYRO_INT1_SLEEP_ENABLED =0x80,
cparata 0:e4f89df7a7a5 2574 } LSM6DSL_ACC_GYRO_INT1_SLEEP_t;
cparata 0:e4f89df7a7a5 2575
cparata 0:e4f89df7a7a5 2576 #define LSM6DSL_ACC_GYRO_INT1_SLEEP_MASK 0x80
cparata 0:e4f89df7a7a5 2577 status_t LSM6DSL_ACC_GYRO_W_SleepEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SLEEP_t newValue);
cparata 0:e4f89df7a7a5 2578 status_t LSM6DSL_ACC_GYRO_R_SleepEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SLEEP_t *value);
cparata 0:e4f89df7a7a5 2579
cparata 0:e4f89df7a7a5 2580 /*******************************************************************************
cparata 0:e4f89df7a7a5 2581 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2582 * Address : 0X5F
cparata 0:e4f89df7a7a5 2583 * Bit Group Name: INT2_IRON
cparata 0:e4f89df7a7a5 2584 * Permission : RW
cparata 0:e4f89df7a7a5 2585 *******************************************************************************/
cparata 0:e4f89df7a7a5 2586 typedef enum {
cparata 0:e4f89df7a7a5 2587 LSM6DSL_ACC_GYRO_INT2_IRON_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2588 LSM6DSL_ACC_GYRO_INT2_IRON_ENABLED =0x01,
cparata 0:e4f89df7a7a5 2589 } LSM6DSL_ACC_GYRO_INT2_IRON_t;
cparata 0:e4f89df7a7a5 2590
cparata 0:e4f89df7a7a5 2591 #define LSM6DSL_ACC_GYRO_INT2_IRON_MASK 0x01
cparata 0:e4f89df7a7a5 2592 status_t LSM6DSL_ACC_GYRO_W_MagCorrection_Int2(void *handle, LSM6DSL_ACC_GYRO_INT2_IRON_t newValue);
cparata 0:e4f89df7a7a5 2593 status_t LSM6DSL_ACC_GYRO_R_MagCorrection_Int2(void *handle, LSM6DSL_ACC_GYRO_INT2_IRON_t *value);
cparata 0:e4f89df7a7a5 2594
cparata 0:e4f89df7a7a5 2595 /*******************************************************************************
cparata 0:e4f89df7a7a5 2596 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2597 * Address : 0X5F
cparata 0:e4f89df7a7a5 2598 * Bit Group Name: INT2_TILT
cparata 0:e4f89df7a7a5 2599 * Permission : RW
cparata 0:e4f89df7a7a5 2600 *******************************************************************************/
cparata 0:e4f89df7a7a5 2601 typedef enum {
cparata 0:e4f89df7a7a5 2602 LSM6DSL_ACC_GYRO_INT2_TILT_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2603 LSM6DSL_ACC_GYRO_INT2_TILT_ENABLED =0x02,
cparata 0:e4f89df7a7a5 2604 } LSM6DSL_ACC_GYRO_INT2_TILT_t;
cparata 0:e4f89df7a7a5 2605
cparata 0:e4f89df7a7a5 2606 #define LSM6DSL_ACC_GYRO_INT2_TILT_MASK 0x02
cparata 0:e4f89df7a7a5 2607 status_t LSM6DSL_ACC_GYRO_W_TiltEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TILT_t newValue);
cparata 0:e4f89df7a7a5 2608 status_t LSM6DSL_ACC_GYRO_R_TiltEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TILT_t *value);
cparata 0:e4f89df7a7a5 2609
cparata 0:e4f89df7a7a5 2610 /*******************************************************************************
cparata 0:e4f89df7a7a5 2611 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2612 * Address : 0X5F
cparata 0:e4f89df7a7a5 2613 * Bit Group Name: INT2_6D
cparata 0:e4f89df7a7a5 2614 * Permission : RW
cparata 0:e4f89df7a7a5 2615 *******************************************************************************/
cparata 0:e4f89df7a7a5 2616 typedef enum {
cparata 0:e4f89df7a7a5 2617 LSM6DSL_ACC_GYRO_INT2_6D_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2618 LSM6DSL_ACC_GYRO_INT2_6D_ENABLED =0x04,
cparata 0:e4f89df7a7a5 2619 } LSM6DSL_ACC_GYRO_INT2_6D_t;
cparata 0:e4f89df7a7a5 2620
cparata 0:e4f89df7a7a5 2621 #define LSM6DSL_ACC_GYRO_INT2_6D_MASK 0x04
cparata 0:e4f89df7a7a5 2622 status_t LSM6DSL_ACC_GYRO_W_6DEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_6D_t newValue);
cparata 0:e4f89df7a7a5 2623 status_t LSM6DSL_ACC_GYRO_R_6DEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_6D_t *value);
cparata 0:e4f89df7a7a5 2624
cparata 0:e4f89df7a7a5 2625 /*******************************************************************************
cparata 0:e4f89df7a7a5 2626 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2627 * Address : 0X5F
cparata 0:e4f89df7a7a5 2628 * Bit Group Name: INT2_TAP
cparata 0:e4f89df7a7a5 2629 * Permission : RW
cparata 0:e4f89df7a7a5 2630 *******************************************************************************/
cparata 0:e4f89df7a7a5 2631 typedef enum {
cparata 0:e4f89df7a7a5 2632 LSM6DSL_ACC_GYRO_INT2_TAP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2633 LSM6DSL_ACC_GYRO_INT2_TAP_ENABLED =0x08,
cparata 0:e4f89df7a7a5 2634 } LSM6DSL_ACC_GYRO_INT2_TAP_t;
cparata 0:e4f89df7a7a5 2635
cparata 0:e4f89df7a7a5 2636 #define LSM6DSL_ACC_GYRO_INT2_TAP_MASK 0x08
cparata 0:e4f89df7a7a5 2637 status_t LSM6DSL_ACC_GYRO_W_TapEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TAP_t newValue);
cparata 0:e4f89df7a7a5 2638 status_t LSM6DSL_ACC_GYRO_R_TapEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TAP_t *value);
cparata 0:e4f89df7a7a5 2639
cparata 0:e4f89df7a7a5 2640 /*******************************************************************************
cparata 0:e4f89df7a7a5 2641 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2642 * Address : 0X5F
cparata 0:e4f89df7a7a5 2643 * Bit Group Name: INT2_FF
cparata 0:e4f89df7a7a5 2644 * Permission : RW
cparata 0:e4f89df7a7a5 2645 *******************************************************************************/
cparata 0:e4f89df7a7a5 2646 typedef enum {
cparata 0:e4f89df7a7a5 2647 LSM6DSL_ACC_GYRO_INT2_FF_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2648 LSM6DSL_ACC_GYRO_INT2_FF_ENABLED =0x10,
cparata 0:e4f89df7a7a5 2649 } LSM6DSL_ACC_GYRO_INT2_FF_t;
cparata 0:e4f89df7a7a5 2650
cparata 0:e4f89df7a7a5 2651 #define LSM6DSL_ACC_GYRO_INT2_FF_MASK 0x10
cparata 0:e4f89df7a7a5 2652 status_t LSM6DSL_ACC_GYRO_W_FFEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_FF_t newValue);
cparata 0:e4f89df7a7a5 2653 status_t LSM6DSL_ACC_GYRO_R_FFEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_FF_t *value);
cparata 0:e4f89df7a7a5 2654
cparata 0:e4f89df7a7a5 2655 /*******************************************************************************
cparata 0:e4f89df7a7a5 2656 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2657 * Address : 0X5F
cparata 0:e4f89df7a7a5 2658 * Bit Group Name: INT2_WU
cparata 0:e4f89df7a7a5 2659 * Permission : RW
cparata 0:e4f89df7a7a5 2660 *******************************************************************************/
cparata 0:e4f89df7a7a5 2661 typedef enum {
cparata 0:e4f89df7a7a5 2662 LSM6DSL_ACC_GYRO_INT2_WU_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2663 LSM6DSL_ACC_GYRO_INT2_WU_ENABLED =0x20,
cparata 0:e4f89df7a7a5 2664 } LSM6DSL_ACC_GYRO_INT2_WU_t;
cparata 0:e4f89df7a7a5 2665
cparata 0:e4f89df7a7a5 2666 #define LSM6DSL_ACC_GYRO_INT2_WU_MASK 0x20
cparata 0:e4f89df7a7a5 2667 status_t LSM6DSL_ACC_GYRO_W_WUEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_WU_t newValue);
cparata 0:e4f89df7a7a5 2668 status_t LSM6DSL_ACC_GYRO_R_WUEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_WU_t *value);
cparata 0:e4f89df7a7a5 2669
cparata 0:e4f89df7a7a5 2670 /*******************************************************************************
cparata 0:e4f89df7a7a5 2671 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2672 * Address : 0X5F
cparata 0:e4f89df7a7a5 2673 * Bit Group Name: INT2_SINGLE_TAP
cparata 0:e4f89df7a7a5 2674 * Permission : RW
cparata 0:e4f89df7a7a5 2675 *******************************************************************************/
cparata 0:e4f89df7a7a5 2676 typedef enum {
cparata 0:e4f89df7a7a5 2677 LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2678 LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_ENABLED =0x40,
cparata 0:e4f89df7a7a5 2679 } LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t;
cparata 0:e4f89df7a7a5 2680
cparata 0:e4f89df7a7a5 2681 #define LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_MASK 0x40
cparata 0:e4f89df7a7a5 2682 status_t LSM6DSL_ACC_GYRO_W_SingleTapOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t newValue);
cparata 0:e4f89df7a7a5 2683 status_t LSM6DSL_ACC_GYRO_R_SingleTapOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t *value);
cparata 0:e4f89df7a7a5 2684
cparata 0:e4f89df7a7a5 2685 /*******************************************************************************
cparata 0:e4f89df7a7a5 2686 * Register : MD2_CFG
cparata 0:e4f89df7a7a5 2687 * Address : 0X5F
cparata 0:e4f89df7a7a5 2688 * Bit Group Name: INT2_INACT_STATE
cparata 0:e4f89df7a7a5 2689 * Permission : RW
cparata 0:e4f89df7a7a5 2690 *******************************************************************************/
cparata 0:e4f89df7a7a5 2691 typedef enum {
cparata 0:e4f89df7a7a5 2692 LSM6DSL_ACC_GYRO_INT2_SLEEP_DISABLED =0x00,
cparata 0:e4f89df7a7a5 2693 LSM6DSL_ACC_GYRO_INT2_SLEEP_ENABLED =0x80,
cparata 0:e4f89df7a7a5 2694 } LSM6DSL_ACC_GYRO_INT2_SLEEP_t;
cparata 0:e4f89df7a7a5 2695
cparata 0:e4f89df7a7a5 2696 #define LSM6DSL_ACC_GYRO_INT2_SLEEP_MASK 0x80
cparata 0:e4f89df7a7a5 2697 status_t LSM6DSL_ACC_GYRO_W_SleepEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SLEEP_t newValue);
cparata 0:e4f89df7a7a5 2698 status_t LSM6DSL_ACC_GYRO_R_SleepEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SLEEP_t *value);
cparata 0:e4f89df7a7a5 2699
cparata 0:e4f89df7a7a5 2700 /*******************************************************************************
cparata 0:e4f89df7a7a5 2701 * Register : <REGISTER_L> - <REGISTER_H>
cparata 0:e4f89df7a7a5 2702 * Output Type : GetAccData
cparata 0:e4f89df7a7a5 2703 * Permission : RO
cparata 0:e4f89df7a7a5 2704 *******************************************************************************/
cparata 0:e4f89df7a7a5 2705 status_t LSM6DSL_ACC_GYRO_GetRawAccData(void *handle, u8_t *buff);
cparata 0:e4f89df7a7a5 2706 status_t LSM6DSL_ACC_Get_Acceleration(void *handle, int *buff, u8_t from_fifo);
cparata 0:e4f89df7a7a5 2707
cparata 0:e4f89df7a7a5 2708 /*******************************************************************************
cparata 0:e4f89df7a7a5 2709 * Register : <REGISTER_L> - <REGISTER_H>
cparata 0:e4f89df7a7a5 2710 * Output Type : GetFIFOData
cparata 0:e4f89df7a7a5 2711 * Permission : RO
cparata 0:e4f89df7a7a5 2712 *******************************************************************************/
cparata 0:e4f89df7a7a5 2713 status_t LSM6DSL_ACC_GYRO_Get_GetFIFOData(void *handle, u8_t *buff);
cparata 0:e4f89df7a7a5 2714 /*******************************************************************************
cparata 0:e4f89df7a7a5 2715 * Register : <REGISTER_L> - <REGISTER_H>
cparata 0:e4f89df7a7a5 2716 * Output Type : GetTimestamp
cparata 0:e4f89df7a7a5 2717 * Permission : RO
cparata 0:e4f89df7a7a5 2718 *******************************************************************************/
cparata 0:e4f89df7a7a5 2719 status_t LSM6DSL_ACC_GYRO_Get_GetTimestamp(void *handle, u8_t *buff);
cparata 0:e4f89df7a7a5 2720 /*******************************************************************************
cparata 0:e4f89df7a7a5 2721 * Register : <REGISTER_L> - <REGISTER_H>
cparata 0:e4f89df7a7a5 2722 * Output Type : GetStepCounter
cparata 0:e4f89df7a7a5 2723 * Permission : RO
cparata 0:e4f89df7a7a5 2724 *******************************************************************************/
cparata 0:e4f89df7a7a5 2725 status_t LSM6DSL_ACC_GYRO_Get_GetStepCounter(void *handle, u8_t *buff);
cparata 0:e4f89df7a7a5 2726
cparata 0:e4f89df7a7a5 2727 /*******************************************************************************
cparata 0:e4f89df7a7a5 2728 * Register : <REGISTER_L> - <REGISTER_H>
cparata 0:e4f89df7a7a5 2729 * Output Type : Pedometer Threshold
cparata 0:e4f89df7a7a5 2730 * Permission : RO
cparata 0:e4f89df7a7a5 2731 *******************************************************************************/
cparata 0:e4f89df7a7a5 2732 status_t LSM6DSL_ACC_GYRO_W_PedoThreshold(void *handle, u8_t newValue);
cparata 0:e4f89df7a7a5 2733
cparata 0:e4f89df7a7a5 2734 /************** Use Sensor Hub *******************/
cparata 0:e4f89df7a7a5 2735
cparata 0:e4f89df7a7a5 2736 /* program to .... */
cparata 0:e4f89df7a7a5 2737 status_t LSM6DSL_ACC_GYRO_SH0_Program(void *handle, u8_t SlvAddr, u8_t Reg, u8_t len);
cparata 0:e4f89df7a7a5 2738
cparata 0:e4f89df7a7a5 2739 /* Program the six Soft Iron Matrix coefficients. */
cparata 0:e4f89df7a7a5 2740 status_t LSM6DSL_ACC_GYRO_SH_init_SI_Matrix(void *handle, u8_t *SI_matrix);
cparata 0:e4f89df7a7a5 2741
cparata 0:e4f89df7a7a5 2742 /* Read a remote device through I2C Sensor Hub Slave 0 */
cparata 0:e4f89df7a7a5 2743 status_t LSM6DSL_ACC_GYRO_SH0_ReadMem(void *handle, u8_t SlvAddr, u8_t Reg, u8_t *Bufp, u8_t len, u8_t stop);
cparata 0:e4f89df7a7a5 2744
cparata 0:e4f89df7a7a5 2745 /* Write a remote device through I2C Sensor Hub Slave 0 */
cparata 0:e4f89df7a7a5 2746 status_t LSM6DSL_ACC_GYRO_SH0_WriteByte(void *handle, u8_t SlvAddr, u8_t Reg, u8_t Bufp);
cparata 0:e4f89df7a7a5 2747
cparata 0:e4f89df7a7a5 2748 #ifdef __cplusplus
cparata 0:e4f89df7a7a5 2749 }
cparata 0:e4f89df7a7a5 2750 #endif
cparata 0:e4f89df7a7a5 2751
cparata 0:e4f89df7a7a5 2752 #endif