Workshop example

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Committer:
JimCarver
Date:
Tue May 21 21:16:24 2019 +0000
Revision:
35:42b3fba640b1
Parent:
18:a15bfe7aaebd
Simple version for workshop

Who changed what in which revision?

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