Garage Door Monitor and Opener

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Introduction

This system implements a simple garage door opener and environmental monitor. The hardware connects to the internet using Wi-Fi then on to the Pelion Device Management Platform which provides device monitoring and secure firmware updates over the air (FOTA). Pelion Device Management provides a flexible set of REST APIs which we will use to communicate to a web application running on an EC-2 instance in AWS. The web application will serve a web page where we can monitor and control our garage..

This project is intended to work on the DISCO-L475VG-IOT01A from ST Microelectronics It implements a simple actuator to drive a relay to simulate pushing the "open" button on older style garage doors which do not use a rolling code interface.

The system is designed to be mounted over the door so that the on board time of flight sensor can be used to detect if the door is open or closed.

The system also monitors temperature, humidity and barometric pressure.

https://os.mbed.com/media/uploads/JimCarver/garageopener.jpg

Hardware Requirements:

DISCO-L475G-IOT01A https://os.mbed.com/platforms/ST-Discovery-L475E-IOT01A/

Seeed Studio Grove Relay module https://www.seeedstudio.com/Grove-Relay.html

Seeed Studio Grove cable, I used this one: https://www.seeedstudio.com/Grove-4-pin-Male-Jumper-to-Grove-4-pin-Conversion-Cable-5-PCs-per-Pack.html

Connect to the PMOD connector like this:

https://os.mbed.com/media/uploads/JimCarver/opener.jpg

This shows how I installed so that the time of flight sensor can detect when the door is open

https://os.mbed.com/media/uploads/JimCarver/opener1.jpg https://os.mbed.com/media/uploads/JimCarver/opener2.jpg

To use the project:

You will also need a Pelion developers account.

I suggest you first use the Pelion quick state to become familiar with Pelion Device Management. https://os.mbed.com/guides/connect-device-to-pelion/1/?board=ST-Discovery-L475E-IOT01A

Web Interface

For my web interface I am running node-red under Ubuntu in an EC2 instance on AWS. This can run for 12 month within the constraints of their free tier. Here is a tutorial: https://nodered.org/docs/getting-started/aws

You will also need to install several node-red add ons:

sudo npm install -g node-red-dashboard

sudo npm install -g node-red-contrib-mbed-cloud

sudo npm istall -g node-red-contrib-moment

After starting node-red import the contents of GarageFlow.txt from the project, pin the flow into the page.

To enable your web app to access your Pelion account you need an API key.

First you will neet to use your Pelion account to create an API key.

https://os.mbed.com/media/uploads/JimCarver/api_portal.jpg

Now we need to apply that API key to your Node-Red flow.

https://os.mbed.com/media/uploads/JimCarver/api_node-red.jpg

Committer:
JimCarver
Date:
Thu Dec 05 19:03:48 2019 +0000
Revision:
37:ec1124e5ec1f
Parent:
18:a15bfe7aaebd
Bug fix

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