Example of free fall detection for LSM6DSL in X-NUCLEO-IKS01A2

Dependencies:   X_NUCLEO_IKS01A2 mbed

Fork of FreeFall_IKS01A2 by ST Expansion SW Team

Free Fall Detection Demo Application based on sensor expansion board X-NUCLEO-IKS01A2

Main function is to show how to detect the free fall event 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 leave falling the board and then view the notification using an hyper terminal. When the free fall is detected, the LED is switched on for a while.
- the user button can be used to enable/disable the free fall detection feature.

Committer:
cparata
Date:
Fri Aug 19 12:26:01 2016 +0000
Revision:
2:8308cb42bc49
Parent:
0:6a670fda63c2
Add interfaces to all components

Who changed what in which revision?

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