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

Dependencies:   X_NUCLEO_IKS01A2 mbed

Fork of SingleDoubleTap_IKS01A2 by ST Expansion SW Team

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

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

Committer:
cparata
Date:
Fri Aug 19 12:31:21 2016 +0000
Revision:
2:21a191bd1998
Parent:
0:e4f89df7a7a5
Add interfaces to all components

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cparata 0:e4f89df7a7a5 1 /**
cparata 0:e4f89df7a7a5 2 ******************************************************************************
cparata 0:e4f89df7a7a5 3 * @file LSM6DSL_ACC_GYRO_driver.c
cparata 0:e4f89df7a7a5 4 * @author MEMS Application Team
cparata 0:e4f89df7a7a5 5 * @version V1.5
cparata 0:e4f89df7a7a5 6 * @date 17-May-2016
cparata 0:e4f89df7a7a5 7 * @brief LSM6DSL driver file
cparata 0:e4f89df7a7a5 8 ******************************************************************************
cparata 0:e4f89df7a7a5 9 * @attention
cparata 0:e4f89df7a7a5 10 *
cparata 0:e4f89df7a7a5 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
cparata 0:e4f89df7a7a5 12 *
cparata 0:e4f89df7a7a5 13 * Redistribution and use in source and binary forms, with or without modification,
cparata 0:e4f89df7a7a5 14 * are permitted provided that the following conditions are met:
cparata 0:e4f89df7a7a5 15 * 1. Redistributions of source code must retain the above copyright notice,
cparata 0:e4f89df7a7a5 16 * this list of conditions and the following disclaimer.
cparata 0:e4f89df7a7a5 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
cparata 0:e4f89df7a7a5 18 * this list of conditions and the following disclaimer in the documentation
cparata 0:e4f89df7a7a5 19 * and/or other materials provided with the distribution.
cparata 0:e4f89df7a7a5 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
cparata 0:e4f89df7a7a5 21 * may be used to endorse or promote products derived from this software
cparata 0:e4f89df7a7a5 22 * without specific prior written permission.
cparata 0:e4f89df7a7a5 23 *
cparata 0:e4f89df7a7a5 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
cparata 0:e4f89df7a7a5 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
cparata 0:e4f89df7a7a5 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
cparata 0:e4f89df7a7a5 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
cparata 0:e4f89df7a7a5 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
cparata 0:e4f89df7a7a5 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
cparata 0:e4f89df7a7a5 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
cparata 0:e4f89df7a7a5 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
cparata 0:e4f89df7a7a5 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
cparata 0:e4f89df7a7a5 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cparata 0:e4f89df7a7a5 34 *
cparata 0:e4f89df7a7a5 35 ******************************************************************************
cparata 0:e4f89df7a7a5 36 */
cparata 0:e4f89df7a7a5 37
cparata 0:e4f89df7a7a5 38 /* Includes ------------------------------------------------------------------*/
cparata 0:e4f89df7a7a5 39 #include "LSM6DSL_ACC_GYRO_driver.h"
cparata 0:e4f89df7a7a5 40
cparata 0:e4f89df7a7a5 41 /* Imported function prototypes ----------------------------------------------*/
cparata 0:e4f89df7a7a5 42 extern uint8_t LSM6DSL_IO_Write(void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite);
cparata 0:e4f89df7a7a5 43 extern uint8_t LSM6DSL_IO_Read(void *handle, uint8_t ReadAddr, uint8_t *pBuffer, uint16_t nBytesToRead);
cparata 0:e4f89df7a7a5 44
cparata 0:e4f89df7a7a5 45 /* Private typedef -----------------------------------------------------------*/
cparata 0:e4f89df7a7a5 46
cparata 0:e4f89df7a7a5 47 /* Private define ------------------------------------------------------------*/
cparata 0:e4f89df7a7a5 48
cparata 0:e4f89df7a7a5 49 /* Private macro -------------------------------------------------------------*/
cparata 0:e4f89df7a7a5 50
cparata 0:e4f89df7a7a5 51 /* Private variables ---------------------------------------------------------*/
cparata 0:e4f89df7a7a5 52
cparata 0:e4f89df7a7a5 53 /* Private functions ---------------------------------------------------------*/
cparata 0:e4f89df7a7a5 54
cparata 0:e4f89df7a7a5 55 /* Exported functions ---------------------------------------------------------*/
cparata 0:e4f89df7a7a5 56
cparata 0:e4f89df7a7a5 57 /************** Generic Function *******************/
cparata 0:e4f89df7a7a5 58
cparata 0:e4f89df7a7a5 59 /*******************************************************************************
cparata 0:e4f89df7a7a5 60 * Function Name : LSM6DSL_ACC_GYRO_ReadReg
cparata 0:e4f89df7a7a5 61 * Description : Generic Reading function. It must be fullfilled with either
cparata 0:e4f89df7a7a5 62 * : I2C or SPI reading functions
cparata 0:e4f89df7a7a5 63 * Input : Register Address, length of buffer
cparata 0:e4f89df7a7a5 64 * Output : Data REad
cparata 0:e4f89df7a7a5 65 * Return : None
cparata 0:e4f89df7a7a5 66 *******************************************************************************/
cparata 0:e4f89df7a7a5 67 status_t LSM6DSL_ACC_GYRO_ReadReg(void *handle, u8_t Reg, u8_t* Data, u16_t len)
cparata 0:e4f89df7a7a5 68 {
cparata 0:e4f89df7a7a5 69 if (LSM6DSL_IO_Read(handle, Reg, Data, len))
cparata 0:e4f89df7a7a5 70 {
cparata 0:e4f89df7a7a5 71 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 72 }
cparata 0:e4f89df7a7a5 73 else
cparata 0:e4f89df7a7a5 74 {
cparata 0:e4f89df7a7a5 75 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 76 }
cparata 0:e4f89df7a7a5 77 }
cparata 0:e4f89df7a7a5 78
cparata 0:e4f89df7a7a5 79 /*******************************************************************************
cparata 0:e4f89df7a7a5 80 * Function Name : LSM6DSL_ACC_GYRO_WriteReg
cparata 0:e4f89df7a7a5 81 * Description : Generic Writing function. It must be fullfilled with either
cparata 0:e4f89df7a7a5 82 * : I2C or SPI writing function
cparata 0:e4f89df7a7a5 83 * Input : Register Address, Data to be written, length of buffer
cparata 0:e4f89df7a7a5 84 * Output : None
cparata 0:e4f89df7a7a5 85 * Return : None
cparata 0:e4f89df7a7a5 86 *******************************************************************************/
cparata 0:e4f89df7a7a5 87 status_t LSM6DSL_ACC_GYRO_WriteReg(void *handle, u8_t Reg, u8_t *Data, u16_t len)
cparata 0:e4f89df7a7a5 88 {
cparata 0:e4f89df7a7a5 89 if (LSM6DSL_IO_Write(handle, Reg, Data, len))
cparata 0:e4f89df7a7a5 90 {
cparata 0:e4f89df7a7a5 91 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 92 }
cparata 0:e4f89df7a7a5 93 else
cparata 0:e4f89df7a7a5 94 {
cparata 0:e4f89df7a7a5 95 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 96 }
cparata 0:e4f89df7a7a5 97 }
cparata 0:e4f89df7a7a5 98
cparata 0:e4f89df7a7a5 99 /**************** Base Function *******************/
cparata 0:e4f89df7a7a5 100
cparata 0:e4f89df7a7a5 101 /*******************************************************************************
cparata 0:e4f89df7a7a5 102 * Function Name : LSM6DSL_ACC_GYRO_R_WHO_AM_I
cparata 0:e4f89df7a7a5 103 * Description : Read WHO_AM_I_BIT
cparata 0:e4f89df7a7a5 104 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 105 * Output : Status of WHO_AM_I_BIT
cparata 0:e4f89df7a7a5 106 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 107 *******************************************************************************/
cparata 0:e4f89df7a7a5 108 status_t LSM6DSL_ACC_GYRO_R_WHO_AM_I(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 109 {
cparata 0:e4f89df7a7a5 110 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WHO_AM_I_REG, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 111 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 112
cparata 0:e4f89df7a7a5 113 *value &= LSM6DSL_ACC_GYRO_WHO_AM_I_BIT_MASK; //coerce
cparata 0:e4f89df7a7a5 114 *value = *value >> LSM6DSL_ACC_GYRO_WHO_AM_I_BIT_POSITION; //mask
cparata 0:e4f89df7a7a5 115
cparata 0:e4f89df7a7a5 116 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 117 }
cparata 0:e4f89df7a7a5 118
cparata 0:e4f89df7a7a5 119 /*******************************************************************************
cparata 0:e4f89df7a7a5 120 * Function Name : LSM6DSL_ACC_GYRO_W_BDU
cparata 0:e4f89df7a7a5 121 * Description : Write BDU
cparata 0:e4f89df7a7a5 122 * Input : LSM6DSL_ACC_GYRO_BDU_t
cparata 0:e4f89df7a7a5 123 * Output : None
cparata 0:e4f89df7a7a5 124 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 125 *******************************************************************************/
cparata 0:e4f89df7a7a5 126 status_t LSM6DSL_ACC_GYRO_W_BDU(void *handle, LSM6DSL_ACC_GYRO_BDU_t newValue)
cparata 0:e4f89df7a7a5 127 {
cparata 0:e4f89df7a7a5 128 u8_t value;
cparata 0:e4f89df7a7a5 129
cparata 0:e4f89df7a7a5 130 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 131 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 132
cparata 0:e4f89df7a7a5 133 value &= ~LSM6DSL_ACC_GYRO_BDU_MASK;
cparata 0:e4f89df7a7a5 134 value |= newValue;
cparata 0:e4f89df7a7a5 135
cparata 0:e4f89df7a7a5 136 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 137 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 138
cparata 0:e4f89df7a7a5 139 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 140 }
cparata 0:e4f89df7a7a5 141
cparata 0:e4f89df7a7a5 142 /*******************************************************************************
cparata 0:e4f89df7a7a5 143 * Function Name : LSM6DSL_ACC_GYRO_R_BDU
cparata 0:e4f89df7a7a5 144 * Description : Read BDU
cparata 0:e4f89df7a7a5 145 * Input : Pointer to LSM6DSL_ACC_GYRO_BDU_t
cparata 0:e4f89df7a7a5 146 * Output : Status of BDU see LSM6DSL_ACC_GYRO_BDU_t
cparata 0:e4f89df7a7a5 147 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 148 *******************************************************************************/
cparata 0:e4f89df7a7a5 149 status_t LSM6DSL_ACC_GYRO_R_BDU(void *handle, LSM6DSL_ACC_GYRO_BDU_t *value)
cparata 0:e4f89df7a7a5 150 {
cparata 0:e4f89df7a7a5 151 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 152 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 153
cparata 0:e4f89df7a7a5 154 *value &= LSM6DSL_ACC_GYRO_BDU_MASK; //mask
cparata 0:e4f89df7a7a5 155
cparata 0:e4f89df7a7a5 156 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 157 }
cparata 0:e4f89df7a7a5 158
cparata 0:e4f89df7a7a5 159 /*******************************************************************************
cparata 0:e4f89df7a7a5 160 * Function Name : LSM6DSL_ACC_GYRO_W_FS_XL
cparata 0:e4f89df7a7a5 161 * Description : Write FS_XL
cparata 0:e4f89df7a7a5 162 * Input : LSM6DSL_ACC_GYRO_FS_XL_t
cparata 0:e4f89df7a7a5 163 * Output : None
cparata 0:e4f89df7a7a5 164 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 165 *******************************************************************************/
cparata 0:e4f89df7a7a5 166 status_t LSM6DSL_ACC_GYRO_W_FS_XL(void *handle, LSM6DSL_ACC_GYRO_FS_XL_t newValue)
cparata 0:e4f89df7a7a5 167 {
cparata 0:e4f89df7a7a5 168 u8_t value;
cparata 0:e4f89df7a7a5 169
cparata 0:e4f89df7a7a5 170 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1))
cparata 0:e4f89df7a7a5 171 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 172
cparata 0:e4f89df7a7a5 173 value &= ~LSM6DSL_ACC_GYRO_FS_XL_MASK;
cparata 0:e4f89df7a7a5 174 value |= newValue;
cparata 0:e4f89df7a7a5 175
cparata 0:e4f89df7a7a5 176 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1) )
cparata 0:e4f89df7a7a5 177 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 178
cparata 0:e4f89df7a7a5 179 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 180 }
cparata 0:e4f89df7a7a5 181
cparata 0:e4f89df7a7a5 182 /*******************************************************************************
cparata 0:e4f89df7a7a5 183 * Function Name : LSM6DSL_ACC_GYRO_R_FS_XL
cparata 0:e4f89df7a7a5 184 * Description : Read FS_XL
cparata 0:e4f89df7a7a5 185 * Input : Pointer to LSM6DSL_ACC_GYRO_FS_XL_t
cparata 0:e4f89df7a7a5 186 * Output : Status of FS_XL see LSM6DSL_ACC_GYRO_FS_XL_t
cparata 0:e4f89df7a7a5 187 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 188 *******************************************************************************/
cparata 0:e4f89df7a7a5 189 status_t LSM6DSL_ACC_GYRO_R_FS_XL(void *handle, LSM6DSL_ACC_GYRO_FS_XL_t *value)
cparata 0:e4f89df7a7a5 190 {
cparata 0:e4f89df7a7a5 191 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 192 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 193
cparata 0:e4f89df7a7a5 194 *value &= LSM6DSL_ACC_GYRO_FS_XL_MASK; //mask
cparata 0:e4f89df7a7a5 195
cparata 0:e4f89df7a7a5 196 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 197 }
cparata 0:e4f89df7a7a5 198
cparata 0:e4f89df7a7a5 199 /*******************************************************************************
cparata 0:e4f89df7a7a5 200 * Function Name : status_t LSM6DSL_ACC_GYRO_GetRawAccData(u8_t *buff)
cparata 0:e4f89df7a7a5 201 * Description : Read GetAccData output register
cparata 0:e4f89df7a7a5 202 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 203 * Output : GetAccData buffer u8_t
cparata 0:e4f89df7a7a5 204 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 205 *******************************************************************************/
cparata 0:e4f89df7a7a5 206 status_t LSM6DSL_ACC_GYRO_GetRawAccData(void *handle, u8_t *buff)
cparata 0:e4f89df7a7a5 207 {
cparata 0:e4f89df7a7a5 208 u8_t i, j, k;
cparata 0:e4f89df7a7a5 209 u8_t numberOfByteForDimension;
cparata 0:e4f89df7a7a5 210
cparata 0:e4f89df7a7a5 211 numberOfByteForDimension=6/3;
cparata 0:e4f89df7a7a5 212
cparata 0:e4f89df7a7a5 213 k=0;
cparata 0:e4f89df7a7a5 214 for (i=0; i<3;i++ )
cparata 0:e4f89df7a7a5 215 {
cparata 0:e4f89df7a7a5 216 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:e4f89df7a7a5 217 {
cparata 0:e4f89df7a7a5 218 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_OUTX_L_XL+k, &buff[k], 1))
cparata 0:e4f89df7a7a5 219 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 220 k++;
cparata 0:e4f89df7a7a5 221 }
cparata 0:e4f89df7a7a5 222 }
cparata 0:e4f89df7a7a5 223
cparata 0:e4f89df7a7a5 224 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 225 }
cparata 0:e4f89df7a7a5 226
cparata 0:e4f89df7a7a5 227 /*******************************************************************************
cparata 0:e4f89df7a7a5 228 * Function Name : status_t LSM6DSL_ACC_Get_Acceleration(void *handle, int *buff, u8_t from_fifo)
cparata 0:e4f89df7a7a5 229 * Description : Read GetAccData output register
cparata 0:e4f89df7a7a5 230 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 231 * Output : values are expressed in mg
cparata 0:e4f89df7a7a5 232 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 233 *******************************************************************************/
cparata 0:e4f89df7a7a5 234 /*
cparata 0:e4f89df7a7a5 235 * Following is the table of sensitivity values for each case.
cparata 0:e4f89df7a7a5 236 * Values are expressed in ug/digit.
cparata 0:e4f89df7a7a5 237 */
cparata 0:e4f89df7a7a5 238 static const long long LSM6DSL_ACC_Sensitivity_List[4] = {
cparata 0:e4f89df7a7a5 239 61, /* FS @2g */
cparata 0:e4f89df7a7a5 240 122, /* FS @4g */
cparata 0:e4f89df7a7a5 241 244, /* FS @8g */
cparata 0:e4f89df7a7a5 242 488, /* FS @16g */
cparata 0:e4f89df7a7a5 243 };
cparata 0:e4f89df7a7a5 244 status_t LSM6DSL_ACC_Get_Acceleration(void *handle, int *buff, u8_t from_fifo)
cparata 0:e4f89df7a7a5 245 {
cparata 0:e4f89df7a7a5 246 LSM6DSL_ACC_GYRO_FS_XL_t fs;
cparata 0:e4f89df7a7a5 247 long long sensitivity = 0;
cparata 0:e4f89df7a7a5 248 Type3Axis16bit_U raw_data_tmp;
cparata 0:e4f89df7a7a5 249
cparata 0:e4f89df7a7a5 250 /* Read out current odr, fs, hf setting */
cparata 0:e4f89df7a7a5 251 LSM6DSL_ACC_GYRO_R_FS_XL(handle, &fs);
cparata 0:e4f89df7a7a5 252
cparata 0:e4f89df7a7a5 253 /* Determine the sensitivity according to fs */
cparata 0:e4f89df7a7a5 254 switch(fs) {
cparata 0:e4f89df7a7a5 255 case LSM6DSL_ACC_GYRO_FS_XL_2g:
cparata 0:e4f89df7a7a5 256 sensitivity = LSM6DSL_ACC_Sensitivity_List[0];
cparata 0:e4f89df7a7a5 257 break;
cparata 0:e4f89df7a7a5 258
cparata 0:e4f89df7a7a5 259 case LSM6DSL_ACC_GYRO_FS_XL_4g:
cparata 0:e4f89df7a7a5 260 sensitivity = LSM6DSL_ACC_Sensitivity_List[1];
cparata 0:e4f89df7a7a5 261 break;
cparata 0:e4f89df7a7a5 262
cparata 0:e4f89df7a7a5 263 case LSM6DSL_ACC_GYRO_FS_XL_8g:
cparata 0:e4f89df7a7a5 264 sensitivity = LSM6DSL_ACC_Sensitivity_List[2];
cparata 0:e4f89df7a7a5 265 break;
cparata 0:e4f89df7a7a5 266
cparata 0:e4f89df7a7a5 267 case LSM6DSL_ACC_GYRO_FS_XL_16g:
cparata 0:e4f89df7a7a5 268 sensitivity = LSM6DSL_ACC_Sensitivity_List[3];
cparata 0:e4f89df7a7a5 269 break;
cparata 0:e4f89df7a7a5 270 }
cparata 0:e4f89df7a7a5 271
cparata 0:e4f89df7a7a5 272 /* Read out raw accelerometer samples */
cparata 0:e4f89df7a7a5 273 if (from_fifo) {
cparata 0:e4f89df7a7a5 274 u8_t i;
cparata 0:e4f89df7a7a5 275
cparata 0:e4f89df7a7a5 276 /* read all 3 axis from FIFO */
cparata 0:e4f89df7a7a5 277 for(i = 0; i < 3; i++)
cparata 0:e4f89df7a7a5 278 LSM6DSL_ACC_GYRO_Get_GetFIFOData(handle, raw_data_tmp.u8bit + 2*i);
cparata 0:e4f89df7a7a5 279 } else
cparata 0:e4f89df7a7a5 280 LSM6DSL_ACC_GYRO_GetRawAccData(handle, raw_data_tmp.u8bit);
cparata 0:e4f89df7a7a5 281
cparata 0:e4f89df7a7a5 282 /* Apply proper shift and sensitivity */
cparata 0:e4f89df7a7a5 283 buff[0] = (raw_data_tmp.i16bit[0] * sensitivity + 500)/1000;
cparata 0:e4f89df7a7a5 284 buff[1] = (raw_data_tmp.i16bit[1] * sensitivity + 500)/1000;
cparata 0:e4f89df7a7a5 285 buff[2] = (raw_data_tmp.i16bit[2] * sensitivity + 500)/1000;
cparata 0:e4f89df7a7a5 286
cparata 0:e4f89df7a7a5 287 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 288 }
cparata 0:e4f89df7a7a5 289
cparata 0:e4f89df7a7a5 290 /*******************************************************************************
cparata 0:e4f89df7a7a5 291 * Function Name : LSM6DSL_ACC_GYRO_W_ODR_XL
cparata 0:e4f89df7a7a5 292 * Description : Write ODR_XL
cparata 0:e4f89df7a7a5 293 * Input : LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:e4f89df7a7a5 294 * Output : None
cparata 0:e4f89df7a7a5 295 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 296 *******************************************************************************/
cparata 0:e4f89df7a7a5 297 status_t LSM6DSL_ACC_GYRO_W_ODR_XL(void *handle, LSM6DSL_ACC_GYRO_ODR_XL_t newValue)
cparata 0:e4f89df7a7a5 298 {
cparata 0:e4f89df7a7a5 299 u8_t value;
cparata 0:e4f89df7a7a5 300
cparata 0:e4f89df7a7a5 301 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1))
cparata 0:e4f89df7a7a5 302 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 303
cparata 0:e4f89df7a7a5 304 value &= ~LSM6DSL_ACC_GYRO_ODR_XL_MASK;
cparata 0:e4f89df7a7a5 305 value |= newValue;
cparata 0:e4f89df7a7a5 306
cparata 0:e4f89df7a7a5 307 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1) )
cparata 0:e4f89df7a7a5 308 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 309
cparata 0:e4f89df7a7a5 310 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 311 }
cparata 0:e4f89df7a7a5 312
cparata 0:e4f89df7a7a5 313 /*******************************************************************************
cparata 0:e4f89df7a7a5 314 * Function Name : LSM6DSL_ACC_GYRO_R_ODR_XL
cparata 0:e4f89df7a7a5 315 * Description : Read ODR_XL
cparata 0:e4f89df7a7a5 316 * Input : Pointer to LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:e4f89df7a7a5 317 * Output : Status of ODR_XL see LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:e4f89df7a7a5 318 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 319 *******************************************************************************/
cparata 0:e4f89df7a7a5 320 status_t LSM6DSL_ACC_GYRO_R_ODR_XL(void *handle, LSM6DSL_ACC_GYRO_ODR_XL_t *value)
cparata 0:e4f89df7a7a5 321 {
cparata 0:e4f89df7a7a5 322 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 323 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 324
cparata 0:e4f89df7a7a5 325 *value &= LSM6DSL_ACC_GYRO_ODR_XL_MASK; //mask
cparata 0:e4f89df7a7a5 326
cparata 0:e4f89df7a7a5 327 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 328 }
cparata 0:e4f89df7a7a5 329
cparata 0:e4f89df7a7a5 330 /*******************************************************************************
cparata 0:e4f89df7a7a5 331 * Function Name : LSM6DSL_ACC_GYRO_translate_ODR_XL
cparata 0:e4f89df7a7a5 332 * Description : Read ODR_XL
cparata 0:e4f89df7a7a5 333 * Input : LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:e4f89df7a7a5 334 * Output : The ODR value in Hz
cparata 0:e4f89df7a7a5 335 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 336 *******************************************************************************/
cparata 0:e4f89df7a7a5 337 status_t LSM6DSL_ACC_GYRO_translate_ODR_XL(LSM6DSL_ACC_GYRO_ODR_XL_t value, u16_t *odr_hz_val)
cparata 0:e4f89df7a7a5 338 {
cparata 0:e4f89df7a7a5 339 switch(value) {
cparata 0:e4f89df7a7a5 340 case LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN:
cparata 0:e4f89df7a7a5 341 *odr_hz_val = 0;
cparata 0:e4f89df7a7a5 342 break;
cparata 0:e4f89df7a7a5 343
cparata 0:e4f89df7a7a5 344 case LSM6DSL_ACC_GYRO_ODR_XL_13Hz:
cparata 0:e4f89df7a7a5 345 *odr_hz_val = 13;
cparata 0:e4f89df7a7a5 346 break;
cparata 0:e4f89df7a7a5 347
cparata 0:e4f89df7a7a5 348 case LSM6DSL_ACC_GYRO_ODR_XL_26Hz:
cparata 0:e4f89df7a7a5 349 *odr_hz_val = 26;
cparata 0:e4f89df7a7a5 350 break;
cparata 0:e4f89df7a7a5 351
cparata 0:e4f89df7a7a5 352 case LSM6DSL_ACC_GYRO_ODR_XL_52Hz:
cparata 0:e4f89df7a7a5 353 *odr_hz_val = 52;
cparata 0:e4f89df7a7a5 354 break;
cparata 0:e4f89df7a7a5 355
cparata 0:e4f89df7a7a5 356 case LSM6DSL_ACC_GYRO_ODR_XL_104Hz:
cparata 0:e4f89df7a7a5 357 *odr_hz_val = 104;
cparata 0:e4f89df7a7a5 358 break;
cparata 0:e4f89df7a7a5 359
cparata 0:e4f89df7a7a5 360 case LSM6DSL_ACC_GYRO_ODR_XL_208Hz:
cparata 0:e4f89df7a7a5 361 *odr_hz_val = 208;
cparata 0:e4f89df7a7a5 362 break;
cparata 0:e4f89df7a7a5 363
cparata 0:e4f89df7a7a5 364 case LSM6DSL_ACC_GYRO_ODR_XL_416Hz:
cparata 0:e4f89df7a7a5 365 *odr_hz_val = 416;
cparata 0:e4f89df7a7a5 366 break;
cparata 0:e4f89df7a7a5 367
cparata 0:e4f89df7a7a5 368 case LSM6DSL_ACC_GYRO_ODR_XL_833Hz:
cparata 0:e4f89df7a7a5 369 *odr_hz_val = 833;
cparata 0:e4f89df7a7a5 370 break;
cparata 0:e4f89df7a7a5 371
cparata 0:e4f89df7a7a5 372 case LSM6DSL_ACC_GYRO_ODR_XL_1660Hz:
cparata 0:e4f89df7a7a5 373 *odr_hz_val = 1660;
cparata 0:e4f89df7a7a5 374 break;
cparata 0:e4f89df7a7a5 375
cparata 0:e4f89df7a7a5 376 default:
cparata 0:e4f89df7a7a5 377 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 378 }
cparata 0:e4f89df7a7a5 379
cparata 0:e4f89df7a7a5 380 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 381 }
cparata 0:e4f89df7a7a5 382
cparata 0:e4f89df7a7a5 383 /*******************************************************************************
cparata 0:e4f89df7a7a5 384 * Function Name : LSM6DSL_ACC_GYRO_W_FS_G
cparata 0:e4f89df7a7a5 385 * Description : Write FS_G
cparata 0:e4f89df7a7a5 386 * Input : LSM6DSL_ACC_GYRO_FS_G_t
cparata 0:e4f89df7a7a5 387 * Output : None
cparata 0:e4f89df7a7a5 388 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 389 *******************************************************************************/
cparata 0:e4f89df7a7a5 390 status_t LSM6DSL_ACC_GYRO_W_FS_G(void *handle, LSM6DSL_ACC_GYRO_FS_G_t newValue)
cparata 0:e4f89df7a7a5 391 {
cparata 0:e4f89df7a7a5 392 u8_t value;
cparata 0:e4f89df7a7a5 393
cparata 0:e4f89df7a7a5 394 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1))
cparata 0:e4f89df7a7a5 395 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 396
cparata 0:e4f89df7a7a5 397 value &= ~LSM6DSL_ACC_GYRO_FS_G_MASK;
cparata 0:e4f89df7a7a5 398 value |= newValue;
cparata 0:e4f89df7a7a5 399
cparata 0:e4f89df7a7a5 400 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1) )
cparata 0:e4f89df7a7a5 401 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 402
cparata 0:e4f89df7a7a5 403 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 404 }
cparata 0:e4f89df7a7a5 405
cparata 0:e4f89df7a7a5 406 /*******************************************************************************
cparata 0:e4f89df7a7a5 407 * Function Name : LSM6DSL_ACC_GYRO_R_FS_G
cparata 0:e4f89df7a7a5 408 * Description : Read FS_G
cparata 0:e4f89df7a7a5 409 * Input : Pointer to LSM6DSL_ACC_GYRO_FS_G_t
cparata 0:e4f89df7a7a5 410 * Output : Status of FS_G see LSM6DSL_ACC_GYRO_FS_G_t
cparata 0:e4f89df7a7a5 411 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 412 *******************************************************************************/
cparata 0:e4f89df7a7a5 413 status_t LSM6DSL_ACC_GYRO_R_FS_G(void *handle, LSM6DSL_ACC_GYRO_FS_G_t *value)
cparata 0:e4f89df7a7a5 414 {
cparata 0:e4f89df7a7a5 415 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 416 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 417
cparata 0:e4f89df7a7a5 418 *value &= LSM6DSL_ACC_GYRO_FS_G_MASK; //mask
cparata 0:e4f89df7a7a5 419
cparata 0:e4f89df7a7a5 420 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 421 }
cparata 0:e4f89df7a7a5 422
cparata 0:e4f89df7a7a5 423 /*******************************************************************************
cparata 0:e4f89df7a7a5 424 * Function Name : status_t LSM6DSL_ACC_GYRO_GetRawGyroData(u8_t *buff)
cparata 0:e4f89df7a7a5 425 * Description : Read GetGyroData output register
cparata 0:e4f89df7a7a5 426 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 427 * Output : GetGyroData buffer u8_t
cparata 0:e4f89df7a7a5 428 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 429 *******************************************************************************/
cparata 0:e4f89df7a7a5 430 status_t LSM6DSL_ACC_GYRO_GetRawGyroData(void *handle, u8_t *buff)
cparata 0:e4f89df7a7a5 431 {
cparata 0:e4f89df7a7a5 432 u8_t i, j, k;
cparata 0:e4f89df7a7a5 433 u8_t numberOfByteForDimension;
cparata 0:e4f89df7a7a5 434
cparata 0:e4f89df7a7a5 435 numberOfByteForDimension=6/3;
cparata 0:e4f89df7a7a5 436
cparata 0:e4f89df7a7a5 437 k=0;
cparata 0:e4f89df7a7a5 438 for (i=0; i<3;i++ )
cparata 0:e4f89df7a7a5 439 {
cparata 0:e4f89df7a7a5 440 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:e4f89df7a7a5 441 {
cparata 0:e4f89df7a7a5 442 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_OUTX_L_G+k, &buff[k], 1))
cparata 0:e4f89df7a7a5 443 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 444 k++;
cparata 0:e4f89df7a7a5 445 }
cparata 0:e4f89df7a7a5 446 }
cparata 0:e4f89df7a7a5 447
cparata 0:e4f89df7a7a5 448 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 449 }
cparata 0:e4f89df7a7a5 450
cparata 0:e4f89df7a7a5 451 /*******************************************************************************
cparata 0:e4f89df7a7a5 452 * Function Name : status_t LSM6DSL_ACC_Get_AngularRate(u8_t *buff)
cparata 0:e4f89df7a7a5 453 * Description : Read GetGyroData output register
cparata 0:e4f89df7a7a5 454 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 455 * Output : Returned values are espressed in mdps
cparata 0:e4f89df7a7a5 456 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 457 *******************************************************************************/
cparata 0:e4f89df7a7a5 458 /*
cparata 0:e4f89df7a7a5 459 * Following is the table of sensitivity values for each case.
cparata 0:e4f89df7a7a5 460 * Values are espressed in udps/digit.
cparata 0:e4f89df7a7a5 461 */
cparata 0:e4f89df7a7a5 462 static const long long LSM6DSL_GYRO_Sensitivity_List[5] = {
cparata 0:e4f89df7a7a5 463 4375, /* FS @125 */
cparata 0:e4f89df7a7a5 464 8750, /* FS @245 */
cparata 0:e4f89df7a7a5 465 17500, /* FS @500 */
cparata 0:e4f89df7a7a5 466 35000, /* FS @1000 */
cparata 0:e4f89df7a7a5 467 70000, /* FS @2000 */
cparata 0:e4f89df7a7a5 468 };
cparata 0:e4f89df7a7a5 469 status_t LSM6DSL_ACC_Get_AngularRate(void *handle, int *buff, u8_t from_fifo)
cparata 0:e4f89df7a7a5 470 {
cparata 0:e4f89df7a7a5 471 LSM6DSL_ACC_GYRO_FS_125_t fs_125;
cparata 0:e4f89df7a7a5 472 LSM6DSL_ACC_GYRO_FS_G_t fs;
cparata 0:e4f89df7a7a5 473 long long sensitivity = 0;
cparata 0:e4f89df7a7a5 474 Type3Axis16bit_U raw_data_tmp;
cparata 0:e4f89df7a7a5 475
cparata 0:e4f89df7a7a5 476 /* Read out current odr, fs, hf setting */
cparata 0:e4f89df7a7a5 477 LSM6DSL_ACC_GYRO_R_FS_125(handle, &fs_125);
cparata 0:e4f89df7a7a5 478 if (fs_125 == LSM6DSL_ACC_GYRO_FS_125_ENABLED) {
cparata 0:e4f89df7a7a5 479 sensitivity = LSM6DSL_GYRO_Sensitivity_List[0];
cparata 0:e4f89df7a7a5 480 } else {
cparata 0:e4f89df7a7a5 481 LSM6DSL_ACC_GYRO_R_FS_G(handle, &fs);
cparata 0:e4f89df7a7a5 482
cparata 0:e4f89df7a7a5 483 /* Determine the sensitivity according to fs */
cparata 0:e4f89df7a7a5 484 switch(fs) {
cparata 0:e4f89df7a7a5 485 case LSM6DSL_ACC_GYRO_FS_G_245dps:
cparata 0:e4f89df7a7a5 486 sensitivity = LSM6DSL_GYRO_Sensitivity_List[1];
cparata 0:e4f89df7a7a5 487 break;
cparata 0:e4f89df7a7a5 488
cparata 0:e4f89df7a7a5 489 case LSM6DSL_ACC_GYRO_FS_G_500dps:
cparata 0:e4f89df7a7a5 490 sensitivity = LSM6DSL_GYRO_Sensitivity_List[2];
cparata 0:e4f89df7a7a5 491 break;
cparata 0:e4f89df7a7a5 492
cparata 0:e4f89df7a7a5 493 case LSM6DSL_ACC_GYRO_FS_G_1000dps:
cparata 0:e4f89df7a7a5 494 sensitivity = LSM6DSL_GYRO_Sensitivity_List[3];
cparata 0:e4f89df7a7a5 495 break;
cparata 0:e4f89df7a7a5 496
cparata 0:e4f89df7a7a5 497 case LSM6DSL_ACC_GYRO_FS_G_2000dps:
cparata 0:e4f89df7a7a5 498 sensitivity = LSM6DSL_GYRO_Sensitivity_List[4];
cparata 0:e4f89df7a7a5 499 break;
cparata 0:e4f89df7a7a5 500 }
cparata 0:e4f89df7a7a5 501 }
cparata 0:e4f89df7a7a5 502
cparata 0:e4f89df7a7a5 503 /* Read out raw accelerometer samples */
cparata 0:e4f89df7a7a5 504 if (from_fifo) {
cparata 0:e4f89df7a7a5 505 u8_t i;
cparata 0:e4f89df7a7a5 506
cparata 0:e4f89df7a7a5 507 /* read all 3 axis from FIFO */
cparata 0:e4f89df7a7a5 508 for(i = 0; i < 3; i++)
cparata 0:e4f89df7a7a5 509 LSM6DSL_ACC_GYRO_Get_GetFIFOData(handle, raw_data_tmp.u8bit + 2*i);
cparata 0:e4f89df7a7a5 510 } else
cparata 0:e4f89df7a7a5 511 LSM6DSL_ACC_GYRO_GetRawGyroData(handle, raw_data_tmp.u8bit);
cparata 0:e4f89df7a7a5 512
cparata 0:e4f89df7a7a5 513 /* Apply proper shift and sensitivity */
cparata 0:e4f89df7a7a5 514 buff[0] = (raw_data_tmp.i16bit[0] * sensitivity + 500)/1000;
cparata 0:e4f89df7a7a5 515 buff[1] = (raw_data_tmp.i16bit[1] * sensitivity + 500)/1000;
cparata 0:e4f89df7a7a5 516 buff[2] = (raw_data_tmp.i16bit[2] * sensitivity + 500)/1000;
cparata 0:e4f89df7a7a5 517
cparata 0:e4f89df7a7a5 518 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 519 }
cparata 0:e4f89df7a7a5 520
cparata 0:e4f89df7a7a5 521 /*******************************************************************************
cparata 0:e4f89df7a7a5 522 * Function Name : LSM6DSL_ACC_GYRO_W_ODR_G
cparata 0:e4f89df7a7a5 523 * Description : Write ODR_G
cparata 0:e4f89df7a7a5 524 * Input : LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:e4f89df7a7a5 525 * Output : None
cparata 0:e4f89df7a7a5 526 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 527 *******************************************************************************/
cparata 0:e4f89df7a7a5 528 status_t LSM6DSL_ACC_GYRO_W_ODR_G(void *handle, LSM6DSL_ACC_GYRO_ODR_G_t newValue)
cparata 0:e4f89df7a7a5 529 {
cparata 0:e4f89df7a7a5 530 u8_t value;
cparata 0:e4f89df7a7a5 531
cparata 0:e4f89df7a7a5 532 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1))
cparata 0:e4f89df7a7a5 533 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 534
cparata 0:e4f89df7a7a5 535 value &= ~LSM6DSL_ACC_GYRO_ODR_G_MASK;
cparata 0:e4f89df7a7a5 536 value |= newValue;
cparata 0:e4f89df7a7a5 537
cparata 0:e4f89df7a7a5 538 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1) )
cparata 0:e4f89df7a7a5 539 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 540
cparata 0:e4f89df7a7a5 541 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 542 }
cparata 0:e4f89df7a7a5 543
cparata 0:e4f89df7a7a5 544 /*******************************************************************************
cparata 0:e4f89df7a7a5 545 * Function Name : LSM6DSL_ACC_GYRO_R_ODR_G
cparata 0:e4f89df7a7a5 546 * Description : Read ODR_G
cparata 0:e4f89df7a7a5 547 * Input : Pointer to LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:e4f89df7a7a5 548 * Output : Status of ODR_G see LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:e4f89df7a7a5 549 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 550 *******************************************************************************/
cparata 0:e4f89df7a7a5 551 status_t LSM6DSL_ACC_GYRO_R_ODR_G(void *handle, LSM6DSL_ACC_GYRO_ODR_G_t *value)
cparata 0:e4f89df7a7a5 552 {
cparata 0:e4f89df7a7a5 553 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 554 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 555
cparata 0:e4f89df7a7a5 556 *value &= LSM6DSL_ACC_GYRO_ODR_G_MASK; //mask
cparata 0:e4f89df7a7a5 557
cparata 0:e4f89df7a7a5 558 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 559 }
cparata 0:e4f89df7a7a5 560
cparata 0:e4f89df7a7a5 561 /*******************************************************************************
cparata 0:e4f89df7a7a5 562 * Function Name : LSM6DSL_ACC_GYRO_translate_ODR_G
cparata 0:e4f89df7a7a5 563 * Description : Read ODR_G
cparata 0:e4f89df7a7a5 564 * Input : LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:e4f89df7a7a5 565 * Output : The ODR value in Hz
cparata 0:e4f89df7a7a5 566 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 567 *******************************************************************************/
cparata 0:e4f89df7a7a5 568 status_t LSM6DSL_ACC_GYRO_translate_ODR_G(LSM6DSL_ACC_GYRO_ODR_G_t value, u16_t *odr_hz_val)
cparata 0:e4f89df7a7a5 569 {
cparata 0:e4f89df7a7a5 570 switch(value) {
cparata 0:e4f89df7a7a5 571 case LSM6DSL_ACC_GYRO_ODR_G_POWER_DOWN:
cparata 0:e4f89df7a7a5 572 *odr_hz_val = 0;
cparata 0:e4f89df7a7a5 573 break;
cparata 0:e4f89df7a7a5 574
cparata 0:e4f89df7a7a5 575 case LSM6DSL_ACC_GYRO_ODR_G_13Hz:
cparata 0:e4f89df7a7a5 576 *odr_hz_val = 13;
cparata 0:e4f89df7a7a5 577 break;
cparata 0:e4f89df7a7a5 578
cparata 0:e4f89df7a7a5 579 case LSM6DSL_ACC_GYRO_ODR_G_26Hz:
cparata 0:e4f89df7a7a5 580 *odr_hz_val = 26;
cparata 0:e4f89df7a7a5 581 break;
cparata 0:e4f89df7a7a5 582
cparata 0:e4f89df7a7a5 583 case LSM6DSL_ACC_GYRO_ODR_G_52Hz:
cparata 0:e4f89df7a7a5 584 *odr_hz_val = 52;
cparata 0:e4f89df7a7a5 585 break;
cparata 0:e4f89df7a7a5 586
cparata 0:e4f89df7a7a5 587 case LSM6DSL_ACC_GYRO_ODR_G_104Hz:
cparata 0:e4f89df7a7a5 588 *odr_hz_val = 104;
cparata 0:e4f89df7a7a5 589 break;
cparata 0:e4f89df7a7a5 590
cparata 0:e4f89df7a7a5 591 case LSM6DSL_ACC_GYRO_ODR_G_208Hz:
cparata 0:e4f89df7a7a5 592 *odr_hz_val = 208;
cparata 0:e4f89df7a7a5 593 break;
cparata 0:e4f89df7a7a5 594
cparata 0:e4f89df7a7a5 595 case LSM6DSL_ACC_GYRO_ODR_G_416Hz:
cparata 0:e4f89df7a7a5 596 *odr_hz_val = 416;
cparata 0:e4f89df7a7a5 597 break;
cparata 0:e4f89df7a7a5 598
cparata 0:e4f89df7a7a5 599 case LSM6DSL_ACC_GYRO_ODR_G_833Hz:
cparata 0:e4f89df7a7a5 600 *odr_hz_val = 833;
cparata 0:e4f89df7a7a5 601 break;
cparata 0:e4f89df7a7a5 602
cparata 0:e4f89df7a7a5 603 case LSM6DSL_ACC_GYRO_ODR_G_1660Hz:
cparata 0:e4f89df7a7a5 604 *odr_hz_val = 1660;
cparata 0:e4f89df7a7a5 605 break;
cparata 0:e4f89df7a7a5 606
cparata 0:e4f89df7a7a5 607 default:
cparata 0:e4f89df7a7a5 608 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 609 }
cparata 0:e4f89df7a7a5 610
cparata 0:e4f89df7a7a5 611 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 612 }
cparata 0:e4f89df7a7a5 613
cparata 0:e4f89df7a7a5 614 /*******************************************************************************
cparata 0:e4f89df7a7a5 615 * Function Name : LSM6DSL_ACC_GYRO_W_FS_125
cparata 0:e4f89df7a7a5 616 * Description : Write FS_125
cparata 0:e4f89df7a7a5 617 * Input : LSM6DSL_ACC_GYRO_FS_125_t
cparata 0:e4f89df7a7a5 618 * Output : None
cparata 0:e4f89df7a7a5 619 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 620 *******************************************************************************/
cparata 0:e4f89df7a7a5 621 status_t LSM6DSL_ACC_GYRO_W_FS_125(void *handle, LSM6DSL_ACC_GYRO_FS_125_t newValue)
cparata 0:e4f89df7a7a5 622 {
cparata 0:e4f89df7a7a5 623 u8_t value;
cparata 0:e4f89df7a7a5 624
cparata 0:e4f89df7a7a5 625 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1))
cparata 0:e4f89df7a7a5 626 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 627
cparata 0:e4f89df7a7a5 628 value &= ~LSM6DSL_ACC_GYRO_FS_125_MASK;
cparata 0:e4f89df7a7a5 629 value |= newValue;
cparata 0:e4f89df7a7a5 630
cparata 0:e4f89df7a7a5 631 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1) )
cparata 0:e4f89df7a7a5 632 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 633
cparata 0:e4f89df7a7a5 634 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 635 }
cparata 0:e4f89df7a7a5 636
cparata 0:e4f89df7a7a5 637 /*******************************************************************************
cparata 0:e4f89df7a7a5 638 * Function Name : LSM6DSL_ACC_GYRO_R_FS_125
cparata 0:e4f89df7a7a5 639 * Description : Read FS_125
cparata 0:e4f89df7a7a5 640 * Input : Pointer to LSM6DSL_ACC_GYRO_FS_125_t
cparata 0:e4f89df7a7a5 641 * Output : Status of FS_125 see LSM6DSL_ACC_GYRO_FS_125_t
cparata 0:e4f89df7a7a5 642 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 643 *******************************************************************************/
cparata 0:e4f89df7a7a5 644 status_t LSM6DSL_ACC_GYRO_R_FS_125(void *handle, LSM6DSL_ACC_GYRO_FS_125_t *value)
cparata 0:e4f89df7a7a5 645 {
cparata 0:e4f89df7a7a5 646 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 647 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 648
cparata 0:e4f89df7a7a5 649 *value &= LSM6DSL_ACC_GYRO_FS_125_MASK; //mask
cparata 0:e4f89df7a7a5 650
cparata 0:e4f89df7a7a5 651 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 652 }
cparata 0:e4f89df7a7a5 653
cparata 0:e4f89df7a7a5 654 /**************** Advanced Function *******************/
cparata 0:e4f89df7a7a5 655
cparata 0:e4f89df7a7a5 656 /*******************************************************************************
cparata 0:e4f89df7a7a5 657 * Function Name : LSM6DSL_ACC_GYRO_W_BW_SEL
cparata 0:e4f89df7a7a5 658 * Description : Write BW_SEL
cparata 0:e4f89df7a7a5 659 * Input : LSM6DSL_ACC_GYRO_BW_SEL_t
cparata 0:e4f89df7a7a5 660 * Output : None
cparata 0:e4f89df7a7a5 661 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 662 *******************************************************************************/
cparata 0:e4f89df7a7a5 663 status_t LSM6DSL_ACC_GYRO_W_BW_SEL(void *handle, LSM6DSL_ACC_GYRO_BW_SEL_t newValue)
cparata 0:e4f89df7a7a5 664 {
cparata 0:e4f89df7a7a5 665 u8_t value;
cparata 0:e4f89df7a7a5 666
cparata 0:e4f89df7a7a5 667 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1))
cparata 0:e4f89df7a7a5 668 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 669
cparata 0:e4f89df7a7a5 670 value &= ~LSM6DSL_ACC_GYRO_BW_SEL_MASK;
cparata 0:e4f89df7a7a5 671 value |= newValue;
cparata 0:e4f89df7a7a5 672
cparata 0:e4f89df7a7a5 673 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1) )
cparata 0:e4f89df7a7a5 674 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 675
cparata 0:e4f89df7a7a5 676 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 677 }
cparata 0:e4f89df7a7a5 678
cparata 0:e4f89df7a7a5 679 /*******************************************************************************
cparata 0:e4f89df7a7a5 680 * Function Name : LSM6DSL_ACC_GYRO_R_BW_SEL
cparata 0:e4f89df7a7a5 681 * Description : Read BW_SEL
cparata 0:e4f89df7a7a5 682 * Input : Pointer to LSM6DSL_ACC_GYRO_BW_SEL_t
cparata 0:e4f89df7a7a5 683 * Output : Status of BW_SEL see LSM6DSL_ACC_GYRO_BW_SEL_t
cparata 0:e4f89df7a7a5 684 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 685 *******************************************************************************/
cparata 0:e4f89df7a7a5 686 status_t LSM6DSL_ACC_GYRO_R_BW_SEL(void *handle, LSM6DSL_ACC_GYRO_BW_SEL_t *value)
cparata 0:e4f89df7a7a5 687 {
cparata 0:e4f89df7a7a5 688 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 689 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 690
cparata 0:e4f89df7a7a5 691 *value &= LSM6DSL_ACC_GYRO_BW_SEL_MASK; //mask
cparata 0:e4f89df7a7a5 692
cparata 0:e4f89df7a7a5 693 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 694 }
cparata 0:e4f89df7a7a5 695
cparata 0:e4f89df7a7a5 696 /*******************************************************************************
cparata 0:e4f89df7a7a5 697 * Function Name : LSM6DSL_ACC_GYRO_W_BLE
cparata 0:e4f89df7a7a5 698 * Description : Write BLE
cparata 0:e4f89df7a7a5 699 * Input : LSM6DSL_ACC_GYRO_BLE_t
cparata 0:e4f89df7a7a5 700 * Output : None
cparata 0:e4f89df7a7a5 701 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 702 *******************************************************************************/
cparata 0:e4f89df7a7a5 703 status_t LSM6DSL_ACC_GYRO_W_BLE(void *handle, LSM6DSL_ACC_GYRO_BLE_t newValue)
cparata 0:e4f89df7a7a5 704 {
cparata 0:e4f89df7a7a5 705 u8_t value;
cparata 0:e4f89df7a7a5 706
cparata 0:e4f89df7a7a5 707 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 708 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 709
cparata 0:e4f89df7a7a5 710 value &= ~LSM6DSL_ACC_GYRO_BLE_MASK;
cparata 0:e4f89df7a7a5 711 value |= newValue;
cparata 0:e4f89df7a7a5 712
cparata 0:e4f89df7a7a5 713 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 714 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 715
cparata 0:e4f89df7a7a5 716 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 717 }
cparata 0:e4f89df7a7a5 718
cparata 0:e4f89df7a7a5 719 /*******************************************************************************
cparata 0:e4f89df7a7a5 720 * Function Name : LSM6DSL_ACC_GYRO_R_BLE
cparata 0:e4f89df7a7a5 721 * Description : Read BLE
cparata 0:e4f89df7a7a5 722 * Input : Pointer to LSM6DSL_ACC_GYRO_BLE_t
cparata 0:e4f89df7a7a5 723 * Output : Status of BLE see LSM6DSL_ACC_GYRO_BLE_t
cparata 0:e4f89df7a7a5 724 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 725 *******************************************************************************/
cparata 0:e4f89df7a7a5 726 status_t LSM6DSL_ACC_GYRO_R_BLE(void *handle, LSM6DSL_ACC_GYRO_BLE_t *value)
cparata 0:e4f89df7a7a5 727 {
cparata 0:e4f89df7a7a5 728 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 729 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 730
cparata 0:e4f89df7a7a5 731 *value &= LSM6DSL_ACC_GYRO_BLE_MASK; //mask
cparata 0:e4f89df7a7a5 732
cparata 0:e4f89df7a7a5 733 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 734 }
cparata 0:e4f89df7a7a5 735
cparata 0:e4f89df7a7a5 736 /*******************************************************************************
cparata 0:e4f89df7a7a5 737 * Function Name : LSM6DSL_ACC_GYRO_W_EmbeddedAccess
cparata 0:e4f89df7a7a5 738 * Description : Write EMB_ACC
cparata 0:e4f89df7a7a5 739 * Input : LSM6DSL_ACC_GYRO_EMB_ACC_t
cparata 0:e4f89df7a7a5 740 * Output : None
cparata 0:e4f89df7a7a5 741 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 742 *******************************************************************************/
cparata 0:e4f89df7a7a5 743 status_t LSM6DSL_ACC_GYRO_W_EmbeddedAccess(void *handle, LSM6DSL_ACC_GYRO_EMB_ACC_t newValue)
cparata 0:e4f89df7a7a5 744 {
cparata 0:e4f89df7a7a5 745 u8_t value;
cparata 0:e4f89df7a7a5 746
cparata 0:e4f89df7a7a5 747 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS, &value, 1) )
cparata 0:e4f89df7a7a5 748 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 749
cparata 0:e4f89df7a7a5 750 value &= ~LSM6DSL_ACC_GYRO_EMB_ACC_MASK;
cparata 0:e4f89df7a7a5 751 value |= newValue;
cparata 0:e4f89df7a7a5 752
cparata 0:e4f89df7a7a5 753 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS, &value, 1) )
cparata 0:e4f89df7a7a5 754 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 755
cparata 0:e4f89df7a7a5 756 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 757 }
cparata 0:e4f89df7a7a5 758
cparata 0:e4f89df7a7a5 759 /*******************************************************************************
cparata 0:e4f89df7a7a5 760 * Function Name : LSM6DSL_ACC_GYRO_R_EmbeddedAccess
cparata 0:e4f89df7a7a5 761 * Description : Read EMB_ACC
cparata 0:e4f89df7a7a5 762 * Input : Pointer to LSM6DSL_ACC_GYRO_EMB_ACC_t
cparata 0:e4f89df7a7a5 763 * Output : Status of EMB_ACC see LSM6DSL_ACC_GYRO_EMB_ACC_t
cparata 0:e4f89df7a7a5 764 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 765 *******************************************************************************/
cparata 0:e4f89df7a7a5 766 status_t LSM6DSL_ACC_GYRO_R_EmbeddedAccess(void *handle, LSM6DSL_ACC_GYRO_EMB_ACC_t *value)
cparata 0:e4f89df7a7a5 767 {
cparata 0:e4f89df7a7a5 768 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 769 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 770
cparata 0:e4f89df7a7a5 771 *value &= LSM6DSL_ACC_GYRO_EMB_ACC_MASK; //mask
cparata 0:e4f89df7a7a5 772
cparata 0:e4f89df7a7a5 773 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 774 }
cparata 0:e4f89df7a7a5 775
cparata 0:e4f89df7a7a5 776 /*******************************************************************************
cparata 0:e4f89df7a7a5 777 * Function Name : LSM6DSL_ACC_GYRO_W_SYNC_RES_RATIO
cparata 0:e4f89df7a7a5 778 * Description : Write RR
cparata 0:e4f89df7a7a5 779 * Input : LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t
cparata 0:e4f89df7a7a5 780 * Output : None
cparata 0:e4f89df7a7a5 781 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 782 *******************************************************************************/
cparata 0:e4f89df7a7a5 783 status_t LSM6DSL_ACC_GYRO_W_SYNC_RES_RATIO(void *handle, LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t newValue)
cparata 0:e4f89df7a7a5 784 {
cparata 0:e4f89df7a7a5 785 u8_t value;
cparata 0:e4f89df7a7a5 786
cparata 0:e4f89df7a7a5 787 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO, &value, 1) )
cparata 0:e4f89df7a7a5 788 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 789
cparata 0:e4f89df7a7a5 790 value &= ~LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_MASK;
cparata 0:e4f89df7a7a5 791 value |= newValue;
cparata 0:e4f89df7a7a5 792
cparata 0:e4f89df7a7a5 793 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO, &value, 1) )
cparata 0:e4f89df7a7a5 794 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 795
cparata 0:e4f89df7a7a5 796 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 797 }
cparata 0:e4f89df7a7a5 798
cparata 0:e4f89df7a7a5 799 /*******************************************************************************
cparata 0:e4f89df7a7a5 800 * Function Name : LSM6DSL_ACC_GYRO_R_SYNC_RES_RATIO
cparata 0:e4f89df7a7a5 801 * Description : Read RR
cparata 0:e4f89df7a7a5 802 * Input : Pointer to LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t
cparata 0:e4f89df7a7a5 803 * Output : Status of RR see LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t
cparata 0:e4f89df7a7a5 804 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 805 *******************************************************************************/
cparata 0:e4f89df7a7a5 806 status_t LSM6DSL_ACC_GYRO_R_SYNC_RES_RATIO(void *handle, LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t *value)
cparata 0:e4f89df7a7a5 807 {
cparata 0:e4f89df7a7a5 808 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 809 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 810
cparata 0:e4f89df7a7a5 811 *value &= LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_MASK; //mask
cparata 0:e4f89df7a7a5 812
cparata 0:e4f89df7a7a5 813 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 814 }
cparata 0:e4f89df7a7a5 815
cparata 0:e4f89df7a7a5 816 /*******************************************************************************
cparata 0:e4f89df7a7a5 817 * Function Name : LSM6DSL_ACC_GYRO_W_Stamping_Time_Frame
cparata 0:e4f89df7a7a5 818 * Description : Write TPH
cparata 0:e4f89df7a7a5 819 * Input : u8_t
cparata 0:e4f89df7a7a5 820 * Output : None
cparata 0:e4f89df7a7a5 821 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 822 *******************************************************************************/
cparata 0:e4f89df7a7a5 823 status_t LSM6DSL_ACC_GYRO_W_Stamping_Time_Frame(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 824 {
cparata 0:e4f89df7a7a5 825 u8_t value;
cparata 0:e4f89df7a7a5 826
cparata 0:e4f89df7a7a5 827 newValue = newValue << LSM6DSL_ACC_GYRO_TPH_POSITION; //mask
cparata 0:e4f89df7a7a5 828 newValue &= LSM6DSL_ACC_GYRO_TPH_MASK; //coerce
cparata 0:e4f89df7a7a5 829
cparata 0:e4f89df7a7a5 830 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME, &value, 1) )
cparata 0:e4f89df7a7a5 831 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 832
cparata 0:e4f89df7a7a5 833 value &= (u8_t)~LSM6DSL_ACC_GYRO_TPH_MASK;
cparata 0:e4f89df7a7a5 834 value |= newValue;
cparata 0:e4f89df7a7a5 835
cparata 0:e4f89df7a7a5 836 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME, &value, 1) )
cparata 0:e4f89df7a7a5 837 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 838
cparata 0:e4f89df7a7a5 839 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 840 }
cparata 0:e4f89df7a7a5 841
cparata 0:e4f89df7a7a5 842 /*******************************************************************************
cparata 0:e4f89df7a7a5 843 * Function Name : LSM6DSL_ACC_GYRO_R_Stamping_Time_Frame
cparata 0:e4f89df7a7a5 844 * Description : Read TPH
cparata 0:e4f89df7a7a5 845 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 846 * Output : Status of TPH
cparata 0:e4f89df7a7a5 847 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 848 *******************************************************************************/
cparata 0:e4f89df7a7a5 849 status_t LSM6DSL_ACC_GYRO_R_Stamping_Time_Frame(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 850 {
cparata 0:e4f89df7a7a5 851 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 852 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 853
cparata 0:e4f89df7a7a5 854 *value &= LSM6DSL_ACC_GYRO_TPH_MASK; //coerce
cparata 0:e4f89df7a7a5 855 *value = *value >> LSM6DSL_ACC_GYRO_TPH_POSITION; //mask
cparata 0:e4f89df7a7a5 856
cparata 0:e4f89df7a7a5 857 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 858 }
cparata 0:e4f89df7a7a5 859
cparata 0:e4f89df7a7a5 860 /*******************************************************************************
cparata 0:e4f89df7a7a5 861 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_Watermark
cparata 0:e4f89df7a7a5 862 * Description : Write WTM_FIFO
cparata 0:e4f89df7a7a5 863 * Input : u16_t
cparata 0:e4f89df7a7a5 864 * Output : None
cparata 0:e4f89df7a7a5 865 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 866 *******************************************************************************/
cparata 0:e4f89df7a7a5 867 status_t LSM6DSL_ACC_GYRO_W_FIFO_Watermark(void *handle, u16_t newValue)
cparata 0:e4f89df7a7a5 868 {
cparata 0:e4f89df7a7a5 869 u8_t valueH, valueL;
cparata 0:e4f89df7a7a5 870 u8_t value;
cparata 0:e4f89df7a7a5 871
cparata 0:e4f89df7a7a5 872 valueL = newValue & 0xFF;
cparata 0:e4f89df7a7a5 873 valueH = (newValue >> 8) & 0xFF;
cparata 0:e4f89df7a7a5 874
cparata 0:e4f89df7a7a5 875 /* Low part goes in FIFO_CTRL1 */
cparata 0:e4f89df7a7a5 876 valueL = valueL << LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_POSITION; //mask
cparata 0:e4f89df7a7a5 877 valueL &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_MASK; //coerce
cparata 0:e4f89df7a7a5 878
cparata 0:e4f89df7a7a5 879 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL1, &value, 1) )
cparata 0:e4f89df7a7a5 880 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 881
cparata 0:e4f89df7a7a5 882 value &= (u8_t)~LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_MASK;
cparata 0:e4f89df7a7a5 883 value |= valueL;
cparata 0:e4f89df7a7a5 884
cparata 0:e4f89df7a7a5 885 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL1, &value, 1) )
cparata 0:e4f89df7a7a5 886 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 887
cparata 0:e4f89df7a7a5 888 /* High part goes in FIFO_CTRL2 */
cparata 0:e4f89df7a7a5 889 valueH = valueH << LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_POSITION; //mask
cparata 0:e4f89df7a7a5 890 valueH &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_MASK; //coerce
cparata 0:e4f89df7a7a5 891
cparata 0:e4f89df7a7a5 892 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 893 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 894
cparata 0:e4f89df7a7a5 895 value &= ~LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_MASK;
cparata 0:e4f89df7a7a5 896 value |= valueH;
cparata 0:e4f89df7a7a5 897
cparata 0:e4f89df7a7a5 898 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 899 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 900
cparata 0:e4f89df7a7a5 901 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 902 }
cparata 0:e4f89df7a7a5 903
cparata 0:e4f89df7a7a5 904 /*******************************************************************************
cparata 0:e4f89df7a7a5 905 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_Watermark
cparata 0:e4f89df7a7a5 906 * Description : Read WTM_FIFO
cparata 0:e4f89df7a7a5 907 * Input : Pointer to u16_t
cparata 0:e4f89df7a7a5 908 * Output : Status of WTM_FIFO
cparata 0:e4f89df7a7a5 909 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 910 *******************************************************************************/
cparata 0:e4f89df7a7a5 911 status_t LSM6DSL_ACC_GYRO_R_FIFO_Watermark(void *handle, u16_t *value)
cparata 0:e4f89df7a7a5 912 {
cparata 0:e4f89df7a7a5 913 u8_t valueH, valueL;
cparata 0:e4f89df7a7a5 914
cparata 0:e4f89df7a7a5 915 /* Low part from FIFO_CTRL1 */
cparata 0:e4f89df7a7a5 916 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL1, (u8_t *)&valueL, 1) )
cparata 0:e4f89df7a7a5 917 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 918
cparata 0:e4f89df7a7a5 919 valueL &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_MASK; //coerce
cparata 0:e4f89df7a7a5 920 valueL = valueL >> LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_POSITION; //mask
cparata 0:e4f89df7a7a5 921
cparata 0:e4f89df7a7a5 922 /* High part from FIFO_CTRL2 */
cparata 0:e4f89df7a7a5 923 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)&valueH, 1) )
cparata 0:e4f89df7a7a5 924 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 925
cparata 0:e4f89df7a7a5 926 valueH &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_MASK; //coerce
cparata 0:e4f89df7a7a5 927 valueH = valueH >> LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_POSITION; //mask
cparata 0:e4f89df7a7a5 928
cparata 0:e4f89df7a7a5 929 *value = ((valueH << 8) & 0xFF00) | valueL;
cparata 0:e4f89df7a7a5 930
cparata 0:e4f89df7a7a5 931 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 932 }
cparata 0:e4f89df7a7a5 933
cparata 0:e4f89df7a7a5 934 /*******************************************************************************
cparata 0:e4f89df7a7a5 935 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_TEMP
cparata 0:e4f89df7a7a5 936 * Description : Write FIFO_TEMP_EN
cparata 0:e4f89df7a7a5 937 * Input : LSM6DSL_ACC_GYRO_FIFO_TEMP_t
cparata 0:e4f89df7a7a5 938 * Output : None
cparata 0:e4f89df7a7a5 939 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 940 *******************************************************************************/
cparata 0:e4f89df7a7a5 941 status_t LSM6DSL_ACC_GYRO_W_FIFO_TEMP(void *handle, LSM6DSL_ACC_GYRO_FIFO_TEMP_t newValue)
cparata 0:e4f89df7a7a5 942 {
cparata 0:e4f89df7a7a5 943 u8_t value;
cparata 0:e4f89df7a7a5 944
cparata 0:e4f89df7a7a5 945 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 946 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 947
cparata 0:e4f89df7a7a5 948 value &= ~LSM6DSL_ACC_GYRO_FIFO_TEMP_MASK;
cparata 0:e4f89df7a7a5 949 value |= newValue;
cparata 0:e4f89df7a7a5 950
cparata 0:e4f89df7a7a5 951 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 952 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 953
cparata 0:e4f89df7a7a5 954 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 955 }
cparata 0:e4f89df7a7a5 956
cparata 0:e4f89df7a7a5 957 /*******************************************************************************
cparata 0:e4f89df7a7a5 958 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_TEMP
cparata 0:e4f89df7a7a5 959 * Description : Read FIFO_TEMP_EN
cparata 0:e4f89df7a7a5 960 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_TEMP_t
cparata 0:e4f89df7a7a5 961 * Output : Status of FIFO_TEMP_EN see LSM6DSL_ACC_GYRO_FIFO_TEMP_t
cparata 0:e4f89df7a7a5 962 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 963 *******************************************************************************/
cparata 0:e4f89df7a7a5 964 status_t LSM6DSL_ACC_GYRO_R_FIFO_TEMP(void *handle, LSM6DSL_ACC_GYRO_FIFO_TEMP_t *value)
cparata 0:e4f89df7a7a5 965 {
cparata 0:e4f89df7a7a5 966 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 967 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 968
cparata 0:e4f89df7a7a5 969 *value &= LSM6DSL_ACC_GYRO_FIFO_TEMP_MASK; //mask
cparata 0:e4f89df7a7a5 970
cparata 0:e4f89df7a7a5 971 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 972 }
cparata 0:e4f89df7a7a5 973
cparata 0:e4f89df7a7a5 974 /*******************************************************************************
cparata 0:e4f89df7a7a5 975 * Function Name : LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_Write_En
cparata 0:e4f89df7a7a5 976 * Description : Write TIM_PEDO_FIFO_DRDY
cparata 0:e4f89df7a7a5 977 * Input : LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t
cparata 0:e4f89df7a7a5 978 * Output : None
cparata 0:e4f89df7a7a5 979 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 980 *******************************************************************************/
cparata 0:e4f89df7a7a5 981 status_t LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_Write_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t newValue)
cparata 0:e4f89df7a7a5 982 {
cparata 0:e4f89df7a7a5 983 u8_t value;
cparata 0:e4f89df7a7a5 984
cparata 0:e4f89df7a7a5 985 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 986 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 987
cparata 0:e4f89df7a7a5 988 value &= ~LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_MASK;
cparata 0:e4f89df7a7a5 989 value |= newValue;
cparata 0:e4f89df7a7a5 990
cparata 0:e4f89df7a7a5 991 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 992 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 993
cparata 0:e4f89df7a7a5 994 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 995 }
cparata 0:e4f89df7a7a5 996
cparata 0:e4f89df7a7a5 997 /*******************************************************************************
cparata 0:e4f89df7a7a5 998 * Function Name : LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_Write_En
cparata 0:e4f89df7a7a5 999 * Description : Read TIM_PEDO_FIFO_DRDY
cparata 0:e4f89df7a7a5 1000 * Input : Pointer to LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t
cparata 0:e4f89df7a7a5 1001 * Output : Status of TIM_PEDO_FIFO_DRDY see LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t
cparata 0:e4f89df7a7a5 1002 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1003 *******************************************************************************/
cparata 0:e4f89df7a7a5 1004 status_t LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_Write_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t *value)
cparata 0:e4f89df7a7a5 1005 {
cparata 0:e4f89df7a7a5 1006 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 1007 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1008
cparata 0:e4f89df7a7a5 1009 *value &= LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_MASK; //mask
cparata 0:e4f89df7a7a5 1010
cparata 0:e4f89df7a7a5 1011 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1012 }
cparata 0:e4f89df7a7a5 1013
cparata 0:e4f89df7a7a5 1014 /*******************************************************************************
cparata 0:e4f89df7a7a5 1015 * Function Name : LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_En
cparata 0:e4f89df7a7a5 1016 * Description : Write TIM_PEDO_FIFO_EN
cparata 0:e4f89df7a7a5 1017 * Input : LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t
cparata 0:e4f89df7a7a5 1018 * Output : None
cparata 0:e4f89df7a7a5 1019 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1020 *******************************************************************************/
cparata 0:e4f89df7a7a5 1021 status_t LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t newValue)
cparata 0:e4f89df7a7a5 1022 {
cparata 0:e4f89df7a7a5 1023 u8_t value;
cparata 0:e4f89df7a7a5 1024
cparata 0:e4f89df7a7a5 1025 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 1026 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1027
cparata 0:e4f89df7a7a5 1028 value &= ~LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_MASK;
cparata 0:e4f89df7a7a5 1029 value |= newValue;
cparata 0:e4f89df7a7a5 1030
cparata 0:e4f89df7a7a5 1031 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:e4f89df7a7a5 1032 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1033
cparata 0:e4f89df7a7a5 1034 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1035 }
cparata 0:e4f89df7a7a5 1036
cparata 0:e4f89df7a7a5 1037 /*******************************************************************************
cparata 0:e4f89df7a7a5 1038 * Function Name : LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_En
cparata 0:e4f89df7a7a5 1039 * Description : Read TIM_PEDO_FIFO_EN
cparata 0:e4f89df7a7a5 1040 * Input : Pointer to LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t
cparata 0:e4f89df7a7a5 1041 * Output : Status of TIM_PEDO_FIFO_EN see LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t
cparata 0:e4f89df7a7a5 1042 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1043 *******************************************************************************/
cparata 0:e4f89df7a7a5 1044 status_t LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t *value)
cparata 0:e4f89df7a7a5 1045 {
cparata 0:e4f89df7a7a5 1046 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 1047 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1048
cparata 0:e4f89df7a7a5 1049 *value &= LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_MASK; //mask
cparata 0:e4f89df7a7a5 1050
cparata 0:e4f89df7a7a5 1051 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1052 }
cparata 0:e4f89df7a7a5 1053 /*******************************************************************************
cparata 0:e4f89df7a7a5 1054 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL
cparata 0:e4f89df7a7a5 1055 * Description : Write DEC_FIFO_XL
cparata 0:e4f89df7a7a5 1056 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t
cparata 0:e4f89df7a7a5 1057 * Output : None
cparata 0:e4f89df7a7a5 1058 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1059 *******************************************************************************/
cparata 0:e4f89df7a7a5 1060 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t newValue)
cparata 0:e4f89df7a7a5 1061 {
cparata 0:e4f89df7a7a5 1062 u8_t value;
cparata 0:e4f89df7a7a5 1063
cparata 0:e4f89df7a7a5 1064 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1) )
cparata 0:e4f89df7a7a5 1065 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1066
cparata 0:e4f89df7a7a5 1067 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_XL_MASK;
cparata 0:e4f89df7a7a5 1068 value |= newValue;
cparata 0:e4f89df7a7a5 1069
cparata 0:e4f89df7a7a5 1070 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1) )
cparata 0:e4f89df7a7a5 1071 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1072
cparata 0:e4f89df7a7a5 1073 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1074 }
cparata 0:e4f89df7a7a5 1075
cparata 0:e4f89df7a7a5 1076 /*******************************************************************************
cparata 0:e4f89df7a7a5 1077 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL_val
cparata 0:e4f89df7a7a5 1078 * Description : Write DEC_FIFO_XL
cparata 0:e4f89df7a7a5 1079 * Input : u16_t
cparata 0:e4f89df7a7a5 1080 * Output : Program XL decimation value from unsigned short
cparata 0:e4f89df7a7a5 1081 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1082 *******************************************************************************/
cparata 0:e4f89df7a7a5 1083 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL_val(void *handle, u16_t newValue)
cparata 0:e4f89df7a7a5 1084 {
cparata 0:e4f89df7a7a5 1085 switch(newValue) {
cparata 0:e4f89df7a7a5 1086 case 0:
cparata 0:e4f89df7a7a5 1087 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DATA_NOT_IN_FIFO);
cparata 0:e4f89df7a7a5 1088 break;
cparata 0:e4f89df7a7a5 1089
cparata 0:e4f89df7a7a5 1090 case 1:
cparata 0:e4f89df7a7a5 1091 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_NO_DECIMATION);
cparata 0:e4f89df7a7a5 1092 break;
cparata 0:e4f89df7a7a5 1093
cparata 0:e4f89df7a7a5 1094 case 2:
cparata 0:e4f89df7a7a5 1095 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_2);
cparata 0:e4f89df7a7a5 1096 break;
cparata 0:e4f89df7a7a5 1097
cparata 0:e4f89df7a7a5 1098 case 3:
cparata 0:e4f89df7a7a5 1099 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_3);
cparata 0:e4f89df7a7a5 1100 break;
cparata 0:e4f89df7a7a5 1101
cparata 0:e4f89df7a7a5 1102 case 4:
cparata 0:e4f89df7a7a5 1103 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_4);
cparata 0:e4f89df7a7a5 1104 break;
cparata 0:e4f89df7a7a5 1105
cparata 0:e4f89df7a7a5 1106 case 8:
cparata 0:e4f89df7a7a5 1107 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_8);
cparata 0:e4f89df7a7a5 1108 break;
cparata 0:e4f89df7a7a5 1109
cparata 0:e4f89df7a7a5 1110 case 16:
cparata 0:e4f89df7a7a5 1111 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_16);
cparata 0:e4f89df7a7a5 1112 break;
cparata 0:e4f89df7a7a5 1113
cparata 0:e4f89df7a7a5 1114 case 32:
cparata 0:e4f89df7a7a5 1115 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_32);
cparata 0:e4f89df7a7a5 1116 break;
cparata 0:e4f89df7a7a5 1117
cparata 0:e4f89df7a7a5 1118 default:
cparata 0:e4f89df7a7a5 1119 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1120 }
cparata 0:e4f89df7a7a5 1121
cparata 0:e4f89df7a7a5 1122 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1123 }
cparata 0:e4f89df7a7a5 1124
cparata 0:e4f89df7a7a5 1125 /*******************************************************************************
cparata 0:e4f89df7a7a5 1126 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_XL
cparata 0:e4f89df7a7a5 1127 * Description : Read DEC_FIFO_XL
cparata 0:e4f89df7a7a5 1128 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t
cparata 0:e4f89df7a7a5 1129 * Output : Status of DEC_FIFO_XL see LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t
cparata 0:e4f89df7a7a5 1130 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1131 *******************************************************************************/
cparata 0:e4f89df7a7a5 1132 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_XL(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t *value)
cparata 0:e4f89df7a7a5 1133 {
cparata 0:e4f89df7a7a5 1134 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 1135 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1136
cparata 0:e4f89df7a7a5 1137 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_XL_MASK; //mask
cparata 0:e4f89df7a7a5 1138
cparata 0:e4f89df7a7a5 1139 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1140 }
cparata 0:e4f89df7a7a5 1141
cparata 0:e4f89df7a7a5 1142 /*******************************************************************************
cparata 0:e4f89df7a7a5 1143 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_G
cparata 0:e4f89df7a7a5 1144 * Description : Write DEC_FIFO_G
cparata 0:e4f89df7a7a5 1145 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_G_t
cparata 0:e4f89df7a7a5 1146 * Output : None
cparata 0:e4f89df7a7a5 1147 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1148 *******************************************************************************/
cparata 0:e4f89df7a7a5 1149 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_t newValue)
cparata 0:e4f89df7a7a5 1150 {
cparata 0:e4f89df7a7a5 1151 u8_t value;
cparata 0:e4f89df7a7a5 1152
cparata 0:e4f89df7a7a5 1153 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1))
cparata 0:e4f89df7a7a5 1154 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1155
cparata 0:e4f89df7a7a5 1156 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_G_MASK;
cparata 0:e4f89df7a7a5 1157 value |= newValue;
cparata 0:e4f89df7a7a5 1158
cparata 0:e4f89df7a7a5 1159 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1) )
cparata 0:e4f89df7a7a5 1160 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1161
cparata 0:e4f89df7a7a5 1162 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1163 }
cparata 0:e4f89df7a7a5 1164
cparata 0:e4f89df7a7a5 1165 /*******************************************************************************
cparata 0:e4f89df7a7a5 1166 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_G_val
cparata 0:e4f89df7a7a5 1167 * Description : Write DEC_FIFO_G
cparata 0:e4f89df7a7a5 1168 * Input : u16_t
cparata 0:e4f89df7a7a5 1169 * Output : Program G decimation value from unsigned short
cparata 0:e4f89df7a7a5 1170 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1171 *******************************************************************************/
cparata 0:e4f89df7a7a5 1172 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_G_val(void *handle, u16_t newValue)
cparata 0:e4f89df7a7a5 1173 {
cparata 0:e4f89df7a7a5 1174 switch(newValue) {
cparata 0:e4f89df7a7a5 1175 case 0:
cparata 0:e4f89df7a7a5 1176 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DATA_NOT_IN_FIFO);
cparata 0:e4f89df7a7a5 1177 break;
cparata 0:e4f89df7a7a5 1178
cparata 0:e4f89df7a7a5 1179 case 1:
cparata 0:e4f89df7a7a5 1180 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_NO_DECIMATION);
cparata 0:e4f89df7a7a5 1181 break;
cparata 0:e4f89df7a7a5 1182
cparata 0:e4f89df7a7a5 1183 case 2:
cparata 0:e4f89df7a7a5 1184 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_2);
cparata 0:e4f89df7a7a5 1185 break;
cparata 0:e4f89df7a7a5 1186
cparata 0:e4f89df7a7a5 1187 case 3:
cparata 0:e4f89df7a7a5 1188 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_3);
cparata 0:e4f89df7a7a5 1189 break;
cparata 0:e4f89df7a7a5 1190
cparata 0:e4f89df7a7a5 1191 case 4:
cparata 0:e4f89df7a7a5 1192 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_4);
cparata 0:e4f89df7a7a5 1193 break;
cparata 0:e4f89df7a7a5 1194
cparata 0:e4f89df7a7a5 1195 case 8:
cparata 0:e4f89df7a7a5 1196 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_8);
cparata 0:e4f89df7a7a5 1197 break;
cparata 0:e4f89df7a7a5 1198
cparata 0:e4f89df7a7a5 1199 case 16:
cparata 0:e4f89df7a7a5 1200 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_16);
cparata 0:e4f89df7a7a5 1201 break;
cparata 0:e4f89df7a7a5 1202
cparata 0:e4f89df7a7a5 1203 case 32:
cparata 0:e4f89df7a7a5 1204 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_32);
cparata 0:e4f89df7a7a5 1205 break;
cparata 0:e4f89df7a7a5 1206
cparata 0:e4f89df7a7a5 1207 default:
cparata 0:e4f89df7a7a5 1208 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1209 }
cparata 0:e4f89df7a7a5 1210
cparata 0:e4f89df7a7a5 1211 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1212 }
cparata 0:e4f89df7a7a5 1213
cparata 0:e4f89df7a7a5 1214 /*******************************************************************************
cparata 0:e4f89df7a7a5 1215 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_G
cparata 0:e4f89df7a7a5 1216 * Description : Read DEC_FIFO_G
cparata 0:e4f89df7a7a5 1217 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_G_t
cparata 0:e4f89df7a7a5 1218 * Output : Status of DEC_FIFO_G see LSM6DSL_ACC_GYRO_DEC_FIFO_G_t
cparata 0:e4f89df7a7a5 1219 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1220 *******************************************************************************/
cparata 0:e4f89df7a7a5 1221 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_G(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_t *value)
cparata 0:e4f89df7a7a5 1222 {
cparata 0:e4f89df7a7a5 1223 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1224 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1225
cparata 0:e4f89df7a7a5 1226 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_G_MASK; //mask
cparata 0:e4f89df7a7a5 1227
cparata 0:e4f89df7a7a5 1228 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1229 }
cparata 0:e4f89df7a7a5 1230
cparata 0:e4f89df7a7a5 1231 /*******************************************************************************
cparata 0:e4f89df7a7a5 1232 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS3
cparata 0:e4f89df7a7a5 1233 * Description : Write DEC_DS3_FIFO
cparata 0:e4f89df7a7a5 1234 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t
cparata 0:e4f89df7a7a5 1235 * Output : None
cparata 0:e4f89df7a7a5 1236 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1237 *******************************************************************************/
cparata 0:e4f89df7a7a5 1238 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS3(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t newValue)
cparata 0:e4f89df7a7a5 1239 {
cparata 0:e4f89df7a7a5 1240 u8_t value;
cparata 0:e4f89df7a7a5 1241
cparata 0:e4f89df7a7a5 1242 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:e4f89df7a7a5 1243 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1244
cparata 0:e4f89df7a7a5 1245 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_MASK;
cparata 0:e4f89df7a7a5 1246 value |= newValue;
cparata 0:e4f89df7a7a5 1247
cparata 0:e4f89df7a7a5 1248 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:e4f89df7a7a5 1249 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1250
cparata 0:e4f89df7a7a5 1251 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1252 }
cparata 0:e4f89df7a7a5 1253
cparata 0:e4f89df7a7a5 1254 /*******************************************************************************
cparata 0:e4f89df7a7a5 1255 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS3
cparata 0:e4f89df7a7a5 1256 * Description : Read DEC_DS3_FIFO
cparata 0:e4f89df7a7a5 1257 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t
cparata 0:e4f89df7a7a5 1258 * Output : Status of DEC_DS3_FIFO see LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t
cparata 0:e4f89df7a7a5 1259 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1260 *******************************************************************************/
cparata 0:e4f89df7a7a5 1261 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS3(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t *value)
cparata 0:e4f89df7a7a5 1262 {
cparata 0:e4f89df7a7a5 1263 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1264 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1265
cparata 0:e4f89df7a7a5 1266 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_MASK; //mask
cparata 0:e4f89df7a7a5 1267
cparata 0:e4f89df7a7a5 1268 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1269 }
cparata 0:e4f89df7a7a5 1270
cparata 0:e4f89df7a7a5 1271 /*******************************************************************************
cparata 0:e4f89df7a7a5 1272 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS4
cparata 0:e4f89df7a7a5 1273 * Description : Write DEC_DS4_FIFO
cparata 0:e4f89df7a7a5 1274 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t
cparata 0:e4f89df7a7a5 1275 * Output : None
cparata 0:e4f89df7a7a5 1276 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1277 *******************************************************************************/
cparata 0:e4f89df7a7a5 1278 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS4(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t newValue)
cparata 0:e4f89df7a7a5 1279 {
cparata 0:e4f89df7a7a5 1280 u8_t value;
cparata 0:e4f89df7a7a5 1281
cparata 0:e4f89df7a7a5 1282 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:e4f89df7a7a5 1283 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1284
cparata 0:e4f89df7a7a5 1285 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_MASK;
cparata 0:e4f89df7a7a5 1286 value |= newValue;
cparata 0:e4f89df7a7a5 1287
cparata 0:e4f89df7a7a5 1288 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:e4f89df7a7a5 1289 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1290
cparata 0:e4f89df7a7a5 1291 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1292 }
cparata 0:e4f89df7a7a5 1293
cparata 0:e4f89df7a7a5 1294 /*******************************************************************************
cparata 0:e4f89df7a7a5 1295 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS4
cparata 0:e4f89df7a7a5 1296 * Description : Read DEC_DS4_FIFO
cparata 0:e4f89df7a7a5 1297 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t
cparata 0:e4f89df7a7a5 1298 * Output : Status of DEC_DS4_FIFO see LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t
cparata 0:e4f89df7a7a5 1299 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1300 *******************************************************************************/
cparata 0:e4f89df7a7a5 1301 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS4(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t *value)
cparata 0:e4f89df7a7a5 1302 {
cparata 0:e4f89df7a7a5 1303 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1304 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1305
cparata 0:e4f89df7a7a5 1306 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_MASK; //mask
cparata 0:e4f89df7a7a5 1307
cparata 0:e4f89df7a7a5 1308 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1309 }
cparata 0:e4f89df7a7a5 1310
cparata 0:e4f89df7a7a5 1311 /*******************************************************************************
cparata 0:e4f89df7a7a5 1312 * Function Name : LSM6DSL_ACC_GYRO_W_HI_DATA_ONLY
cparata 0:e4f89df7a7a5 1313 * Description : Write HI_DATA_ONLY
cparata 0:e4f89df7a7a5 1314 * Input : LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t
cparata 0:e4f89df7a7a5 1315 * Output : None
cparata 0:e4f89df7a7a5 1316 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1317 *******************************************************************************/
cparata 0:e4f89df7a7a5 1318 status_t LSM6DSL_ACC_GYRO_W_HI_DATA_ONLY(void *handle, LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t newValue)
cparata 0:e4f89df7a7a5 1319 {
cparata 0:e4f89df7a7a5 1320 u8_t value;
cparata 0:e4f89df7a7a5 1321
cparata 0:e4f89df7a7a5 1322 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:e4f89df7a7a5 1323 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1324
cparata 0:e4f89df7a7a5 1325 value &= ~LSM6DSL_ACC_GYRO_HI_DATA_ONLY_MASK;
cparata 0:e4f89df7a7a5 1326 value |= newValue;
cparata 0:e4f89df7a7a5 1327
cparata 0:e4f89df7a7a5 1328 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:e4f89df7a7a5 1329 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1330
cparata 0:e4f89df7a7a5 1331 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1332 }
cparata 0:e4f89df7a7a5 1333
cparata 0:e4f89df7a7a5 1334 /*******************************************************************************
cparata 0:e4f89df7a7a5 1335 * Function Name : LSM6DSL_ACC_GYRO_R_HI_DATA_ONLY
cparata 0:e4f89df7a7a5 1336 * Description : Read HI_DATA_ONLY
cparata 0:e4f89df7a7a5 1337 * Input : Pointer to LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t
cparata 0:e4f89df7a7a5 1338 * Output : Status of HI_DATA_ONLY see LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t
cparata 0:e4f89df7a7a5 1339 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1340 *******************************************************************************/
cparata 0:e4f89df7a7a5 1341 status_t LSM6DSL_ACC_GYRO_R_HI_DATA_ONLY(void *handle, LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t *value)
cparata 0:e4f89df7a7a5 1342 {
cparata 0:e4f89df7a7a5 1343 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1344 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1345
cparata 0:e4f89df7a7a5 1346 *value &= LSM6DSL_ACC_GYRO_HI_DATA_ONLY_MASK; //mask
cparata 0:e4f89df7a7a5 1347
cparata 0:e4f89df7a7a5 1348 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1349 }
cparata 0:e4f89df7a7a5 1350
cparata 0:e4f89df7a7a5 1351 /*******************************************************************************
cparata 0:e4f89df7a7a5 1352 * Function Name : LSM6DSL_ACC_GYRO_W_STOP_ON_FTH
cparata 0:e4f89df7a7a5 1353 * Description : Write STOP_ON_FTH
cparata 0:e4f89df7a7a5 1354 * Input : LSM6DSL_ACC_GYRO_STOP_ON_FTH_t
cparata 0:e4f89df7a7a5 1355 * Output : None
cparata 0:e4f89df7a7a5 1356 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1357 *******************************************************************************/
cparata 0:e4f89df7a7a5 1358 status_t LSM6DSL_ACC_GYRO_W_STOP_ON_FTH(void *handle, LSM6DSL_ACC_GYRO_STOP_ON_FTH_t newValue)
cparata 0:e4f89df7a7a5 1359 {
cparata 0:e4f89df7a7a5 1360 u8_t value;
cparata 0:e4f89df7a7a5 1361
cparata 0:e4f89df7a7a5 1362 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:e4f89df7a7a5 1363 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1364
cparata 0:e4f89df7a7a5 1365 value &= ~LSM6DSL_ACC_GYRO_STOP_ON_FTH_MASK;
cparata 0:e4f89df7a7a5 1366 value |= newValue;
cparata 0:e4f89df7a7a5 1367
cparata 0:e4f89df7a7a5 1368 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:e4f89df7a7a5 1369 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1370
cparata 0:e4f89df7a7a5 1371 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1372 }
cparata 0:e4f89df7a7a5 1373
cparata 0:e4f89df7a7a5 1374 /*******************************************************************************
cparata 0:e4f89df7a7a5 1375 * Function Name : LSM6DSL_ACC_GYRO_R_STOP_ON_FTH
cparata 0:e4f89df7a7a5 1376 * Description : Read STOP_ON_FTH
cparata 0:e4f89df7a7a5 1377 * Input : Pointer to LSM6DSL_ACC_GYRO_STOP_ON_FTH_t
cparata 0:e4f89df7a7a5 1378 * Output : Status of STOP_ON_FTH see LSM6DSL_ACC_GYRO_STOP_ON_FTH_t
cparata 0:e4f89df7a7a5 1379 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1380 *******************************************************************************/
cparata 0:e4f89df7a7a5 1381 status_t LSM6DSL_ACC_GYRO_R_STOP_ON_FTH(void *handle, LSM6DSL_ACC_GYRO_STOP_ON_FTH_t *value)
cparata 0:e4f89df7a7a5 1382 {
cparata 0:e4f89df7a7a5 1383 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1384 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1385
cparata 0:e4f89df7a7a5 1386 *value &= LSM6DSL_ACC_GYRO_STOP_ON_FTH_MASK; //mask
cparata 0:e4f89df7a7a5 1387
cparata 0:e4f89df7a7a5 1388 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1389 }
cparata 0:e4f89df7a7a5 1390
cparata 0:e4f89df7a7a5 1391 /*******************************************************************************
cparata 0:e4f89df7a7a5 1392 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_MODE
cparata 0:e4f89df7a7a5 1393 * Description : Write FIFO_MODE
cparata 0:e4f89df7a7a5 1394 * Input : LSM6DSL_ACC_GYRO_FIFO_MODE_t
cparata 0:e4f89df7a7a5 1395 * Output : None
cparata 0:e4f89df7a7a5 1396 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1397 *******************************************************************************/
cparata 0:e4f89df7a7a5 1398 status_t LSM6DSL_ACC_GYRO_W_FIFO_MODE(void *handle, LSM6DSL_ACC_GYRO_FIFO_MODE_t newValue)
cparata 0:e4f89df7a7a5 1399 {
cparata 0:e4f89df7a7a5 1400 u8_t value;
cparata 0:e4f89df7a7a5 1401
cparata 0:e4f89df7a7a5 1402 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1))
cparata 0:e4f89df7a7a5 1403 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1404
cparata 0:e4f89df7a7a5 1405 value &= ~LSM6DSL_ACC_GYRO_FIFO_MODE_MASK;
cparata 0:e4f89df7a7a5 1406 value |= newValue;
cparata 0:e4f89df7a7a5 1407
cparata 0:e4f89df7a7a5 1408 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1) )
cparata 0:e4f89df7a7a5 1409 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1410
cparata 0:e4f89df7a7a5 1411 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1412 }
cparata 0:e4f89df7a7a5 1413
cparata 0:e4f89df7a7a5 1414 /*******************************************************************************
cparata 0:e4f89df7a7a5 1415 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_MODE
cparata 0:e4f89df7a7a5 1416 * Description : Read FIFO_MODE
cparata 0:e4f89df7a7a5 1417 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_MODE_t
cparata 0:e4f89df7a7a5 1418 * Output : Status of FIFO_MODE see LSM6DSL_ACC_GYRO_FIFO_MODE_t
cparata 0:e4f89df7a7a5 1419 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1420 *******************************************************************************/
cparata 0:e4f89df7a7a5 1421 status_t LSM6DSL_ACC_GYRO_R_FIFO_MODE(void *handle, LSM6DSL_ACC_GYRO_FIFO_MODE_t *value)
cparata 0:e4f89df7a7a5 1422 {
cparata 0:e4f89df7a7a5 1423 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1424 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1425
cparata 0:e4f89df7a7a5 1426 *value &= LSM6DSL_ACC_GYRO_FIFO_MODE_MASK; //mask
cparata 0:e4f89df7a7a5 1427
cparata 0:e4f89df7a7a5 1428 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1429 }
cparata 0:e4f89df7a7a5 1430
cparata 0:e4f89df7a7a5 1431 /*******************************************************************************
cparata 0:e4f89df7a7a5 1432 * Function Name : LSM6DSL_ACC_GYRO_W_ODR_FIFO
cparata 0:e4f89df7a7a5 1433 * Description : Write ODR_FIFO
cparata 0:e4f89df7a7a5 1434 * Input : LSM6DSL_ACC_GYRO_ODR_FIFO_t
cparata 0:e4f89df7a7a5 1435 * Output : None
cparata 0:e4f89df7a7a5 1436 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1437 *******************************************************************************/
cparata 0:e4f89df7a7a5 1438 status_t LSM6DSL_ACC_GYRO_W_ODR_FIFO(void *handle, LSM6DSL_ACC_GYRO_ODR_FIFO_t newValue)
cparata 0:e4f89df7a7a5 1439 {
cparata 0:e4f89df7a7a5 1440 u8_t value;
cparata 0:e4f89df7a7a5 1441
cparata 0:e4f89df7a7a5 1442 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1))
cparata 0:e4f89df7a7a5 1443 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1444
cparata 0:e4f89df7a7a5 1445 value &= ~LSM6DSL_ACC_GYRO_ODR_FIFO_MASK;
cparata 0:e4f89df7a7a5 1446 value |= newValue;
cparata 0:e4f89df7a7a5 1447
cparata 0:e4f89df7a7a5 1448 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1) )
cparata 0:e4f89df7a7a5 1449 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1450
cparata 0:e4f89df7a7a5 1451 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1452 }
cparata 0:e4f89df7a7a5 1453
cparata 0:e4f89df7a7a5 1454 /*******************************************************************************
cparata 0:e4f89df7a7a5 1455 * Function Name : LSM6DSL_ACC_GYRO_R_ODR_FIFO
cparata 0:e4f89df7a7a5 1456 * Description : Read ODR_FIFO
cparata 0:e4f89df7a7a5 1457 * Input : Pointer to LSM6DSL_ACC_GYRO_ODR_FIFO_t
cparata 0:e4f89df7a7a5 1458 * Output : Status of ODR_FIFO see LSM6DSL_ACC_GYRO_ODR_FIFO_t
cparata 0:e4f89df7a7a5 1459 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1460 *******************************************************************************/
cparata 0:e4f89df7a7a5 1461 status_t LSM6DSL_ACC_GYRO_R_ODR_FIFO(void *handle, LSM6DSL_ACC_GYRO_ODR_FIFO_t *value)
cparata 0:e4f89df7a7a5 1462 {
cparata 0:e4f89df7a7a5 1463 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1464 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1465
cparata 0:e4f89df7a7a5 1466 *value &= LSM6DSL_ACC_GYRO_ODR_FIFO_MASK; //mask
cparata 0:e4f89df7a7a5 1467
cparata 0:e4f89df7a7a5 1468 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1469 }
cparata 0:e4f89df7a7a5 1470
cparata 0:e4f89df7a7a5 1471 /*******************************************************************************
cparata 0:e4f89df7a7a5 1472 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_PULSE
cparata 0:e4f89df7a7a5 1473 * Description : Write DRDY_PULSE
cparata 0:e4f89df7a7a5 1474 * Input : LSM6DSL_ACC_GYRO_DRDY_PULSE_t
cparata 0:e4f89df7a7a5 1475 * Output : None
cparata 0:e4f89df7a7a5 1476 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1477 *******************************************************************************/
cparata 0:e4f89df7a7a5 1478 status_t LSM6DSL_ACC_GYRO_W_DRDY_PULSE(void *handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_t newValue)
cparata 0:e4f89df7a7a5 1479 {
cparata 0:e4f89df7a7a5 1480 u8_t value;
cparata 0:e4f89df7a7a5 1481
cparata 0:e4f89df7a7a5 1482 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G, &value, 1))
cparata 0:e4f89df7a7a5 1483 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1484
cparata 0:e4f89df7a7a5 1485 value &= ~LSM6DSL_ACC_GYRO_DRDY_PULSE_MASK;
cparata 0:e4f89df7a7a5 1486 value |= newValue;
cparata 0:e4f89df7a7a5 1487
cparata 0:e4f89df7a7a5 1488 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G, &value, 1) )
cparata 0:e4f89df7a7a5 1489 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1490
cparata 0:e4f89df7a7a5 1491 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1492 }
cparata 0:e4f89df7a7a5 1493
cparata 0:e4f89df7a7a5 1494 /*******************************************************************************
cparata 0:e4f89df7a7a5 1495 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_PULSE
cparata 0:e4f89df7a7a5 1496 * Description : Read DRDY_PULSE
cparata 0:e4f89df7a7a5 1497 * Input : Pointer to LSM6DSL_ACC_GYRO_DRDY_PULSE_t
cparata 0:e4f89df7a7a5 1498 * Output : Status of DRDY_PULSE see LSM6DSL_ACC_GYRO_DRDY_PULSE_t
cparata 0:e4f89df7a7a5 1499 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1500 *******************************************************************************/
cparata 0:e4f89df7a7a5 1501 status_t LSM6DSL_ACC_GYRO_R_DRDY_PULSE(void *handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_t *value)
cparata 0:e4f89df7a7a5 1502 {
cparata 0:e4f89df7a7a5 1503 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1504 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1505
cparata 0:e4f89df7a7a5 1506 *value &= LSM6DSL_ACC_GYRO_DRDY_PULSE_MASK; //mask
cparata 0:e4f89df7a7a5 1507
cparata 0:e4f89df7a7a5 1508 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1509 }
cparata 0:e4f89df7a7a5 1510
cparata 0:e4f89df7a7a5 1511 /*******************************************************************************
cparata 0:e4f89df7a7a5 1512 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT1
cparata 0:e4f89df7a7a5 1513 * Description : Write INT1_DRDY_XL
cparata 0:e4f89df7a7a5 1514 * Input : LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t
cparata 0:e4f89df7a7a5 1515 * Output : None
cparata 0:e4f89df7a7a5 1516 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1517 *******************************************************************************/
cparata 0:e4f89df7a7a5 1518 status_t LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t newValue)
cparata 0:e4f89df7a7a5 1519 {
cparata 0:e4f89df7a7a5 1520 u8_t value;
cparata 0:e4f89df7a7a5 1521
cparata 0:e4f89df7a7a5 1522 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1523 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1524
cparata 0:e4f89df7a7a5 1525 value &= ~LSM6DSL_ACC_GYRO_INT1_DRDY_XL_MASK;
cparata 0:e4f89df7a7a5 1526 value |= newValue;
cparata 0:e4f89df7a7a5 1527
cparata 0:e4f89df7a7a5 1528 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1529 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1530
cparata 0:e4f89df7a7a5 1531 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1532 }
cparata 0:e4f89df7a7a5 1533
cparata 0:e4f89df7a7a5 1534 /*******************************************************************************
cparata 0:e4f89df7a7a5 1535 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT1
cparata 0:e4f89df7a7a5 1536 * Description : Read INT1_DRDY_XL
cparata 0:e4f89df7a7a5 1537 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t
cparata 0:e4f89df7a7a5 1538 * Output : Status of INT1_DRDY_XL see LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t
cparata 0:e4f89df7a7a5 1539 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1540 *******************************************************************************/
cparata 0:e4f89df7a7a5 1541 status_t LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t *value)
cparata 0:e4f89df7a7a5 1542 {
cparata 0:e4f89df7a7a5 1543 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1544 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1545
cparata 0:e4f89df7a7a5 1546 *value &= LSM6DSL_ACC_GYRO_INT1_DRDY_XL_MASK; //mask
cparata 0:e4f89df7a7a5 1547
cparata 0:e4f89df7a7a5 1548 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1549 }
cparata 0:e4f89df7a7a5 1550
cparata 0:e4f89df7a7a5 1551 /*******************************************************************************
cparata 0:e4f89df7a7a5 1552 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT1
cparata 0:e4f89df7a7a5 1553 * Description : Write INT1_DRDY_G
cparata 0:e4f89df7a7a5 1554 * Input : LSM6DSL_ACC_GYRO_INT1_DRDY_G_t
cparata 0:e4f89df7a7a5 1555 * Output : None
cparata 0:e4f89df7a7a5 1556 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1557 *******************************************************************************/
cparata 0:e4f89df7a7a5 1558 status_t LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_G_t newValue)
cparata 0:e4f89df7a7a5 1559 {
cparata 0:e4f89df7a7a5 1560 u8_t value;
cparata 0:e4f89df7a7a5 1561
cparata 0:e4f89df7a7a5 1562 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1563 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1564
cparata 0:e4f89df7a7a5 1565 value &= ~LSM6DSL_ACC_GYRO_INT1_DRDY_G_MASK;
cparata 0:e4f89df7a7a5 1566 value |= newValue;
cparata 0:e4f89df7a7a5 1567
cparata 0:e4f89df7a7a5 1568 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1569 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1570
cparata 0:e4f89df7a7a5 1571 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1572 }
cparata 0:e4f89df7a7a5 1573
cparata 0:e4f89df7a7a5 1574 /*******************************************************************************
cparata 0:e4f89df7a7a5 1575 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT1
cparata 0:e4f89df7a7a5 1576 * Description : Read INT1_DRDY_G
cparata 0:e4f89df7a7a5 1577 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_DRDY_G_t
cparata 0:e4f89df7a7a5 1578 * Output : Status of INT1_DRDY_G see LSM6DSL_ACC_GYRO_INT1_DRDY_G_t
cparata 0:e4f89df7a7a5 1579 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1580 *******************************************************************************/
cparata 0:e4f89df7a7a5 1581 status_t LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_G_t *value)
cparata 0:e4f89df7a7a5 1582 {
cparata 0:e4f89df7a7a5 1583 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1584 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1585
cparata 0:e4f89df7a7a5 1586 *value &= LSM6DSL_ACC_GYRO_INT1_DRDY_G_MASK; //mask
cparata 0:e4f89df7a7a5 1587
cparata 0:e4f89df7a7a5 1588 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1589 }
cparata 0:e4f89df7a7a5 1590
cparata 0:e4f89df7a7a5 1591 /*******************************************************************************
cparata 0:e4f89df7a7a5 1592 * Function Name : LSM6DSL_ACC_GYRO_W_BOOT_on_INT1
cparata 0:e4f89df7a7a5 1593 * Description : Write INT1_BOOT
cparata 0:e4f89df7a7a5 1594 * Input : LSM6DSL_ACC_GYRO_INT1_BOOT_t
cparata 0:e4f89df7a7a5 1595 * Output : None
cparata 0:e4f89df7a7a5 1596 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1597 *******************************************************************************/
cparata 0:e4f89df7a7a5 1598 status_t LSM6DSL_ACC_GYRO_W_BOOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_BOOT_t newValue)
cparata 0:e4f89df7a7a5 1599 {
cparata 0:e4f89df7a7a5 1600 u8_t value;
cparata 0:e4f89df7a7a5 1601
cparata 0:e4f89df7a7a5 1602 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1603 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1604
cparata 0:e4f89df7a7a5 1605 value &= ~LSM6DSL_ACC_GYRO_INT1_BOOT_MASK;
cparata 0:e4f89df7a7a5 1606 value |= newValue;
cparata 0:e4f89df7a7a5 1607
cparata 0:e4f89df7a7a5 1608 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1609 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1610
cparata 0:e4f89df7a7a5 1611 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1612 }
cparata 0:e4f89df7a7a5 1613
cparata 0:e4f89df7a7a5 1614 /*******************************************************************************
cparata 0:e4f89df7a7a5 1615 * Function Name : LSM6DSL_ACC_GYRO_R_BOOT_on_INT1
cparata 0:e4f89df7a7a5 1616 * Description : Read INT1_BOOT
cparata 0:e4f89df7a7a5 1617 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_BOOT_t
cparata 0:e4f89df7a7a5 1618 * Output : Status of INT1_BOOT see LSM6DSL_ACC_GYRO_INT1_BOOT_t
cparata 0:e4f89df7a7a5 1619 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1620 *******************************************************************************/
cparata 0:e4f89df7a7a5 1621 status_t LSM6DSL_ACC_GYRO_R_BOOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_BOOT_t *value)
cparata 0:e4f89df7a7a5 1622 {
cparata 0:e4f89df7a7a5 1623 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1624 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1625
cparata 0:e4f89df7a7a5 1626 *value &= LSM6DSL_ACC_GYRO_INT1_BOOT_MASK; //mask
cparata 0:e4f89df7a7a5 1627
cparata 0:e4f89df7a7a5 1628 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1629 }
cparata 0:e4f89df7a7a5 1630
cparata 0:e4f89df7a7a5 1631 /*******************************************************************************
cparata 0:e4f89df7a7a5 1632 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT1
cparata 0:e4f89df7a7a5 1633 * Description : Write INT1_FTH
cparata 0:e4f89df7a7a5 1634 * Input : LSM6DSL_ACC_GYRO_INT1_FTH_t
cparata 0:e4f89df7a7a5 1635 * Output : None
cparata 0:e4f89df7a7a5 1636 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1637 *******************************************************************************/
cparata 0:e4f89df7a7a5 1638 status_t LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FTH_t newValue)
cparata 0:e4f89df7a7a5 1639 {
cparata 0:e4f89df7a7a5 1640 u8_t value;
cparata 0:e4f89df7a7a5 1641
cparata 0:e4f89df7a7a5 1642 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1643 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1644
cparata 0:e4f89df7a7a5 1645 value &= ~LSM6DSL_ACC_GYRO_INT1_FTH_MASK;
cparata 0:e4f89df7a7a5 1646 value |= newValue;
cparata 0:e4f89df7a7a5 1647
cparata 0:e4f89df7a7a5 1648 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1649 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1650
cparata 0:e4f89df7a7a5 1651 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1652 }
cparata 0:e4f89df7a7a5 1653
cparata 0:e4f89df7a7a5 1654 /*******************************************************************************
cparata 0:e4f89df7a7a5 1655 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT1
cparata 0:e4f89df7a7a5 1656 * Description : Read INT1_FTH
cparata 0:e4f89df7a7a5 1657 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_FTH_t
cparata 0:e4f89df7a7a5 1658 * Output : Status of INT1_FTH see LSM6DSL_ACC_GYRO_INT1_FTH_t
cparata 0:e4f89df7a7a5 1659 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1660 *******************************************************************************/
cparata 0:e4f89df7a7a5 1661 status_t LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FTH_t *value)
cparata 0:e4f89df7a7a5 1662 {
cparata 0:e4f89df7a7a5 1663 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1664 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1665
cparata 0:e4f89df7a7a5 1666 *value &= LSM6DSL_ACC_GYRO_INT1_FTH_MASK; //mask
cparata 0:e4f89df7a7a5 1667
cparata 0:e4f89df7a7a5 1668 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1669 }
cparata 0:e4f89df7a7a5 1670
cparata 0:e4f89df7a7a5 1671 /*******************************************************************************
cparata 0:e4f89df7a7a5 1672 * Function Name : LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT1
cparata 0:e4f89df7a7a5 1673 * Description : Write INT1_OVR
cparata 0:e4f89df7a7a5 1674 * Input : LSM6DSL_ACC_GYRO_INT1_OVR_t
cparata 0:e4f89df7a7a5 1675 * Output : None
cparata 0:e4f89df7a7a5 1676 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1677 *******************************************************************************/
cparata 0:e4f89df7a7a5 1678 status_t LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_OVR_t newValue)
cparata 0:e4f89df7a7a5 1679 {
cparata 0:e4f89df7a7a5 1680 u8_t value;
cparata 0:e4f89df7a7a5 1681
cparata 0:e4f89df7a7a5 1682 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1683 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1684
cparata 0:e4f89df7a7a5 1685 value &= ~LSM6DSL_ACC_GYRO_INT1_OVR_MASK;
cparata 0:e4f89df7a7a5 1686 value |= newValue;
cparata 0:e4f89df7a7a5 1687
cparata 0:e4f89df7a7a5 1688 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1689 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1690
cparata 0:e4f89df7a7a5 1691 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1692 }
cparata 0:e4f89df7a7a5 1693
cparata 0:e4f89df7a7a5 1694 /*******************************************************************************
cparata 0:e4f89df7a7a5 1695 * Function Name : LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT1
cparata 0:e4f89df7a7a5 1696 * Description : Read INT1_OVR
cparata 0:e4f89df7a7a5 1697 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_OVR_t
cparata 0:e4f89df7a7a5 1698 * Output : Status of INT1_OVR see LSM6DSL_ACC_GYRO_INT1_OVR_t
cparata 0:e4f89df7a7a5 1699 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1700 *******************************************************************************/
cparata 0:e4f89df7a7a5 1701 status_t LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_OVR_t *value)
cparata 0:e4f89df7a7a5 1702 {
cparata 0:e4f89df7a7a5 1703 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1704 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1705
cparata 0:e4f89df7a7a5 1706 *value &= LSM6DSL_ACC_GYRO_INT1_OVR_MASK; //mask
cparata 0:e4f89df7a7a5 1707
cparata 0:e4f89df7a7a5 1708 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1709 }
cparata 0:e4f89df7a7a5 1710
cparata 0:e4f89df7a7a5 1711 /*******************************************************************************
cparata 0:e4f89df7a7a5 1712 * Function Name : LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT1
cparata 0:e4f89df7a7a5 1713 * Description : Write INT1_FULL_FLAG
cparata 0:e4f89df7a7a5 1714 * Input : LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t
cparata 0:e4f89df7a7a5 1715 * Output : None
cparata 0:e4f89df7a7a5 1716 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1717 *******************************************************************************/
cparata 0:e4f89df7a7a5 1718 status_t LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t newValue)
cparata 0:e4f89df7a7a5 1719 {
cparata 0:e4f89df7a7a5 1720 u8_t value;
cparata 0:e4f89df7a7a5 1721
cparata 0:e4f89df7a7a5 1722 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1723 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1724
cparata 0:e4f89df7a7a5 1725 value &= ~LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_MASK;
cparata 0:e4f89df7a7a5 1726 value |= newValue;
cparata 0:e4f89df7a7a5 1727
cparata 0:e4f89df7a7a5 1728 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1729 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1730
cparata 0:e4f89df7a7a5 1731 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1732 }
cparata 0:e4f89df7a7a5 1733
cparata 0:e4f89df7a7a5 1734 /*******************************************************************************
cparata 0:e4f89df7a7a5 1735 * Function Name : LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT1
cparata 0:e4f89df7a7a5 1736 * Description : Read INT1_FULL_FLAG
cparata 0:e4f89df7a7a5 1737 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t
cparata 0:e4f89df7a7a5 1738 * Output : Status of INT1_FULL_FLAG see LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t
cparata 0:e4f89df7a7a5 1739 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1740 *******************************************************************************/
cparata 0:e4f89df7a7a5 1741 status_t LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t *value)
cparata 0:e4f89df7a7a5 1742 {
cparata 0:e4f89df7a7a5 1743 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1744 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1745
cparata 0:e4f89df7a7a5 1746 *value &= LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_MASK; //mask
cparata 0:e4f89df7a7a5 1747
cparata 0:e4f89df7a7a5 1748 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1749 }
cparata 0:e4f89df7a7a5 1750
cparata 0:e4f89df7a7a5 1751 /*******************************************************************************
cparata 0:e4f89df7a7a5 1752 * Function Name : LSM6DSL_ACC_GYRO_W_SIGN_MOT_on_INT1
cparata 0:e4f89df7a7a5 1753 * Description : Write INT1_SIGN_MOT
cparata 0:e4f89df7a7a5 1754 * Input : LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t
cparata 0:e4f89df7a7a5 1755 * Output : None
cparata 0:e4f89df7a7a5 1756 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1757 *******************************************************************************/
cparata 0:e4f89df7a7a5 1758 status_t LSM6DSL_ACC_GYRO_W_SIGN_MOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t newValue)
cparata 0:e4f89df7a7a5 1759 {
cparata 0:e4f89df7a7a5 1760 u8_t value;
cparata 0:e4f89df7a7a5 1761
cparata 0:e4f89df7a7a5 1762 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1763 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1764
cparata 0:e4f89df7a7a5 1765 value &= ~LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_MASK;
cparata 0:e4f89df7a7a5 1766 value |= newValue;
cparata 0:e4f89df7a7a5 1767
cparata 0:e4f89df7a7a5 1768 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1769 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1770
cparata 0:e4f89df7a7a5 1771 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1772 }
cparata 0:e4f89df7a7a5 1773
cparata 0:e4f89df7a7a5 1774 /*******************************************************************************
cparata 0:e4f89df7a7a5 1775 * Function Name : LSM6DSL_ACC_GYRO_R_SIGN_MOT_on_INT1
cparata 0:e4f89df7a7a5 1776 * Description : Read INT1_SIGN_MOT
cparata 0:e4f89df7a7a5 1777 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t
cparata 0:e4f89df7a7a5 1778 * Output : Status of INT1_SIGN_MOT see LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t
cparata 0:e4f89df7a7a5 1779 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1780 *******************************************************************************/
cparata 0:e4f89df7a7a5 1781 status_t LSM6DSL_ACC_GYRO_R_SIGN_MOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t *value)
cparata 0:e4f89df7a7a5 1782 {
cparata 0:e4f89df7a7a5 1783 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1784 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1785
cparata 0:e4f89df7a7a5 1786 *value &= LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_MASK; //mask
cparata 0:e4f89df7a7a5 1787
cparata 0:e4f89df7a7a5 1788 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1789 }
cparata 0:e4f89df7a7a5 1790
cparata 0:e4f89df7a7a5 1791 /*******************************************************************************
cparata 0:e4f89df7a7a5 1792 * Function Name : LSM6DSL_ACC_GYRO_W_STEP_DET_on_INT1
cparata 0:e4f89df7a7a5 1793 * Description : Write INT1_PEDO
cparata 0:e4f89df7a7a5 1794 * Input : LSM6DSL_ACC_GYRO_INT1_PEDO_t
cparata 0:e4f89df7a7a5 1795 * Output : None
cparata 0:e4f89df7a7a5 1796 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1797 *******************************************************************************/
cparata 0:e4f89df7a7a5 1798 status_t LSM6DSL_ACC_GYRO_W_STEP_DET_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_PEDO_t newValue)
cparata 0:e4f89df7a7a5 1799 {
cparata 0:e4f89df7a7a5 1800 u8_t value;
cparata 0:e4f89df7a7a5 1801
cparata 0:e4f89df7a7a5 1802 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1803 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1804
cparata 0:e4f89df7a7a5 1805 value &= ~LSM6DSL_ACC_GYRO_INT1_PEDO_MASK;
cparata 0:e4f89df7a7a5 1806 value |= newValue;
cparata 0:e4f89df7a7a5 1807
cparata 0:e4f89df7a7a5 1808 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1809 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1810
cparata 0:e4f89df7a7a5 1811 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1812 }
cparata 0:e4f89df7a7a5 1813
cparata 0:e4f89df7a7a5 1814 /*******************************************************************************
cparata 0:e4f89df7a7a5 1815 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_DET_on_INT1
cparata 0:e4f89df7a7a5 1816 * Description : Read INT1_PEDO
cparata 0:e4f89df7a7a5 1817 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_PEDO_t
cparata 0:e4f89df7a7a5 1818 * Output : Status of INT1_PEDO see LSM6DSL_ACC_GYRO_INT1_PEDO_t
cparata 0:e4f89df7a7a5 1819 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1820 *******************************************************************************/
cparata 0:e4f89df7a7a5 1821 status_t LSM6DSL_ACC_GYRO_R_STEP_DET_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_PEDO_t *value)
cparata 0:e4f89df7a7a5 1822 {
cparata 0:e4f89df7a7a5 1823 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1824 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1825
cparata 0:e4f89df7a7a5 1826 *value &= LSM6DSL_ACC_GYRO_INT1_PEDO_MASK; //mask
cparata 0:e4f89df7a7a5 1827
cparata 0:e4f89df7a7a5 1828 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1829 }
cparata 0:e4f89df7a7a5 1830
cparata 0:e4f89df7a7a5 1831 /*******************************************************************************
cparata 0:e4f89df7a7a5 1832 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT2
cparata 0:e4f89df7a7a5 1833 * Description : Write INT2_DRDY_XL
cparata 0:e4f89df7a7a5 1834 * Input : LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t
cparata 0:e4f89df7a7a5 1835 * Output : None
cparata 0:e4f89df7a7a5 1836 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1837 *******************************************************************************/
cparata 0:e4f89df7a7a5 1838 status_t LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t newValue)
cparata 0:e4f89df7a7a5 1839 {
cparata 0:e4f89df7a7a5 1840 u8_t value;
cparata 0:e4f89df7a7a5 1841
cparata 0:e4f89df7a7a5 1842 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1843 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1844
cparata 0:e4f89df7a7a5 1845 value &= ~LSM6DSL_ACC_GYRO_INT2_DRDY_XL_MASK;
cparata 0:e4f89df7a7a5 1846 value |= newValue;
cparata 0:e4f89df7a7a5 1847
cparata 0:e4f89df7a7a5 1848 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1849 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1850
cparata 0:e4f89df7a7a5 1851 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1852 }
cparata 0:e4f89df7a7a5 1853
cparata 0:e4f89df7a7a5 1854 /*******************************************************************************
cparata 0:e4f89df7a7a5 1855 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT2
cparata 0:e4f89df7a7a5 1856 * Description : Read INT2_DRDY_XL
cparata 0:e4f89df7a7a5 1857 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t
cparata 0:e4f89df7a7a5 1858 * Output : Status of INT2_DRDY_XL see LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t
cparata 0:e4f89df7a7a5 1859 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1860 *******************************************************************************/
cparata 0:e4f89df7a7a5 1861 status_t LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t *value)
cparata 0:e4f89df7a7a5 1862 {
cparata 0:e4f89df7a7a5 1863 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1864 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1865
cparata 0:e4f89df7a7a5 1866 *value &= LSM6DSL_ACC_GYRO_INT2_DRDY_XL_MASK; //mask
cparata 0:e4f89df7a7a5 1867
cparata 0:e4f89df7a7a5 1868 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1869 }
cparata 0:e4f89df7a7a5 1870
cparata 0:e4f89df7a7a5 1871 /*******************************************************************************
cparata 0:e4f89df7a7a5 1872 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT2
cparata 0:e4f89df7a7a5 1873 * Description : Write INT2_DRDY_G
cparata 0:e4f89df7a7a5 1874 * Input : LSM6DSL_ACC_GYRO_INT2_DRDY_G_t
cparata 0:e4f89df7a7a5 1875 * Output : None
cparata 0:e4f89df7a7a5 1876 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1877 *******************************************************************************/
cparata 0:e4f89df7a7a5 1878 status_t LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_G_t newValue)
cparata 0:e4f89df7a7a5 1879 {
cparata 0:e4f89df7a7a5 1880 u8_t value;
cparata 0:e4f89df7a7a5 1881
cparata 0:e4f89df7a7a5 1882 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1883 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1884
cparata 0:e4f89df7a7a5 1885 value &= ~LSM6DSL_ACC_GYRO_INT2_DRDY_G_MASK;
cparata 0:e4f89df7a7a5 1886 value |= newValue;
cparata 0:e4f89df7a7a5 1887
cparata 0:e4f89df7a7a5 1888 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1889 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1890
cparata 0:e4f89df7a7a5 1891 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1892 }
cparata 0:e4f89df7a7a5 1893
cparata 0:e4f89df7a7a5 1894 /*******************************************************************************
cparata 0:e4f89df7a7a5 1895 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT2
cparata 0:e4f89df7a7a5 1896 * Description : Read INT2_DRDY_G
cparata 0:e4f89df7a7a5 1897 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_DRDY_G_t
cparata 0:e4f89df7a7a5 1898 * Output : Status of INT2_DRDY_G see LSM6DSL_ACC_GYRO_INT2_DRDY_G_t
cparata 0:e4f89df7a7a5 1899 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1900 *******************************************************************************/
cparata 0:e4f89df7a7a5 1901 status_t LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_G_t *value)
cparata 0:e4f89df7a7a5 1902 {
cparata 0:e4f89df7a7a5 1903 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1904 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1905
cparata 0:e4f89df7a7a5 1906 *value &= LSM6DSL_ACC_GYRO_INT2_DRDY_G_MASK; //mask
cparata 0:e4f89df7a7a5 1907
cparata 0:e4f89df7a7a5 1908 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1909 }
cparata 0:e4f89df7a7a5 1910
cparata 0:e4f89df7a7a5 1911 /*******************************************************************************
cparata 0:e4f89df7a7a5 1912 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_TEMP_on_INT2
cparata 0:e4f89df7a7a5 1913 * Description : Write INT2_DRDY_TEMP
cparata 0:e4f89df7a7a5 1914 * Input : LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t
cparata 0:e4f89df7a7a5 1915 * Output : None
cparata 0:e4f89df7a7a5 1916 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1917 *******************************************************************************/
cparata 0:e4f89df7a7a5 1918 status_t LSM6DSL_ACC_GYRO_W_DRDY_TEMP_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t newValue)
cparata 0:e4f89df7a7a5 1919 {
cparata 0:e4f89df7a7a5 1920 u8_t value;
cparata 0:e4f89df7a7a5 1921
cparata 0:e4f89df7a7a5 1922 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1923 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1924
cparata 0:e4f89df7a7a5 1925 value &= ~LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_MASK;
cparata 0:e4f89df7a7a5 1926 value |= newValue;
cparata 0:e4f89df7a7a5 1927
cparata 0:e4f89df7a7a5 1928 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1929 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1930
cparata 0:e4f89df7a7a5 1931 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1932 }
cparata 0:e4f89df7a7a5 1933
cparata 0:e4f89df7a7a5 1934 /*******************************************************************************
cparata 0:e4f89df7a7a5 1935 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_TEMP_on_INT2
cparata 0:e4f89df7a7a5 1936 * Description : Read INT2_DRDY_TEMP
cparata 0:e4f89df7a7a5 1937 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t
cparata 0:e4f89df7a7a5 1938 * Output : Status of INT2_DRDY_TEMP see LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t
cparata 0:e4f89df7a7a5 1939 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1940 *******************************************************************************/
cparata 0:e4f89df7a7a5 1941 status_t LSM6DSL_ACC_GYRO_R_DRDY_TEMP_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t *value)
cparata 0:e4f89df7a7a5 1942 {
cparata 0:e4f89df7a7a5 1943 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1944 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1945
cparata 0:e4f89df7a7a5 1946 *value &= LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_MASK; //mask
cparata 0:e4f89df7a7a5 1947
cparata 0:e4f89df7a7a5 1948 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1949 }
cparata 0:e4f89df7a7a5 1950
cparata 0:e4f89df7a7a5 1951 /*******************************************************************************
cparata 0:e4f89df7a7a5 1952 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT2
cparata 0:e4f89df7a7a5 1953 * Description : Write INT2_FTH
cparata 0:e4f89df7a7a5 1954 * Input : LSM6DSL_ACC_GYRO_INT2_FTH_t
cparata 0:e4f89df7a7a5 1955 * Output : None
cparata 0:e4f89df7a7a5 1956 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1957 *******************************************************************************/
cparata 0:e4f89df7a7a5 1958 status_t LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FTH_t newValue)
cparata 0:e4f89df7a7a5 1959 {
cparata 0:e4f89df7a7a5 1960 u8_t value;
cparata 0:e4f89df7a7a5 1961
cparata 0:e4f89df7a7a5 1962 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 1963 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1964
cparata 0:e4f89df7a7a5 1965 value &= ~LSM6DSL_ACC_GYRO_INT2_FTH_MASK;
cparata 0:e4f89df7a7a5 1966 value |= newValue;
cparata 0:e4f89df7a7a5 1967
cparata 0:e4f89df7a7a5 1968 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 1969 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1970
cparata 0:e4f89df7a7a5 1971 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1972 }
cparata 0:e4f89df7a7a5 1973
cparata 0:e4f89df7a7a5 1974 /*******************************************************************************
cparata 0:e4f89df7a7a5 1975 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT2
cparata 0:e4f89df7a7a5 1976 * Description : Read INT2_FTH
cparata 0:e4f89df7a7a5 1977 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_FTH_t
cparata 0:e4f89df7a7a5 1978 * Output : Status of INT2_FTH see LSM6DSL_ACC_GYRO_INT2_FTH_t
cparata 0:e4f89df7a7a5 1979 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1980 *******************************************************************************/
cparata 0:e4f89df7a7a5 1981 status_t LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FTH_t *value)
cparata 0:e4f89df7a7a5 1982 {
cparata 0:e4f89df7a7a5 1983 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 1984 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 1985
cparata 0:e4f89df7a7a5 1986 *value &= LSM6DSL_ACC_GYRO_INT2_FTH_MASK; //mask
cparata 0:e4f89df7a7a5 1987
cparata 0:e4f89df7a7a5 1988 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 1989 }
cparata 0:e4f89df7a7a5 1990
cparata 0:e4f89df7a7a5 1991 /*******************************************************************************
cparata 0:e4f89df7a7a5 1992 * Function Name : LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT2
cparata 0:e4f89df7a7a5 1993 * Description : Write INT2_OVR
cparata 0:e4f89df7a7a5 1994 * Input : LSM6DSL_ACC_GYRO_INT2_OVR_t
cparata 0:e4f89df7a7a5 1995 * Output : None
cparata 0:e4f89df7a7a5 1996 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 1997 *******************************************************************************/
cparata 0:e4f89df7a7a5 1998 status_t LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_OVR_t newValue)
cparata 0:e4f89df7a7a5 1999 {
cparata 0:e4f89df7a7a5 2000 u8_t value;
cparata 0:e4f89df7a7a5 2001
cparata 0:e4f89df7a7a5 2002 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 2003 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2004
cparata 0:e4f89df7a7a5 2005 value &= ~LSM6DSL_ACC_GYRO_INT2_OVR_MASK;
cparata 0:e4f89df7a7a5 2006 value |= newValue;
cparata 0:e4f89df7a7a5 2007
cparata 0:e4f89df7a7a5 2008 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 2009 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2010
cparata 0:e4f89df7a7a5 2011 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2012 }
cparata 0:e4f89df7a7a5 2013
cparata 0:e4f89df7a7a5 2014 /*******************************************************************************
cparata 0:e4f89df7a7a5 2015 * Function Name : LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT2
cparata 0:e4f89df7a7a5 2016 * Description : Read INT2_OVR
cparata 0:e4f89df7a7a5 2017 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_OVR_t
cparata 0:e4f89df7a7a5 2018 * Output : Status of INT2_OVR see LSM6DSL_ACC_GYRO_INT2_OVR_t
cparata 0:e4f89df7a7a5 2019 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2020 *******************************************************************************/
cparata 0:e4f89df7a7a5 2021 status_t LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_OVR_t *value)
cparata 0:e4f89df7a7a5 2022 {
cparata 0:e4f89df7a7a5 2023 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2024 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2025
cparata 0:e4f89df7a7a5 2026 *value &= LSM6DSL_ACC_GYRO_INT2_OVR_MASK; //mask
cparata 0:e4f89df7a7a5 2027
cparata 0:e4f89df7a7a5 2028 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2029 }
cparata 0:e4f89df7a7a5 2030
cparata 0:e4f89df7a7a5 2031 /*******************************************************************************
cparata 0:e4f89df7a7a5 2032 * Function Name : LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT2
cparata 0:e4f89df7a7a5 2033 * Description : Write INT2_FULL_FLAG
cparata 0:e4f89df7a7a5 2034 * Input : LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t
cparata 0:e4f89df7a7a5 2035 * Output : None
cparata 0:e4f89df7a7a5 2036 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2037 *******************************************************************************/
cparata 0:e4f89df7a7a5 2038 status_t LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t newValue)
cparata 0:e4f89df7a7a5 2039 {
cparata 0:e4f89df7a7a5 2040 u8_t value;
cparata 0:e4f89df7a7a5 2041
cparata 0:e4f89df7a7a5 2042 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 2043 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2044
cparata 0:e4f89df7a7a5 2045 value &= ~LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_MASK;
cparata 0:e4f89df7a7a5 2046 value |= newValue;
cparata 0:e4f89df7a7a5 2047
cparata 0:e4f89df7a7a5 2048 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 2049 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2050
cparata 0:e4f89df7a7a5 2051 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2052 }
cparata 0:e4f89df7a7a5 2053
cparata 0:e4f89df7a7a5 2054 /*******************************************************************************
cparata 0:e4f89df7a7a5 2055 * Function Name : LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT2
cparata 0:e4f89df7a7a5 2056 * Description : Read INT2_FULL_FLAG
cparata 0:e4f89df7a7a5 2057 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t
cparata 0:e4f89df7a7a5 2058 * Output : Status of INT2_FULL_FLAG see LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t
cparata 0:e4f89df7a7a5 2059 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2060 *******************************************************************************/
cparata 0:e4f89df7a7a5 2061 status_t LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t *value)
cparata 0:e4f89df7a7a5 2062 {
cparata 0:e4f89df7a7a5 2063 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2064 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2065
cparata 0:e4f89df7a7a5 2066 *value &= LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_MASK; //mask
cparata 0:e4f89df7a7a5 2067
cparata 0:e4f89df7a7a5 2068 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2069 }
cparata 0:e4f89df7a7a5 2070
cparata 0:e4f89df7a7a5 2071 /*******************************************************************************
cparata 0:e4f89df7a7a5 2072 * Function Name : LSM6DSL_ACC_GYRO_W_STEP_COUNT_OV_on_INT2
cparata 0:e4f89df7a7a5 2073 * Description : Write INT2_STEP_COUNT_OV
cparata 0:e4f89df7a7a5 2074 * Input : LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t
cparata 0:e4f89df7a7a5 2075 * Output : None
cparata 0:e4f89df7a7a5 2076 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2077 *******************************************************************************/
cparata 0:e4f89df7a7a5 2078 status_t LSM6DSL_ACC_GYRO_W_STEP_COUNT_OV_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t newValue)
cparata 0:e4f89df7a7a5 2079 {
cparata 0:e4f89df7a7a5 2080 u8_t value;
cparata 0:e4f89df7a7a5 2081
cparata 0:e4f89df7a7a5 2082 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 2083 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2084
cparata 0:e4f89df7a7a5 2085 value &= ~LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_MASK;
cparata 0:e4f89df7a7a5 2086 value |= newValue;
cparata 0:e4f89df7a7a5 2087
cparata 0:e4f89df7a7a5 2088 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 2089 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2090
cparata 0:e4f89df7a7a5 2091 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2092 }
cparata 0:e4f89df7a7a5 2093
cparata 0:e4f89df7a7a5 2094 /*******************************************************************************
cparata 0:e4f89df7a7a5 2095 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_COUNT_OV_on_INT2
cparata 0:e4f89df7a7a5 2096 * Description : Read INT2_STEP_COUNT_OV
cparata 0:e4f89df7a7a5 2097 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t
cparata 0:e4f89df7a7a5 2098 * Output : Status of INT2_STEP_COUNT_OV see LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t
cparata 0:e4f89df7a7a5 2099 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2100 *******************************************************************************/
cparata 0:e4f89df7a7a5 2101 status_t LSM6DSL_ACC_GYRO_R_STEP_COUNT_OV_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t *value)
cparata 0:e4f89df7a7a5 2102 {
cparata 0:e4f89df7a7a5 2103 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2104 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2105
cparata 0:e4f89df7a7a5 2106 *value &= LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_MASK; //mask
cparata 0:e4f89df7a7a5 2107
cparata 0:e4f89df7a7a5 2108 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2109 }
cparata 0:e4f89df7a7a5 2110
cparata 0:e4f89df7a7a5 2111 /*******************************************************************************
cparata 0:e4f89df7a7a5 2112 * Function Name : LSM6DSL_ACC_GYRO_W_STEP_DELTA_on_INT2
cparata 0:e4f89df7a7a5 2113 * Description : Write INT2_STEP_DELTA
cparata 0:e4f89df7a7a5 2114 * Input : LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t
cparata 0:e4f89df7a7a5 2115 * Output : None
cparata 0:e4f89df7a7a5 2116 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2117 *******************************************************************************/
cparata 0:e4f89df7a7a5 2118 status_t LSM6DSL_ACC_GYRO_W_STEP_DELTA_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t newValue)
cparata 0:e4f89df7a7a5 2119 {
cparata 0:e4f89df7a7a5 2120 u8_t value;
cparata 0:e4f89df7a7a5 2121
cparata 0:e4f89df7a7a5 2122 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:e4f89df7a7a5 2123 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2124
cparata 0:e4f89df7a7a5 2125 value &= ~LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_MASK;
cparata 0:e4f89df7a7a5 2126 value |= newValue;
cparata 0:e4f89df7a7a5 2127
cparata 0:e4f89df7a7a5 2128 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:e4f89df7a7a5 2129 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2130
cparata 0:e4f89df7a7a5 2131 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2132 }
cparata 0:e4f89df7a7a5 2133
cparata 0:e4f89df7a7a5 2134 /*******************************************************************************
cparata 0:e4f89df7a7a5 2135 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_DELTA_on_INT2
cparata 0:e4f89df7a7a5 2136 * Description : Read INT2_STEP_DELTA
cparata 0:e4f89df7a7a5 2137 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t
cparata 0:e4f89df7a7a5 2138 * Output : Status of INT2_STEP_DELTA see LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t
cparata 0:e4f89df7a7a5 2139 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2140 *******************************************************************************/
cparata 0:e4f89df7a7a5 2141 status_t LSM6DSL_ACC_GYRO_R_STEP_DELTA_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t *value)
cparata 0:e4f89df7a7a5 2142 {
cparata 0:e4f89df7a7a5 2143 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2144 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2145
cparata 0:e4f89df7a7a5 2146 *value &= LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_MASK; //mask
cparata 0:e4f89df7a7a5 2147
cparata 0:e4f89df7a7a5 2148 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2149 }
cparata 0:e4f89df7a7a5 2150
cparata 0:e4f89df7a7a5 2151 /*******************************************************************************
cparata 0:e4f89df7a7a5 2152 * Function Name : LSM6DSL_ACC_GYRO_W_SW_RESET
cparata 0:e4f89df7a7a5 2153 * Description : Write SW_RESET
cparata 0:e4f89df7a7a5 2154 * Input : LSM6DSL_ACC_GYRO_SW_RESET_t
cparata 0:e4f89df7a7a5 2155 * Output : None
cparata 0:e4f89df7a7a5 2156 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2157 *******************************************************************************/
cparata 0:e4f89df7a7a5 2158 status_t LSM6DSL_ACC_GYRO_W_SW_RESET(void *handle, LSM6DSL_ACC_GYRO_SW_RESET_t newValue)
cparata 0:e4f89df7a7a5 2159 {
cparata 0:e4f89df7a7a5 2160 u8_t value;
cparata 0:e4f89df7a7a5 2161
cparata 0:e4f89df7a7a5 2162 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 2163 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2164
cparata 0:e4f89df7a7a5 2165 value &= ~LSM6DSL_ACC_GYRO_SW_RESET_MASK;
cparata 0:e4f89df7a7a5 2166 value |= newValue;
cparata 0:e4f89df7a7a5 2167
cparata 0:e4f89df7a7a5 2168 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 2169 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2170
cparata 0:e4f89df7a7a5 2171 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2172 }
cparata 0:e4f89df7a7a5 2173
cparata 0:e4f89df7a7a5 2174 /*******************************************************************************
cparata 0:e4f89df7a7a5 2175 * Function Name : LSM6DSL_ACC_GYRO_R_SW_RESET
cparata 0:e4f89df7a7a5 2176 * Description : Read SW_RESET
cparata 0:e4f89df7a7a5 2177 * Input : Pointer to LSM6DSL_ACC_GYRO_SW_RESET_t
cparata 0:e4f89df7a7a5 2178 * Output : Status of SW_RESET see LSM6DSL_ACC_GYRO_SW_RESET_t
cparata 0:e4f89df7a7a5 2179 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2180 *******************************************************************************/
cparata 0:e4f89df7a7a5 2181 status_t LSM6DSL_ACC_GYRO_R_SW_RESET(void *handle, LSM6DSL_ACC_GYRO_SW_RESET_t *value)
cparata 0:e4f89df7a7a5 2182 {
cparata 0:e4f89df7a7a5 2183 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2184 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2185
cparata 0:e4f89df7a7a5 2186 *value &= LSM6DSL_ACC_GYRO_SW_RESET_MASK; //mask
cparata 0:e4f89df7a7a5 2187
cparata 0:e4f89df7a7a5 2188 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2189 }
cparata 0:e4f89df7a7a5 2190
cparata 0:e4f89df7a7a5 2191 /*******************************************************************************
cparata 0:e4f89df7a7a5 2192 * Function Name : LSM6DSL_ACC_GYRO_W_IF_Addr_Incr
cparata 0:e4f89df7a7a5 2193 * Description : Write IF_INC
cparata 0:e4f89df7a7a5 2194 * Input : LSM6DSL_ACC_GYRO_IF_INC_t
cparata 0:e4f89df7a7a5 2195 * Output : None
cparata 0:e4f89df7a7a5 2196 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2197 *******************************************************************************/
cparata 0:e4f89df7a7a5 2198 status_t LSM6DSL_ACC_GYRO_W_IF_Addr_Incr(void *handle, LSM6DSL_ACC_GYRO_IF_INC_t newValue)
cparata 0:e4f89df7a7a5 2199 {
cparata 0:e4f89df7a7a5 2200 u8_t value;
cparata 0:e4f89df7a7a5 2201
cparata 0:e4f89df7a7a5 2202 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 2203 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2204
cparata 0:e4f89df7a7a5 2205 value &= ~LSM6DSL_ACC_GYRO_IF_INC_MASK;
cparata 0:e4f89df7a7a5 2206 value |= newValue;
cparata 0:e4f89df7a7a5 2207
cparata 0:e4f89df7a7a5 2208 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 2209 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2210
cparata 0:e4f89df7a7a5 2211 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2212 }
cparata 0:e4f89df7a7a5 2213
cparata 0:e4f89df7a7a5 2214 /*******************************************************************************
cparata 0:e4f89df7a7a5 2215 * Function Name : LSM6DSL_ACC_GYRO_R_IF_Addr_Incr
cparata 0:e4f89df7a7a5 2216 * Description : Read IF_INC
cparata 0:e4f89df7a7a5 2217 * Input : Pointer to LSM6DSL_ACC_GYRO_IF_INC_t
cparata 0:e4f89df7a7a5 2218 * Output : Status of IF_INC see LSM6DSL_ACC_GYRO_IF_INC_t
cparata 0:e4f89df7a7a5 2219 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2220 *******************************************************************************/
cparata 0:e4f89df7a7a5 2221 status_t LSM6DSL_ACC_GYRO_R_IF_Addr_Incr(void *handle, LSM6DSL_ACC_GYRO_IF_INC_t *value)
cparata 0:e4f89df7a7a5 2222 {
cparata 0:e4f89df7a7a5 2223 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 2224 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2225
cparata 0:e4f89df7a7a5 2226 *value &= LSM6DSL_ACC_GYRO_IF_INC_MASK; //mask
cparata 0:e4f89df7a7a5 2227
cparata 0:e4f89df7a7a5 2228 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2229 }
cparata 0:e4f89df7a7a5 2230
cparata 0:e4f89df7a7a5 2231 /*******************************************************************************
cparata 0:e4f89df7a7a5 2232 * Function Name : LSM6DSL_ACC_GYRO_W_SPI_Mode
cparata 0:e4f89df7a7a5 2233 * Description : Write SIM
cparata 0:e4f89df7a7a5 2234 * Input : LSM6DSL_ACC_GYRO_SIM_t
cparata 0:e4f89df7a7a5 2235 * Output : None
cparata 0:e4f89df7a7a5 2236 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2237 *******************************************************************************/
cparata 0:e4f89df7a7a5 2238 status_t LSM6DSL_ACC_GYRO_W_SPI_Mode(void *handle, LSM6DSL_ACC_GYRO_SIM_t newValue)
cparata 0:e4f89df7a7a5 2239 {
cparata 0:e4f89df7a7a5 2240 u8_t value;
cparata 0:e4f89df7a7a5 2241
cparata 0:e4f89df7a7a5 2242 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 2243 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2244
cparata 0:e4f89df7a7a5 2245 value &= ~LSM6DSL_ACC_GYRO_SIM_MASK;
cparata 0:e4f89df7a7a5 2246 value |= newValue;
cparata 0:e4f89df7a7a5 2247
cparata 0:e4f89df7a7a5 2248 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 2249 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2250
cparata 0:e4f89df7a7a5 2251 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2252 }
cparata 0:e4f89df7a7a5 2253
cparata 0:e4f89df7a7a5 2254 /*******************************************************************************
cparata 0:e4f89df7a7a5 2255 * Function Name : LSM6DSL_ACC_GYRO_R_SPI_Mode
cparata 0:e4f89df7a7a5 2256 * Description : Read SIM
cparata 0:e4f89df7a7a5 2257 * Input : Pointer to LSM6DSL_ACC_GYRO_SIM_t
cparata 0:e4f89df7a7a5 2258 * Output : Status of SIM see LSM6DSL_ACC_GYRO_SIM_t
cparata 0:e4f89df7a7a5 2259 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2260 *******************************************************************************/
cparata 0:e4f89df7a7a5 2261 status_t LSM6DSL_ACC_GYRO_R_SPI_Mode(void *handle, LSM6DSL_ACC_GYRO_SIM_t *value)
cparata 0:e4f89df7a7a5 2262 {
cparata 0:e4f89df7a7a5 2263 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2264 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2265
cparata 0:e4f89df7a7a5 2266 *value &= LSM6DSL_ACC_GYRO_SIM_MASK; //mask
cparata 0:e4f89df7a7a5 2267
cparata 0:e4f89df7a7a5 2268 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2269 }
cparata 0:e4f89df7a7a5 2270
cparata 0:e4f89df7a7a5 2271 /*******************************************************************************
cparata 0:e4f89df7a7a5 2272 * Function Name : LSM6DSL_ACC_GYRO_W_PadSel
cparata 0:e4f89df7a7a5 2273 * Description : Write PP_OD
cparata 0:e4f89df7a7a5 2274 * Input : LSM6DSL_ACC_GYRO_PP_OD_t
cparata 0:e4f89df7a7a5 2275 * Output : None
cparata 0:e4f89df7a7a5 2276 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2277 *******************************************************************************/
cparata 0:e4f89df7a7a5 2278 status_t LSM6DSL_ACC_GYRO_W_PadSel(void *handle, LSM6DSL_ACC_GYRO_PP_OD_t newValue)
cparata 0:e4f89df7a7a5 2279 {
cparata 0:e4f89df7a7a5 2280 u8_t value;
cparata 0:e4f89df7a7a5 2281
cparata 0:e4f89df7a7a5 2282 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 2283 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2284
cparata 0:e4f89df7a7a5 2285 value &= ~LSM6DSL_ACC_GYRO_PP_OD_MASK;
cparata 0:e4f89df7a7a5 2286 value |= newValue;
cparata 0:e4f89df7a7a5 2287
cparata 0:e4f89df7a7a5 2288 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 2289 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2290
cparata 0:e4f89df7a7a5 2291 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2292 }
cparata 0:e4f89df7a7a5 2293
cparata 0:e4f89df7a7a5 2294 /*******************************************************************************
cparata 0:e4f89df7a7a5 2295 * Function Name : LSM6DSL_ACC_GYRO_R_PadSel
cparata 0:e4f89df7a7a5 2296 * Description : Read PP_OD
cparata 0:e4f89df7a7a5 2297 * Input : Pointer to LSM6DSL_ACC_GYRO_PP_OD_t
cparata 0:e4f89df7a7a5 2298 * Output : Status of PP_OD see LSM6DSL_ACC_GYRO_PP_OD_t
cparata 0:e4f89df7a7a5 2299 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2300 *******************************************************************************/
cparata 0:e4f89df7a7a5 2301 status_t LSM6DSL_ACC_GYRO_R_PadSel(void *handle, LSM6DSL_ACC_GYRO_PP_OD_t *value)
cparata 0:e4f89df7a7a5 2302 {
cparata 0:e4f89df7a7a5 2303 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 2304 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2305
cparata 0:e4f89df7a7a5 2306 *value &= LSM6DSL_ACC_GYRO_PP_OD_MASK; //mask
cparata 0:e4f89df7a7a5 2307
cparata 0:e4f89df7a7a5 2308 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2309 }
cparata 0:e4f89df7a7a5 2310
cparata 0:e4f89df7a7a5 2311 /*******************************************************************************
cparata 0:e4f89df7a7a5 2312 * Function Name : LSM6DSL_ACC_GYRO_W_INT_ACT_LEVEL
cparata 0:e4f89df7a7a5 2313 * Description : Write INT_ACT_LEVEL
cparata 0:e4f89df7a7a5 2314 * Input : LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t
cparata 0:e4f89df7a7a5 2315 * Output : None
cparata 0:e4f89df7a7a5 2316 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2317 *******************************************************************************/
cparata 0:e4f89df7a7a5 2318 status_t LSM6DSL_ACC_GYRO_W_INT_ACT_LEVEL(void *handle, LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t newValue)
cparata 0:e4f89df7a7a5 2319 {
cparata 0:e4f89df7a7a5 2320 u8_t value;
cparata 0:e4f89df7a7a5 2321
cparata 0:e4f89df7a7a5 2322 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 2323 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2324
cparata 0:e4f89df7a7a5 2325 value &= ~LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_MASK;
cparata 0:e4f89df7a7a5 2326 value |= newValue;
cparata 0:e4f89df7a7a5 2327
cparata 0:e4f89df7a7a5 2328 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 2329 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2330
cparata 0:e4f89df7a7a5 2331 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2332 }
cparata 0:e4f89df7a7a5 2333
cparata 0:e4f89df7a7a5 2334 /*******************************************************************************
cparata 0:e4f89df7a7a5 2335 * Function Name : LSM6DSL_ACC_GYRO_R_INT_ACT_LEVEL
cparata 0:e4f89df7a7a5 2336 * Description : Read INT_ACT_LEVEL
cparata 0:e4f89df7a7a5 2337 * Input : Pointer to LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t
cparata 0:e4f89df7a7a5 2338 * Output : Status of INT_ACT_LEVEL see LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t
cparata 0:e4f89df7a7a5 2339 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2340 *******************************************************************************/
cparata 0:e4f89df7a7a5 2341 status_t LSM6DSL_ACC_GYRO_R_INT_ACT_LEVEL(void *handle, LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t *value)
cparata 0:e4f89df7a7a5 2342 {
cparata 0:e4f89df7a7a5 2343 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2344 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2345
cparata 0:e4f89df7a7a5 2346 *value &= LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_MASK; //mask
cparata 0:e4f89df7a7a5 2347
cparata 0:e4f89df7a7a5 2348 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2349 }
cparata 0:e4f89df7a7a5 2350
cparata 0:e4f89df7a7a5 2351 /*******************************************************************************
cparata 0:e4f89df7a7a5 2352 * Function Name : LSM6DSL_ACC_GYRO_W_BOOT
cparata 0:e4f89df7a7a5 2353 * Description : Write BOOT
cparata 0:e4f89df7a7a5 2354 * Input : LSM6DSL_ACC_GYRO_BOOT_t
cparata 0:e4f89df7a7a5 2355 * Output : None
cparata 0:e4f89df7a7a5 2356 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2357 *******************************************************************************/
cparata 0:e4f89df7a7a5 2358 status_t LSM6DSL_ACC_GYRO_W_BOOT(void *handle, LSM6DSL_ACC_GYRO_BOOT_t newValue)
cparata 0:e4f89df7a7a5 2359 {
cparata 0:e4f89df7a7a5 2360 u8_t value;
cparata 0:e4f89df7a7a5 2361
cparata 0:e4f89df7a7a5 2362 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:e4f89df7a7a5 2363 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2364
cparata 0:e4f89df7a7a5 2365 value &= ~LSM6DSL_ACC_GYRO_BOOT_MASK;
cparata 0:e4f89df7a7a5 2366 value |= newValue;
cparata 0:e4f89df7a7a5 2367
cparata 0:e4f89df7a7a5 2368 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:e4f89df7a7a5 2369 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2370
cparata 0:e4f89df7a7a5 2371 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2372 }
cparata 0:e4f89df7a7a5 2373
cparata 0:e4f89df7a7a5 2374 /*******************************************************************************
cparata 0:e4f89df7a7a5 2375 * Function Name : LSM6DSL_ACC_GYRO_R_BOOT
cparata 0:e4f89df7a7a5 2376 * Description : Read BOOT
cparata 0:e4f89df7a7a5 2377 * Input : Pointer to LSM6DSL_ACC_GYRO_BOOT_t
cparata 0:e4f89df7a7a5 2378 * Output : Status of BOOT see LSM6DSL_ACC_GYRO_BOOT_t
cparata 0:e4f89df7a7a5 2379 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2380 *******************************************************************************/
cparata 0:e4f89df7a7a5 2381 status_t LSM6DSL_ACC_GYRO_R_BOOT(void *handle, LSM6DSL_ACC_GYRO_BOOT_t *value)
cparata 0:e4f89df7a7a5 2382 {
cparata 0:e4f89df7a7a5 2383 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 2384 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2385
cparata 0:e4f89df7a7a5 2386 *value &= LSM6DSL_ACC_GYRO_BOOT_MASK; //mask
cparata 0:e4f89df7a7a5 2387
cparata 0:e4f89df7a7a5 2388 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2389 }
cparata 0:e4f89df7a7a5 2390
cparata 0:e4f89df7a7a5 2391 /*******************************************************************************
cparata 0:e4f89df7a7a5 2392 * Function Name : LSM6DSL_ACC_GYRO_LPF1_SEL_G
cparata 0:e4f89df7a7a5 2393 * Description : Write LPF1_SEL_G
cparata 0:e4f89df7a7a5 2394 * Input : LSM6DSL_ACC_GYRO_LPF1_SEL_G_t
cparata 0:e4f89df7a7a5 2395 * Output : None
cparata 0:e4f89df7a7a5 2396 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2397 *******************************************************************************/
cparata 0:e4f89df7a7a5 2398 status_t LSM6DSL_ACC_GYRO_W_LPF1_SEL_G(void *handle, LSM6DSL_ACC_GYRO_LPF1_SEL_G_t newValue)
cparata 0:e4f89df7a7a5 2399 {
cparata 0:e4f89df7a7a5 2400 u8_t value;
cparata 0:e4f89df7a7a5 2401
cparata 0:e4f89df7a7a5 2402 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:e4f89df7a7a5 2403 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2404
cparata 0:e4f89df7a7a5 2405 value &= ~LSM6DSL_ACC_GYRO_LPF1_SEL_G_MASK;
cparata 0:e4f89df7a7a5 2406 value |= newValue;
cparata 0:e4f89df7a7a5 2407
cparata 0:e4f89df7a7a5 2408 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:e4f89df7a7a5 2409 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2410
cparata 0:e4f89df7a7a5 2411 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2412 }
cparata 0:e4f89df7a7a5 2413
cparata 0:e4f89df7a7a5 2414 /*******************************************************************************
cparata 0:e4f89df7a7a5 2415 * Function Name : LSM6DSL_ACC_GYRO_LPF1_SEL_G
cparata 0:e4f89df7a7a5 2416 * Description : Read LPF1_SEL_G
cparata 0:e4f89df7a7a5 2417 * Input : Pointer to LSM6DSL_ACC_GYRO_LPF1_SEL_G_t
cparata 0:e4f89df7a7a5 2418 * Output : Status of LPF1_SEL_G see LSM6DSL_ACC_GYRO_LPF1_SEL_G_t
cparata 0:e4f89df7a7a5 2419 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2420 *******************************************************************************/
cparata 0:e4f89df7a7a5 2421 status_t LSM6DSL_ACC_GYRO_R_LPF1_SEL_G(void *handle, LSM6DSL_ACC_GYRO_LPF1_SEL_G_t *value)
cparata 0:e4f89df7a7a5 2422 {
cparata 0:e4f89df7a7a5 2423 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 2424 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2425
cparata 0:e4f89df7a7a5 2426 *value &= LSM6DSL_ACC_GYRO_LPF1_SEL_G_MASK; //mask
cparata 0:e4f89df7a7a5 2427
cparata 0:e4f89df7a7a5 2428 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2429 }
cparata 0:e4f89df7a7a5 2430
cparata 0:e4f89df7a7a5 2431 /*******************************************************************************
cparata 0:e4f89df7a7a5 2432 * Function Name : LSM6DSL_ACC_GYRO_W_I2C_DISABLE
cparata 0:e4f89df7a7a5 2433 * Description : Write I2C_DISABLE
cparata 0:e4f89df7a7a5 2434 * Input : LSM6DSL_ACC_GYRO_I2C_DISABLE_t
cparata 0:e4f89df7a7a5 2435 * Output : None
cparata 0:e4f89df7a7a5 2436 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2437 *******************************************************************************/
cparata 0:e4f89df7a7a5 2438 status_t LSM6DSL_ACC_GYRO_W_I2C_DISABLE(void *handle, LSM6DSL_ACC_GYRO_I2C_DISABLE_t newValue)
cparata 0:e4f89df7a7a5 2439 {
cparata 0:e4f89df7a7a5 2440 u8_t value;
cparata 0:e4f89df7a7a5 2441
cparata 0:e4f89df7a7a5 2442 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:e4f89df7a7a5 2443 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2444
cparata 0:e4f89df7a7a5 2445 value &= ~LSM6DSL_ACC_GYRO_I2C_DISABLE_MASK;
cparata 0:e4f89df7a7a5 2446 value |= newValue;
cparata 0:e4f89df7a7a5 2447
cparata 0:e4f89df7a7a5 2448 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:e4f89df7a7a5 2449 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2450
cparata 0:e4f89df7a7a5 2451 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2452 }
cparata 0:e4f89df7a7a5 2453
cparata 0:e4f89df7a7a5 2454 /*******************************************************************************
cparata 0:e4f89df7a7a5 2455 * Function Name : LSM6DSL_ACC_GYRO_R_I2C_DISABLE
cparata 0:e4f89df7a7a5 2456 * Description : Read I2C_DISABLE
cparata 0:e4f89df7a7a5 2457 * Input : Pointer to LSM6DSL_ACC_GYRO_I2C_DISABLE_t
cparata 0:e4f89df7a7a5 2458 * Output : Status of I2C_DISABLE see LSM6DSL_ACC_GYRO_I2C_DISABLE_t
cparata 0:e4f89df7a7a5 2459 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2460 *******************************************************************************/
cparata 0:e4f89df7a7a5 2461 status_t LSM6DSL_ACC_GYRO_R_I2C_DISABLE(void *handle, LSM6DSL_ACC_GYRO_I2C_DISABLE_t *value)
cparata 0:e4f89df7a7a5 2462 {
cparata 0:e4f89df7a7a5 2463 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 2464 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2465
cparata 0:e4f89df7a7a5 2466 *value &= LSM6DSL_ACC_GYRO_I2C_DISABLE_MASK; //mask
cparata 0:e4f89df7a7a5 2467
cparata 0:e4f89df7a7a5 2468 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2469 }
cparata 0:e4f89df7a7a5 2470
cparata 0:e4f89df7a7a5 2471 /*******************************************************************************
cparata 0:e4f89df7a7a5 2472 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_MSK
cparata 0:e4f89df7a7a5 2473 * Description : Write DRDY_MSK
cparata 0:e4f89df7a7a5 2474 * Input : LSM6DSL_ACC_GYRO_DRDY_MSK_t
cparata 0:e4f89df7a7a5 2475 * Output : None
cparata 0:e4f89df7a7a5 2476 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2477 *******************************************************************************/
cparata 0:e4f89df7a7a5 2478 status_t LSM6DSL_ACC_GYRO_W_DRDY_MSK(void *handle, LSM6DSL_ACC_GYRO_DRDY_MSK_t newValue)
cparata 0:e4f89df7a7a5 2479 {
cparata 0:e4f89df7a7a5 2480 u8_t value;
cparata 0:e4f89df7a7a5 2481
cparata 0:e4f89df7a7a5 2482 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:e4f89df7a7a5 2483 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2484
cparata 0:e4f89df7a7a5 2485 value &= ~LSM6DSL_ACC_GYRO_DRDY_MSK_MASK;
cparata 0:e4f89df7a7a5 2486 value |= newValue;
cparata 0:e4f89df7a7a5 2487
cparata 0:e4f89df7a7a5 2488 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:e4f89df7a7a5 2489 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2490
cparata 0:e4f89df7a7a5 2491 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2492 }
cparata 0:e4f89df7a7a5 2493
cparata 0:e4f89df7a7a5 2494 /*******************************************************************************
cparata 0:e4f89df7a7a5 2495 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_MSK
cparata 0:e4f89df7a7a5 2496 * Description : Read DRDY_MSK
cparata 0:e4f89df7a7a5 2497 * Input : Pointer to LSM6DSL_ACC_GYRO_DRDY_MSK_t
cparata 0:e4f89df7a7a5 2498 * Output : Status of DRDY_MSK see LSM6DSL_ACC_GYRO_DRDY_MSK_t
cparata 0:e4f89df7a7a5 2499 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2500 *******************************************************************************/
cparata 0:e4f89df7a7a5 2501 status_t LSM6DSL_ACC_GYRO_R_DRDY_MSK(void *handle, LSM6DSL_ACC_GYRO_DRDY_MSK_t *value)
cparata 0:e4f89df7a7a5 2502 {
cparata 0:e4f89df7a7a5 2503 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2504 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2505
cparata 0:e4f89df7a7a5 2506 *value &= LSM6DSL_ACC_GYRO_DRDY_MSK_MASK; //mask
cparata 0:e4f89df7a7a5 2507
cparata 0:e4f89df7a7a5 2508 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2509 }
cparata 0:e4f89df7a7a5 2510
cparata 0:e4f89df7a7a5 2511 /*******************************************************************************
cparata 0:e4f89df7a7a5 2512 * Function Name : LSM6DSL_ACC_GYRO_W_INT2_ON_INT1
cparata 0:e4f89df7a7a5 2513 * Description : Write INT2_ON_INT1
cparata 0:e4f89df7a7a5 2514 * Input : LSM6DSL_ACC_GYRO_INT2_ON_INT1_t
cparata 0:e4f89df7a7a5 2515 * Output : None
cparata 0:e4f89df7a7a5 2516 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2517 *******************************************************************************/
cparata 0:e4f89df7a7a5 2518 status_t LSM6DSL_ACC_GYRO_W_INT2_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_INT2_ON_INT1_t newValue)
cparata 0:e4f89df7a7a5 2519 {
cparata 0:e4f89df7a7a5 2520 u8_t value;
cparata 0:e4f89df7a7a5 2521
cparata 0:e4f89df7a7a5 2522 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:e4f89df7a7a5 2523 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2524
cparata 0:e4f89df7a7a5 2525 value &= ~LSM6DSL_ACC_GYRO_INT2_ON_INT1_MASK;
cparata 0:e4f89df7a7a5 2526 value |= newValue;
cparata 0:e4f89df7a7a5 2527
cparata 0:e4f89df7a7a5 2528 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:e4f89df7a7a5 2529 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2530
cparata 0:e4f89df7a7a5 2531 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2532 }
cparata 0:e4f89df7a7a5 2533
cparata 0:e4f89df7a7a5 2534 /*******************************************************************************
cparata 0:e4f89df7a7a5 2535 * Function Name : LSM6DSL_ACC_GYRO_R_INT2_ON_INT1
cparata 0:e4f89df7a7a5 2536 * Description : Read INT2_ON_INT1
cparata 0:e4f89df7a7a5 2537 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_ON_INT1_t
cparata 0:e4f89df7a7a5 2538 * Output : Status of INT2_ON_INT1 see LSM6DSL_ACC_GYRO_INT2_ON_INT1_t
cparata 0:e4f89df7a7a5 2539 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2540 *******************************************************************************/
cparata 0:e4f89df7a7a5 2541 status_t LSM6DSL_ACC_GYRO_R_INT2_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_INT2_ON_INT1_t *value)
cparata 0:e4f89df7a7a5 2542 {
cparata 0:e4f89df7a7a5 2543 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2544 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2545
cparata 0:e4f89df7a7a5 2546 *value &= LSM6DSL_ACC_GYRO_INT2_ON_INT1_MASK; //mask
cparata 0:e4f89df7a7a5 2547
cparata 0:e4f89df7a7a5 2548 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2549 }
cparata 0:e4f89df7a7a5 2550
cparata 0:e4f89df7a7a5 2551 /*******************************************************************************
cparata 0:e4f89df7a7a5 2552 * Function Name : LSM6DSL_ACC_GYRO_W_SleepMode_G
cparata 0:e4f89df7a7a5 2553 * Description : Write SLEEP_G
cparata 0:e4f89df7a7a5 2554 * Input : LSM6DSL_ACC_GYRO_SLEEP_G_t
cparata 0:e4f89df7a7a5 2555 * Output : None
cparata 0:e4f89df7a7a5 2556 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2557 *******************************************************************************/
cparata 0:e4f89df7a7a5 2558 status_t LSM6DSL_ACC_GYRO_W_SleepMode_G(void *handle, LSM6DSL_ACC_GYRO_SLEEP_G_t newValue)
cparata 0:e4f89df7a7a5 2559 {
cparata 0:e4f89df7a7a5 2560 u8_t value;
cparata 0:e4f89df7a7a5 2561
cparata 0:e4f89df7a7a5 2562 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:e4f89df7a7a5 2563 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2564
cparata 0:e4f89df7a7a5 2565 value &= ~LSM6DSL_ACC_GYRO_SLEEP_G_MASK;
cparata 0:e4f89df7a7a5 2566 value |= newValue;
cparata 0:e4f89df7a7a5 2567
cparata 0:e4f89df7a7a5 2568 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:e4f89df7a7a5 2569 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2570
cparata 0:e4f89df7a7a5 2571 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2572 }
cparata 0:e4f89df7a7a5 2573
cparata 0:e4f89df7a7a5 2574 /*******************************************************************************
cparata 0:e4f89df7a7a5 2575 * Function Name : LSM6DSL_ACC_GYRO_R_SleepMode_G
cparata 0:e4f89df7a7a5 2576 * Description : Read SLEEP_G
cparata 0:e4f89df7a7a5 2577 * Input : Pointer to LSM6DSL_ACC_GYRO_SLEEP_G_t
cparata 0:e4f89df7a7a5 2578 * Output : Status of SLEEP_G see LSM6DSL_ACC_GYRO_SLEEP_G_t
cparata 0:e4f89df7a7a5 2579 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2580 *******************************************************************************/
cparata 0:e4f89df7a7a5 2581 status_t LSM6DSL_ACC_GYRO_R_SleepMode_G(void *handle, LSM6DSL_ACC_GYRO_SLEEP_G_t *value)
cparata 0:e4f89df7a7a5 2582 {
cparata 0:e4f89df7a7a5 2583 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2584 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2585
cparata 0:e4f89df7a7a5 2586 *value &= LSM6DSL_ACC_GYRO_SLEEP_G_MASK; //mask
cparata 0:e4f89df7a7a5 2587
cparata 0:e4f89df7a7a5 2588 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2589 }
cparata 0:e4f89df7a7a5 2590
cparata 0:e4f89df7a7a5 2591 /*******************************************************************************
cparata 0:e4f89df7a7a5 2592 * Function Name : LSM6DSL_ACC_GYRO_W_SelfTest_XL
cparata 0:e4f89df7a7a5 2593 * Description : Write ST_XL
cparata 0:e4f89df7a7a5 2594 * Input : LSM6DSL_ACC_GYRO_ST_XL_t
cparata 0:e4f89df7a7a5 2595 * Output : None
cparata 0:e4f89df7a7a5 2596 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2597 *******************************************************************************/
cparata 0:e4f89df7a7a5 2598 status_t LSM6DSL_ACC_GYRO_W_SelfTest_XL(void *handle, LSM6DSL_ACC_GYRO_ST_XL_t newValue)
cparata 0:e4f89df7a7a5 2599 {
cparata 0:e4f89df7a7a5 2600 u8_t value;
cparata 0:e4f89df7a7a5 2601
cparata 0:e4f89df7a7a5 2602 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:e4f89df7a7a5 2603 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2604
cparata 0:e4f89df7a7a5 2605 value &= ~LSM6DSL_ACC_GYRO_ST_XL_MASK;
cparata 0:e4f89df7a7a5 2606 value |= newValue;
cparata 0:e4f89df7a7a5 2607
cparata 0:e4f89df7a7a5 2608 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:e4f89df7a7a5 2609 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2610
cparata 0:e4f89df7a7a5 2611 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2612 }
cparata 0:e4f89df7a7a5 2613
cparata 0:e4f89df7a7a5 2614 /*******************************************************************************
cparata 0:e4f89df7a7a5 2615 * Function Name : LSM6DSL_ACC_GYRO_R_SelfTest_XL
cparata 0:e4f89df7a7a5 2616 * Description : Read ST_XL
cparata 0:e4f89df7a7a5 2617 * Input : Pointer to LSM6DSL_ACC_GYRO_ST_XL_t
cparata 0:e4f89df7a7a5 2618 * Output : Status of ST_XL see LSM6DSL_ACC_GYRO_ST_XL_t
cparata 0:e4f89df7a7a5 2619 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2620 *******************************************************************************/
cparata 0:e4f89df7a7a5 2621 status_t LSM6DSL_ACC_GYRO_R_SelfTest_XL(void *handle, LSM6DSL_ACC_GYRO_ST_XL_t *value)
cparata 0:e4f89df7a7a5 2622 {
cparata 0:e4f89df7a7a5 2623 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2624 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2625
cparata 0:e4f89df7a7a5 2626 *value &= LSM6DSL_ACC_GYRO_ST_XL_MASK; //mask
cparata 0:e4f89df7a7a5 2627
cparata 0:e4f89df7a7a5 2628 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2629 }
cparata 0:e4f89df7a7a5 2630
cparata 0:e4f89df7a7a5 2631 /*******************************************************************************
cparata 0:e4f89df7a7a5 2632 * Function Name : LSM6DSL_ACC_GYRO_W_SelfTest_G
cparata 0:e4f89df7a7a5 2633 * Description : Write ST_G
cparata 0:e4f89df7a7a5 2634 * Input : LSM6DSL_ACC_GYRO_ST_G_t
cparata 0:e4f89df7a7a5 2635 * Output : None
cparata 0:e4f89df7a7a5 2636 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2637 *******************************************************************************/
cparata 0:e4f89df7a7a5 2638 status_t LSM6DSL_ACC_GYRO_W_SelfTest_G(void *handle, LSM6DSL_ACC_GYRO_ST_G_t newValue)
cparata 0:e4f89df7a7a5 2639 {
cparata 0:e4f89df7a7a5 2640 u8_t value;
cparata 0:e4f89df7a7a5 2641
cparata 0:e4f89df7a7a5 2642 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:e4f89df7a7a5 2643 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2644
cparata 0:e4f89df7a7a5 2645 value &= ~LSM6DSL_ACC_GYRO_ST_G_MASK;
cparata 0:e4f89df7a7a5 2646 value |= newValue;
cparata 0:e4f89df7a7a5 2647
cparata 0:e4f89df7a7a5 2648 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:e4f89df7a7a5 2649 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2650
cparata 0:e4f89df7a7a5 2651 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2652 }
cparata 0:e4f89df7a7a5 2653
cparata 0:e4f89df7a7a5 2654 /*******************************************************************************
cparata 0:e4f89df7a7a5 2655 * Function Name : LSM6DSL_ACC_GYRO_R_SelfTest_G
cparata 0:e4f89df7a7a5 2656 * Description : Read ST_G
cparata 0:e4f89df7a7a5 2657 * Input : Pointer to LSM6DSL_ACC_GYRO_ST_G_t
cparata 0:e4f89df7a7a5 2658 * Output : Status of ST_G see LSM6DSL_ACC_GYRO_ST_G_t
cparata 0:e4f89df7a7a5 2659 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2660 *******************************************************************************/
cparata 0:e4f89df7a7a5 2661 status_t LSM6DSL_ACC_GYRO_R_SelfTest_G(void *handle, LSM6DSL_ACC_GYRO_ST_G_t *value)
cparata 0:e4f89df7a7a5 2662 {
cparata 0:e4f89df7a7a5 2663 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2664 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2665
cparata 0:e4f89df7a7a5 2666 *value &= LSM6DSL_ACC_GYRO_ST_G_MASK; //mask
cparata 0:e4f89df7a7a5 2667
cparata 0:e4f89df7a7a5 2668 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2669 }
cparata 0:e4f89df7a7a5 2670
cparata 0:e4f89df7a7a5 2671 /*******************************************************************************
cparata 0:e4f89df7a7a5 2672 * Function Name : LSM6DSL_ACC_GYRO_W_DEN_Polarity
cparata 0:e4f89df7a7a5 2673 * Description : Write DEN_LH
cparata 0:e4f89df7a7a5 2674 * Input : LSM6DSL_ACC_GYRO_DEN_LH_t
cparata 0:e4f89df7a7a5 2675 * Output : None
cparata 0:e4f89df7a7a5 2676 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2677 *******************************************************************************/
cparata 0:e4f89df7a7a5 2678 status_t LSM6DSL_ACC_GYRO_W_DEN_Polarity(void *handle, LSM6DSL_ACC_GYRO_DEN_LH_t newValue)
cparata 0:e4f89df7a7a5 2679 {
cparata 0:e4f89df7a7a5 2680 u8_t value;
cparata 0:e4f89df7a7a5 2681
cparata 0:e4f89df7a7a5 2682 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:e4f89df7a7a5 2683 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2684
cparata 0:e4f89df7a7a5 2685 value &= ~LSM6DSL_ACC_GYRO_DEN_LH_MASK;
cparata 0:e4f89df7a7a5 2686 value |= newValue;
cparata 0:e4f89df7a7a5 2687
cparata 0:e4f89df7a7a5 2688 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:e4f89df7a7a5 2689 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2690
cparata 0:e4f89df7a7a5 2691 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2692 }
cparata 0:e4f89df7a7a5 2693
cparata 0:e4f89df7a7a5 2694 /*******************************************************************************
cparata 0:e4f89df7a7a5 2695 * Function Name : LSM6DSL_ACC_GYRO_R_DEN_Polarity
cparata 0:e4f89df7a7a5 2696 * Description : Read DEN_LH
cparata 0:e4f89df7a7a5 2697 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_LH_t
cparata 0:e4f89df7a7a5 2698 * Output : Status of DEN_LH see LSM6DSL_ACC_GYRO_DEN_LH_t
cparata 0:e4f89df7a7a5 2699 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2700 *******************************************************************************/
cparata 0:e4f89df7a7a5 2701 status_t LSM6DSL_ACC_GYRO_R_DEN_Polarity(void *handle, LSM6DSL_ACC_GYRO_DEN_LH_t *value)
cparata 0:e4f89df7a7a5 2702 {
cparata 0:e4f89df7a7a5 2703 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2704 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2705
cparata 0:e4f89df7a7a5 2706 *value &= LSM6DSL_ACC_GYRO_DEN_LH_MASK; //mask
cparata 0:e4f89df7a7a5 2707
cparata 0:e4f89df7a7a5 2708 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2709 }
cparata 0:e4f89df7a7a5 2710
cparata 0:e4f89df7a7a5 2711 /*******************************************************************************
cparata 0:e4f89df7a7a5 2712 * Function Name : LSM6DSL_ACC_GYRO_W_CircularBurstMode
cparata 0:e4f89df7a7a5 2713 * Description : Write ST_ROUNDING
cparata 0:e4f89df7a7a5 2714 * Input : LSM6DSL_ACC_GYRO_ROUNDING_t
cparata 0:e4f89df7a7a5 2715 * Output : None
cparata 0:e4f89df7a7a5 2716 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2717 *******************************************************************************/
cparata 0:e4f89df7a7a5 2718 status_t LSM6DSL_ACC_GYRO_W_CircularBurstMode(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_t newValue)
cparata 0:e4f89df7a7a5 2719 {
cparata 0:e4f89df7a7a5 2720 u8_t value;
cparata 0:e4f89df7a7a5 2721
cparata 0:e4f89df7a7a5 2722 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:e4f89df7a7a5 2723 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2724
cparata 0:e4f89df7a7a5 2725 value &= ~LSM6DSL_ACC_GYRO_LSM6DSL_ACC_GYRO_ROUNDING_t_MASK;
cparata 0:e4f89df7a7a5 2726 value |= newValue;
cparata 0:e4f89df7a7a5 2727
cparata 0:e4f89df7a7a5 2728 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:e4f89df7a7a5 2729 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2730
cparata 0:e4f89df7a7a5 2731 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2732 }
cparata 0:e4f89df7a7a5 2733
cparata 0:e4f89df7a7a5 2734 /*******************************************************************************
cparata 0:e4f89df7a7a5 2735 * Function Name : LSM6DSL_ACC_GYRO_R_CircularBurstMode
cparata 0:e4f89df7a7a5 2736 * Description : Read ST_ROUNDING
cparata 0:e4f89df7a7a5 2737 * Input : Pointer to LSM6DSL_ACC_GYRO_ROUNDING_t
cparata 0:e4f89df7a7a5 2738 * Output : Status of ST_ROUNDING see LSM6DSL_ACC_GYRO_ROUNDING_t
cparata 0:e4f89df7a7a5 2739 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2740 *******************************************************************************/
cparata 0:e4f89df7a7a5 2741 status_t LSM6DSL_ACC_GYRO_R_CircularBurstMode(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_t *value)
cparata 0:e4f89df7a7a5 2742 {
cparata 0:e4f89df7a7a5 2743 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2744 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2745
cparata 0:e4f89df7a7a5 2746 *value &= LSM6DSL_ACC_GYRO_LSM6DSL_ACC_GYRO_ROUNDING_t_MASK; //mask
cparata 0:e4f89df7a7a5 2747
cparata 0:e4f89df7a7a5 2748 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2749 }
cparata 0:e4f89df7a7a5 2750
cparata 0:e4f89df7a7a5 2751 /*******************************************************************************
cparata 0:e4f89df7a7a5 2752 * Function Name : LSM6DSL_ACC_GYRO_W_LP_BW_G
cparata 0:e4f89df7a7a5 2753 * Description : Write FTYPE
cparata 0:e4f89df7a7a5 2754 * Input : LSM6DSL_ACC_GYRO_FTYPE_t
cparata 0:e4f89df7a7a5 2755 * Output : None
cparata 0:e4f89df7a7a5 2756 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2757 *******************************************************************************/
cparata 0:e4f89df7a7a5 2758 status_t LSM6DSL_ACC_GYRO_W_LP_BW_G(void *handle, LSM6DSL_ACC_GYRO_FTYPE_t newValue)
cparata 0:e4f89df7a7a5 2759 {
cparata 0:e4f89df7a7a5 2760 u8_t value;
cparata 0:e4f89df7a7a5 2761
cparata 0:e4f89df7a7a5 2762 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:e4f89df7a7a5 2763 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2764
cparata 0:e4f89df7a7a5 2765 value &= ~LSM6DSL_ACC_GYRO_FTYPE_MASK;
cparata 0:e4f89df7a7a5 2766 value |= newValue;
cparata 0:e4f89df7a7a5 2767
cparata 0:e4f89df7a7a5 2768 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:e4f89df7a7a5 2769 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2770
cparata 0:e4f89df7a7a5 2771 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2772 }
cparata 0:e4f89df7a7a5 2773
cparata 0:e4f89df7a7a5 2774 /*******************************************************************************
cparata 0:e4f89df7a7a5 2775 * Function Name : LSM6DSL_ACC_GYRO_R_LP_BW_G
cparata 0:e4f89df7a7a5 2776 * Description : Read FTYPE
cparata 0:e4f89df7a7a5 2777 * Input : Pointer to LSM6DSL_ACC_GYRO_FTYPE_t
cparata 0:e4f89df7a7a5 2778 * Output : Status of FTYPE see LSM6DSL_ACC_GYRO_FTYPE_t
cparata 0:e4f89df7a7a5 2779 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2780 *******************************************************************************/
cparata 0:e4f89df7a7a5 2781 status_t LSM6DSL_ACC_GYRO_R_LP_BW_G(void *handle, LSM6DSL_ACC_GYRO_FTYPE_t *value)
cparata 0:e4f89df7a7a5 2782 {
cparata 0:e4f89df7a7a5 2783 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2784 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2785
cparata 0:e4f89df7a7a5 2786 *value &= LSM6DSL_ACC_GYRO_FTYPE_MASK; //mask
cparata 0:e4f89df7a7a5 2787
cparata 0:e4f89df7a7a5 2788 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2789 }
cparata 0:e4f89df7a7a5 2790
cparata 0:e4f89df7a7a5 2791 /*******************************************************************************
cparata 0:e4f89df7a7a5 2792 * Function Name : LSM6DSL_ACC_GYRO_W_UserOffsetWeight
cparata 0:e4f89df7a7a5 2793 * Description : Write USR_OFF_W
cparata 0:e4f89df7a7a5 2794 * Input : LSM6DSL_ACC_GYRO_USR_OFF_W_t
cparata 0:e4f89df7a7a5 2795 * Output : None
cparata 0:e4f89df7a7a5 2796 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2797 *******************************************************************************/
cparata 0:e4f89df7a7a5 2798 status_t LSM6DSL_ACC_GYRO_W_UserOffsetWeight(void *handle, LSM6DSL_ACC_GYRO_USR_OFF_W_t newValue)
cparata 0:e4f89df7a7a5 2799 {
cparata 0:e4f89df7a7a5 2800 u8_t value;
cparata 0:e4f89df7a7a5 2801
cparata 0:e4f89df7a7a5 2802 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:e4f89df7a7a5 2803 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2804
cparata 0:e4f89df7a7a5 2805 value &= ~LSM6DSL_ACC_GYRO_USR_OFF_W_MASK;
cparata 0:e4f89df7a7a5 2806 value |= newValue;
cparata 0:e4f89df7a7a5 2807
cparata 0:e4f89df7a7a5 2808 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:e4f89df7a7a5 2809 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2810
cparata 0:e4f89df7a7a5 2811 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2812 }
cparata 0:e4f89df7a7a5 2813
cparata 0:e4f89df7a7a5 2814 /*******************************************************************************
cparata 0:e4f89df7a7a5 2815 * Function Name : LSM6DSL_ACC_GYRO_R_UserOffsetWeight
cparata 0:e4f89df7a7a5 2816 * Description : Read USR_OFF_W
cparata 0:e4f89df7a7a5 2817 * Input : Pointer to LSM6DSL_ACC_GYRO_USR_OFF_W_t
cparata 0:e4f89df7a7a5 2818 * Output : Status of USR_OFF_W see LSM6DSL_ACC_GYRO_USR_OFF_W_t
cparata 0:e4f89df7a7a5 2819 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2820 *******************************************************************************/
cparata 0:e4f89df7a7a5 2821 status_t LSM6DSL_ACC_GYRO_R_UserOffsetWeight(void *handle, LSM6DSL_ACC_GYRO_USR_OFF_W_t *value)
cparata 0:e4f89df7a7a5 2822 {
cparata 0:e4f89df7a7a5 2823 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2824 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2825
cparata 0:e4f89df7a7a5 2826 *value &= LSM6DSL_ACC_GYRO_USR_OFF_W_MASK; //mask
cparata 0:e4f89df7a7a5 2827
cparata 0:e4f89df7a7a5 2828 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2829 }
cparata 0:e4f89df7a7a5 2830
cparata 0:e4f89df7a7a5 2831 /*******************************************************************************
cparata 0:e4f89df7a7a5 2832 * Function Name : LSM6DSL_ACC_GYRO_W_LowPower_XL
cparata 0:e4f89df7a7a5 2833 * Description : Write LP_XL
cparata 0:e4f89df7a7a5 2834 * Input : LSM6DSL_ACC_GYRO_LP_XL_t
cparata 0:e4f89df7a7a5 2835 * Output : None
cparata 0:e4f89df7a7a5 2836 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2837 *******************************************************************************/
cparata 0:e4f89df7a7a5 2838 status_t LSM6DSL_ACC_GYRO_W_LowPower_XL(void *handle, LSM6DSL_ACC_GYRO_LP_XL_t newValue)
cparata 0:e4f89df7a7a5 2839 {
cparata 0:e4f89df7a7a5 2840 u8_t value;
cparata 0:e4f89df7a7a5 2841
cparata 0:e4f89df7a7a5 2842 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:e4f89df7a7a5 2843 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2844
cparata 0:e4f89df7a7a5 2845 value &= ~LSM6DSL_ACC_GYRO_LP_XL_MASK;
cparata 0:e4f89df7a7a5 2846 value |= newValue;
cparata 0:e4f89df7a7a5 2847
cparata 0:e4f89df7a7a5 2848 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:e4f89df7a7a5 2849 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2850
cparata 0:e4f89df7a7a5 2851 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2852 }
cparata 0:e4f89df7a7a5 2853
cparata 0:e4f89df7a7a5 2854 /*******************************************************************************
cparata 0:e4f89df7a7a5 2855 * Function Name : LSM6DSL_ACC_GYRO_R_LowPower_XL
cparata 0:e4f89df7a7a5 2856 * Description : Read LP_XL
cparata 0:e4f89df7a7a5 2857 * Input : Pointer to LSM6DSL_ACC_GYRO_LP_XL_t
cparata 0:e4f89df7a7a5 2858 * Output : Status of LP_XL see LSM6DSL_ACC_GYRO_LP_XL_t
cparata 0:e4f89df7a7a5 2859 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2860 *******************************************************************************/
cparata 0:e4f89df7a7a5 2861 status_t LSM6DSL_ACC_GYRO_R_LowPower_XL(void *handle, LSM6DSL_ACC_GYRO_LP_XL_t *value)
cparata 0:e4f89df7a7a5 2862 {
cparata 0:e4f89df7a7a5 2863 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2864 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2865
cparata 0:e4f89df7a7a5 2866 *value &= LSM6DSL_ACC_GYRO_LP_XL_MASK; //mask
cparata 0:e4f89df7a7a5 2867
cparata 0:e4f89df7a7a5 2868 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2869 }
cparata 0:e4f89df7a7a5 2870 /*******************************************************************************
cparata 0:e4f89df7a7a5 2871 * Function Name : LSM6DSL_ACC_GYRO_W_DEN_LVL2_EN
cparata 0:e4f89df7a7a5 2872 * Description : Write DEN_LVL2_EN
cparata 0:e4f89df7a7a5 2873 * Input : LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t
cparata 0:e4f89df7a7a5 2874 * Output : None
cparata 0:e4f89df7a7a5 2875 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2876 *******************************************************************************/
cparata 0:e4f89df7a7a5 2877 status_t LSM6DSL_ACC_GYRO_W_DEN_LVL2_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t newValue)
cparata 0:e4f89df7a7a5 2878 {
cparata 0:e4f89df7a7a5 2879 u8_t value;
cparata 0:e4f89df7a7a5 2880
cparata 0:e4f89df7a7a5 2881 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:e4f89df7a7a5 2882 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2883
cparata 0:e4f89df7a7a5 2884 value &= ~LSM6DSL_ACC_GYRO_DEN_LVL2_EN_MASK;
cparata 0:e4f89df7a7a5 2885 value |= newValue;
cparata 0:e4f89df7a7a5 2886
cparata 0:e4f89df7a7a5 2887 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:e4f89df7a7a5 2888 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2889
cparata 0:e4f89df7a7a5 2890 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2891 }
cparata 0:e4f89df7a7a5 2892
cparata 0:e4f89df7a7a5 2893 /*******************************************************************************
cparata 0:e4f89df7a7a5 2894 * Function Name : LSM6DSL_ACC_GYRO_R_DEN_LVL2_EN
cparata 0:e4f89df7a7a5 2895 * Description : Read DEN_LVL2_EN
cparata 0:e4f89df7a7a5 2896 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t
cparata 0:e4f89df7a7a5 2897 * Output : Status of DEN_LVL2_EN see LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t
cparata 0:e4f89df7a7a5 2898 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2899 *******************************************************************************/
cparata 0:e4f89df7a7a5 2900 status_t LSM6DSL_ACC_GYRO_R_DEN_LVL2_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t *value)
cparata 0:e4f89df7a7a5 2901 {
cparata 0:e4f89df7a7a5 2902 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 2903 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2904
cparata 0:e4f89df7a7a5 2905 *value &= LSM6DSL_ACC_GYRO_DEN_LVL2_EN_MASK; //mask
cparata 0:e4f89df7a7a5 2906
cparata 0:e4f89df7a7a5 2907 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2908 }
cparata 0:e4f89df7a7a5 2909 /*******************************************************************************
cparata 0:e4f89df7a7a5 2910 * Function Name : LSM6DSL_ACC_GYRO_W_DEN_LVL_EN
cparata 0:e4f89df7a7a5 2911 * Description : Write DEN_LVL_EN
cparata 0:e4f89df7a7a5 2912 * Input : LSM6DSL_ACC_GYRO_DEN_LVL_EN_t
cparata 0:e4f89df7a7a5 2913 * Output : None
cparata 0:e4f89df7a7a5 2914 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2915 *******************************************************************************/
cparata 0:e4f89df7a7a5 2916 status_t LSM6DSL_ACC_GYRO_W_DEN_LVL_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL_EN_t newValue)
cparata 0:e4f89df7a7a5 2917 {
cparata 0:e4f89df7a7a5 2918 u8_t value;
cparata 0:e4f89df7a7a5 2919
cparata 0:e4f89df7a7a5 2920 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:e4f89df7a7a5 2921 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2922
cparata 0:e4f89df7a7a5 2923 value &= ~LSM6DSL_ACC_GYRO_DEN_LVL_EN_MASK;
cparata 0:e4f89df7a7a5 2924 value |= newValue;
cparata 0:e4f89df7a7a5 2925
cparata 0:e4f89df7a7a5 2926 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:e4f89df7a7a5 2927 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2928
cparata 0:e4f89df7a7a5 2929 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2930 }
cparata 0:e4f89df7a7a5 2931
cparata 0:e4f89df7a7a5 2932 /*******************************************************************************
cparata 0:e4f89df7a7a5 2933 * Function Name : LSM6DSL_ACC_GYRO_R_DEN_LVL_EN
cparata 0:e4f89df7a7a5 2934 * Description : Read DEN_LVL_EN
cparata 0:e4f89df7a7a5 2935 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_LVL_EN_t
cparata 0:e4f89df7a7a5 2936 * Output : Status of DEN_LVL_EN see LSM6DSL_ACC_GYRO_DEN_LVL_EN_t
cparata 0:e4f89df7a7a5 2937 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2938 *******************************************************************************/
cparata 0:e4f89df7a7a5 2939 status_t LSM6DSL_ACC_GYRO_R_DEN_LVL_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL_EN_t *value)
cparata 0:e4f89df7a7a5 2940 {
cparata 0:e4f89df7a7a5 2941 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 2942 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2943
cparata 0:e4f89df7a7a5 2944 *value &= LSM6DSL_ACC_GYRO_DEN_LVL_EN_MASK; //mask
cparata 0:e4f89df7a7a5 2945
cparata 0:e4f89df7a7a5 2946 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2947 }
cparata 0:e4f89df7a7a5 2948 /*******************************************************************************
cparata 0:e4f89df7a7a5 2949 * Function Name : LSM6DSL_ACC_GYRO_W_ExternalTrigger
cparata 0:e4f89df7a7a5 2950 * Description : Write DEN_EDGE_EN
cparata 0:e4f89df7a7a5 2951 * Input : LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t
cparata 0:e4f89df7a7a5 2952 * Output : None
cparata 0:e4f89df7a7a5 2953 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2954 *******************************************************************************/
cparata 0:e4f89df7a7a5 2955 status_t LSM6DSL_ACC_GYRO_W_ExternalTrigger(void *handle, LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t newValue)
cparata 0:e4f89df7a7a5 2956 {
cparata 0:e4f89df7a7a5 2957 u8_t value;
cparata 0:e4f89df7a7a5 2958
cparata 0:e4f89df7a7a5 2959 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:e4f89df7a7a5 2960 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2961
cparata 0:e4f89df7a7a5 2962 value &= ~LSM6DSL_ACC_GYRO_DEN_EDGE_EN_MASK;
cparata 0:e4f89df7a7a5 2963 value |= newValue;
cparata 0:e4f89df7a7a5 2964
cparata 0:e4f89df7a7a5 2965 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:e4f89df7a7a5 2966 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2967
cparata 0:e4f89df7a7a5 2968 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2969 }
cparata 0:e4f89df7a7a5 2970
cparata 0:e4f89df7a7a5 2971 /*******************************************************************************
cparata 0:e4f89df7a7a5 2972 * Function Name : LSM6DSL_ACC_GYRO_R_ExternalTrigger
cparata 0:e4f89df7a7a5 2973 * Description : Read DEN_EDGE_EN
cparata 0:e4f89df7a7a5 2974 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t
cparata 0:e4f89df7a7a5 2975 * Output : Status of DEN_EDGE_EN see LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t
cparata 0:e4f89df7a7a5 2976 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2977 *******************************************************************************/
cparata 0:e4f89df7a7a5 2978 status_t LSM6DSL_ACC_GYRO_R_ExternalTrigger(void *handle, LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t *value)
cparata 0:e4f89df7a7a5 2979 {
cparata 0:e4f89df7a7a5 2980 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 2981 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 2982
cparata 0:e4f89df7a7a5 2983 *value &= LSM6DSL_ACC_GYRO_DEN_EDGE_EN_MASK; //mask
cparata 0:e4f89df7a7a5 2984
cparata 0:e4f89df7a7a5 2985 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 2986 }
cparata 0:e4f89df7a7a5 2987
cparata 0:e4f89df7a7a5 2988 /*******************************************************************************
cparata 0:e4f89df7a7a5 2989 * Function Name : LSM6DSL_ACC_GYRO_W_HPM_G
cparata 0:e4f89df7a7a5 2990 * Description : Write HPM_G
cparata 0:e4f89df7a7a5 2991 * Input : LSM6DSL_ACC_GYRO_HPM_G_t
cparata 0:e4f89df7a7a5 2992 * Output : None
cparata 0:e4f89df7a7a5 2993 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 2994 *******************************************************************************/
cparata 0:e4f89df7a7a5 2995 status_t LSM6DSL_ACC_GYRO_W_HPM_G(void *handle, LSM6DSL_ACC_GYRO_HPM_G_t newValue)
cparata 0:e4f89df7a7a5 2996 {
cparata 0:e4f89df7a7a5 2997 u8_t value;
cparata 0:e4f89df7a7a5 2998
cparata 0:e4f89df7a7a5 2999 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3000 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3001
cparata 0:e4f89df7a7a5 3002 value &= ~LSM6DSL_ACC_GYRO_HPM_G_MASK;
cparata 0:e4f89df7a7a5 3003 value |= newValue;
cparata 0:e4f89df7a7a5 3004
cparata 0:e4f89df7a7a5 3005 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3006 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3007
cparata 0:e4f89df7a7a5 3008 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3009 }
cparata 0:e4f89df7a7a5 3010
cparata 0:e4f89df7a7a5 3011 /*******************************************************************************
cparata 0:e4f89df7a7a5 3012 * Function Name : LSM6DSL_ACC_GYRO_R_HPM_G
cparata 0:e4f89df7a7a5 3013 * Description : Read HPM_G
cparata 0:e4f89df7a7a5 3014 * Input : Pointer to LSM6DSL_ACC_GYRO_HPM_G_t
cparata 0:e4f89df7a7a5 3015 * Output : Status of HPM_G see LSM6DSL_ACC_GYRO_HPM_G_t
cparata 0:e4f89df7a7a5 3016 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3017 *******************************************************************************/
cparata 0:e4f89df7a7a5 3018 status_t LSM6DSL_ACC_GYRO_R_HPM_G(void *handle, LSM6DSL_ACC_GYRO_HPM_G_t *value)
cparata 0:e4f89df7a7a5 3019 {
cparata 0:e4f89df7a7a5 3020 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3021 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3022
cparata 0:e4f89df7a7a5 3023 *value &= LSM6DSL_ACC_GYRO_HPM_G_MASK; //mask
cparata 0:e4f89df7a7a5 3024
cparata 0:e4f89df7a7a5 3025 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3026 }
cparata 0:e4f89df7a7a5 3027
cparata 0:e4f89df7a7a5 3028 /*******************************************************************************
cparata 0:e4f89df7a7a5 3029 * Function Name : LSM6DSL_ACC_GYRO_W_RoundingOnStatusRegisters
cparata 0:e4f89df7a7a5 3030 * Description : Write HPM_G
cparata 0:e4f89df7a7a5 3031 * Input : LSM6DSL_ACC_GYRO_RND_STATUS_t
cparata 0:e4f89df7a7a5 3032 * Output : None
cparata 0:e4f89df7a7a5 3033 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3034 *******************************************************************************/
cparata 0:e4f89df7a7a5 3035 status_t LSM6DSL_ACC_GYRO_W_RoundingOnStatusRegisters(void *handle, LSM6DSL_ACC_GYRO_RND_STATUS_t newValue)
cparata 0:e4f89df7a7a5 3036 {
cparata 0:e4f89df7a7a5 3037 u8_t value;
cparata 0:e4f89df7a7a5 3038
cparata 0:e4f89df7a7a5 3039 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3040 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3041
cparata 0:e4f89df7a7a5 3042 value &= ~LSM6DSL_ACC_GYRO_RND_STATUS_MASK;
cparata 0:e4f89df7a7a5 3043 value |= newValue;
cparata 0:e4f89df7a7a5 3044
cparata 0:e4f89df7a7a5 3045 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3046 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3047
cparata 0:e4f89df7a7a5 3048 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3049 }
cparata 0:e4f89df7a7a5 3050
cparata 0:e4f89df7a7a5 3051 /*******************************************************************************
cparata 0:e4f89df7a7a5 3052 * Function Name : LSM6DSL_ACC_GYRO_R_RoundingOnStatusRegisters
cparata 0:e4f89df7a7a5 3053 * Description : Read HPM_G
cparata 0:e4f89df7a7a5 3054 * Input : Pointer to LSM6DSL_ACC_GYRO_RND_STATUS_t
cparata 0:e4f89df7a7a5 3055 * Output : Status of HPM_G see LSM6DSL_ACC_GYRO_RND_STATUS_t
cparata 0:e4f89df7a7a5 3056 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3057 *******************************************************************************/
cparata 0:e4f89df7a7a5 3058 status_t LSM6DSL_ACC_GYRO_R_RoundingOnStatusRegisters(void *handle, LSM6DSL_ACC_GYRO_RND_STATUS_t *value)
cparata 0:e4f89df7a7a5 3059 {
cparata 0:e4f89df7a7a5 3060 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1))
cparata 0:e4f89df7a7a5 3061 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3062
cparata 0:e4f89df7a7a5 3063 *value &= LSM6DSL_ACC_GYRO_RND_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 3064
cparata 0:e4f89df7a7a5 3065 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3066 }
cparata 0:e4f89df7a7a5 3067
cparata 0:e4f89df7a7a5 3068 /*******************************************************************************
cparata 0:e4f89df7a7a5 3069 * Function Name : LSM6DSL_ACC_GYRO_W_HPFilter_En
cparata 0:e4f89df7a7a5 3070 * Description : Write HP_EN
cparata 0:e4f89df7a7a5 3071 * Input : LSM6DSL_ACC_GYRO_HP_EN_t
cparata 0:e4f89df7a7a5 3072 * Output : None
cparata 0:e4f89df7a7a5 3073 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3074 *******************************************************************************/
cparata 0:e4f89df7a7a5 3075 status_t LSM6DSL_ACC_GYRO_W_HPFilter_En(void *handle, LSM6DSL_ACC_GYRO_HP_EN_t newValue)
cparata 0:e4f89df7a7a5 3076 {
cparata 0:e4f89df7a7a5 3077 u8_t value;
cparata 0:e4f89df7a7a5 3078
cparata 0:e4f89df7a7a5 3079 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3080 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3081
cparata 0:e4f89df7a7a5 3082 value &= ~LSM6DSL_ACC_GYRO_HP_EN_MASK;
cparata 0:e4f89df7a7a5 3083 value |= newValue;
cparata 0:e4f89df7a7a5 3084
cparata 0:e4f89df7a7a5 3085 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3086 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3087
cparata 0:e4f89df7a7a5 3088 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3089 }
cparata 0:e4f89df7a7a5 3090
cparata 0:e4f89df7a7a5 3091 /*******************************************************************************
cparata 0:e4f89df7a7a5 3092 * Function Name : LSM6DSL_ACC_GYRO_R_HPFilter_En
cparata 0:e4f89df7a7a5 3093 * Description : Read HP_EN
cparata 0:e4f89df7a7a5 3094 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_EN_t
cparata 0:e4f89df7a7a5 3095 * Output : Status of HP_EN see LSM6DSL_ACC_GYRO_HP_EN_t
cparata 0:e4f89df7a7a5 3096 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3097 *******************************************************************************/
cparata 0:e4f89df7a7a5 3098 status_t LSM6DSL_ACC_GYRO_R_HPFilter_En(void *handle, LSM6DSL_ACC_GYRO_HP_EN_t *value)
cparata 0:e4f89df7a7a5 3099 {
cparata 0:e4f89df7a7a5 3100 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3101 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3102
cparata 0:e4f89df7a7a5 3103 *value &= LSM6DSL_ACC_GYRO_HP_EN_MASK; //mask
cparata 0:e4f89df7a7a5 3104
cparata 0:e4f89df7a7a5 3105 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3106 }
cparata 0:e4f89df7a7a5 3107 /*******************************************************************************
cparata 0:e4f89df7a7a5 3108 * Function Name : LSM6DSL_ACC_GYRO_W_LP_Mode
cparata 0:e4f89df7a7a5 3109 * Description : Write LP_EN
cparata 0:e4f89df7a7a5 3110 * Input : LSM6DSL_ACC_GYRO_LP_EN_t
cparata 0:e4f89df7a7a5 3111 * Output : None
cparata 0:e4f89df7a7a5 3112 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3113 *******************************************************************************/
cparata 0:e4f89df7a7a5 3114 status_t LSM6DSL_ACC_GYRO_W_LP_Mode(void *handle, LSM6DSL_ACC_GYRO_LP_EN_t newValue)
cparata 0:e4f89df7a7a5 3115 {
cparata 0:e4f89df7a7a5 3116 u8_t value;
cparata 0:e4f89df7a7a5 3117
cparata 0:e4f89df7a7a5 3118 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3119 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3120
cparata 0:e4f89df7a7a5 3121 value &= ~LSM6DSL_ACC_GYRO_LP_EN_MASK;
cparata 0:e4f89df7a7a5 3122 value |= newValue;
cparata 0:e4f89df7a7a5 3123
cparata 0:e4f89df7a7a5 3124 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3125 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3126
cparata 0:e4f89df7a7a5 3127 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3128 }
cparata 0:e4f89df7a7a5 3129
cparata 0:e4f89df7a7a5 3130 /*******************************************************************************
cparata 0:e4f89df7a7a5 3131 * Function Name : LSM6DSL_ACC_GYRO_R_LP_Mode
cparata 0:e4f89df7a7a5 3132 * Description : Read LP_EN
cparata 0:e4f89df7a7a5 3133 * Input : Pointer to LSM6DSL_ACC_GYRO_LP_EN_t
cparata 0:e4f89df7a7a5 3134 * Output : Status of LP_EN see LSM6DSL_ACC_GYRO_LP_EN_t
cparata 0:e4f89df7a7a5 3135 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3136 *******************************************************************************/
cparata 0:e4f89df7a7a5 3137 status_t LSM6DSL_ACC_GYRO_R_LP_Mode(void *handle, LSM6DSL_ACC_GYRO_LP_EN_t *value)
cparata 0:e4f89df7a7a5 3138 {
cparata 0:e4f89df7a7a5 3139 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3140 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3141
cparata 0:e4f89df7a7a5 3142 *value &= LSM6DSL_ACC_GYRO_LP_EN_MASK; //mask
cparata 0:e4f89df7a7a5 3143
cparata 0:e4f89df7a7a5 3144 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3145 }
cparata 0:e4f89df7a7a5 3146
cparata 0:e4f89df7a7a5 3147 /*******************************************************************************
cparata 0:e4f89df7a7a5 3148 * Function Name : LSM6DSL_ACC_GYRO_W_ROUNDING_STATUS
cparata 0:e4f89df7a7a5 3149 * Description : Write ROUNDING_STATUS
cparata 0:e4f89df7a7a5 3150 * Input : LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t
cparata 0:e4f89df7a7a5 3151 * Output : None
cparata 0:e4f89df7a7a5 3152 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3153 *******************************************************************************/
cparata 0:e4f89df7a7a5 3154 status_t LSM6DSL_ACC_GYRO_W_ROUNDING_STATUS(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t newValue)
cparata 0:e4f89df7a7a5 3155 {
cparata 0:e4f89df7a7a5 3156 u8_t value;
cparata 0:e4f89df7a7a5 3157
cparata 0:e4f89df7a7a5 3158 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3159 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3160
cparata 0:e4f89df7a7a5 3161 value &= ~LSM6DSL_ACC_GYRO_ROUNDING_STATUS_MASK;
cparata 0:e4f89df7a7a5 3162 value |= newValue;
cparata 0:e4f89df7a7a5 3163
cparata 0:e4f89df7a7a5 3164 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3165 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3166
cparata 0:e4f89df7a7a5 3167 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3168 }
cparata 0:e4f89df7a7a5 3169
cparata 0:e4f89df7a7a5 3170 /*******************************************************************************
cparata 0:e4f89df7a7a5 3171 * Function Name : LSM6DSL_ACC_GYRO_R_ROUNDING_STATUS
cparata 0:e4f89df7a7a5 3172 * Description : Read ROUNDING_STATUS
cparata 0:e4f89df7a7a5 3173 * Input : Pointer to LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t
cparata 0:e4f89df7a7a5 3174 * Output : Status of ROUNDING_STATUS see LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t
cparata 0:e4f89df7a7a5 3175 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3176 *******************************************************************************/
cparata 0:e4f89df7a7a5 3177 status_t LSM6DSL_ACC_GYRO_R_ROUNDING_STATUS(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t *value)
cparata 0:e4f89df7a7a5 3178 {
cparata 0:e4f89df7a7a5 3179 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3180 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3181
cparata 0:e4f89df7a7a5 3182 *value &= LSM6DSL_ACC_GYRO_ROUNDING_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 3183
cparata 0:e4f89df7a7a5 3184 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3185 }
cparata 0:e4f89df7a7a5 3186
cparata 0:e4f89df7a7a5 3187 /*******************************************************************************
cparata 0:e4f89df7a7a5 3188 * Function Name : LSM6DSL_ACC_GYRO_W_HP_G_RST
cparata 0:e4f89df7a7a5 3189 * Description : Write HP_G_RST
cparata 0:e4f89df7a7a5 3190 * Input : LSM6DSL_ACC_GYRO_HP_G_RST_t
cparata 0:e4f89df7a7a5 3191 * Output : None
cparata 0:e4f89df7a7a5 3192 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3193 *******************************************************************************/
cparata 0:e4f89df7a7a5 3194 status_t LSM6DSL_ACC_GYRO_W_HP_G_RST(void *handle, LSM6DSL_ACC_GYRO_HP_G_RST_t newValue)
cparata 0:e4f89df7a7a5 3195 {
cparata 0:e4f89df7a7a5 3196 u8_t value;
cparata 0:e4f89df7a7a5 3197
cparata 0:e4f89df7a7a5 3198 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3199 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3200
cparata 0:e4f89df7a7a5 3201 value &= ~LSM6DSL_ACC_GYRO_HP_G_RST_MASK;
cparata 0:e4f89df7a7a5 3202 value |= newValue;
cparata 0:e4f89df7a7a5 3203
cparata 0:e4f89df7a7a5 3204 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:e4f89df7a7a5 3205 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3206
cparata 0:e4f89df7a7a5 3207 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3208 }
cparata 0:e4f89df7a7a5 3209
cparata 0:e4f89df7a7a5 3210 /*******************************************************************************
cparata 0:e4f89df7a7a5 3211 * Function Name : LSM6DSL_ACC_GYRO_R_HP_G_RST
cparata 0:e4f89df7a7a5 3212 * Description : Read HP_G_RST
cparata 0:e4f89df7a7a5 3213 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_G_RST_t
cparata 0:e4f89df7a7a5 3214 * Output : Status of HP_G_RST see LSM6DSL_ACC_GYRO_HP_G_RST_t
cparata 0:e4f89df7a7a5 3215 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3216 *******************************************************************************/
cparata 0:e4f89df7a7a5 3217 status_t LSM6DSL_ACC_GYRO_R_HP_G_RST(void *handle, LSM6DSL_ACC_GYRO_HP_G_RST_t *value)
cparata 0:e4f89df7a7a5 3218 {
cparata 0:e4f89df7a7a5 3219 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3220 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3221
cparata 0:e4f89df7a7a5 3222 *value &= LSM6DSL_ACC_GYRO_HP_G_RST_MASK; //mask
cparata 0:e4f89df7a7a5 3223
cparata 0:e4f89df7a7a5 3224 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3225 }
cparata 0:e4f89df7a7a5 3226
cparata 0:e4f89df7a7a5 3227 /*******************************************************************************
cparata 0:e4f89df7a7a5 3228 * Function Name : LSM6DSL_ACC_GYRO_W_InComposit
cparata 0:e4f89df7a7a5 3229 * Description : Write INPUT_COMPOSITE
cparata 0:e4f89df7a7a5 3230 * Input : LSM6DSL_ACC_GYRO_IN_COMP_t
cparata 0:e4f89df7a7a5 3231 * Output : None
cparata 0:e4f89df7a7a5 3232 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3233 *******************************************************************************/
cparata 0:e4f89df7a7a5 3234 status_t LSM6DSL_ACC_GYRO_W_InComposit(void *handle, LSM6DSL_ACC_GYRO_IN_COMP_t newValue)
cparata 0:e4f89df7a7a5 3235 {
cparata 0:e4f89df7a7a5 3236 u8_t value;
cparata 0:e4f89df7a7a5 3237
cparata 0:e4f89df7a7a5 3238 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3239 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3240
cparata 0:e4f89df7a7a5 3241 value &= ~LSM6DSL_ACC_GYRO_IN_COMP_MASK;
cparata 0:e4f89df7a7a5 3242 value |= newValue;
cparata 0:e4f89df7a7a5 3243
cparata 0:e4f89df7a7a5 3244 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3245 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3246
cparata 0:e4f89df7a7a5 3247 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3248 }
cparata 0:e4f89df7a7a5 3249
cparata 0:e4f89df7a7a5 3250 /*******************************************************************************
cparata 0:e4f89df7a7a5 3251 * Function Name : LSM6DSL_ACC_GYRO_R_InComposit
cparata 0:e4f89df7a7a5 3252 * Description : Read INPUT_COMPOSITE
cparata 0:e4f89df7a7a5 3253 * Input : Pointer to LSM6DSL_ACC_GYRO_IN_COMP_t
cparata 0:e4f89df7a7a5 3254 * Output : Status of INPUT_COMPOSITE see LSM6DSL_ACC_GYRO_IN_COMP_t
cparata 0:e4f89df7a7a5 3255 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3256 *******************************************************************************/
cparata 0:e4f89df7a7a5 3257 status_t LSM6DSL_ACC_GYRO_R_InComposit(void *handle, LSM6DSL_ACC_GYRO_IN_COMP_t *value)
cparata 0:e4f89df7a7a5 3258 {
cparata 0:e4f89df7a7a5 3259 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3260 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3261
cparata 0:e4f89df7a7a5 3262 *value &= LSM6DSL_ACC_GYRO_IN_COMP_MASK; //mask
cparata 0:e4f89df7a7a5 3263
cparata 0:e4f89df7a7a5 3264 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3265 }
cparata 0:e4f89df7a7a5 3266
cparata 0:e4f89df7a7a5 3267 /*******************************************************************************
cparata 0:e4f89df7a7a5 3268 * Function Name : LSM6DSL_ACC_GYRO_W_HPfilterReference
cparata 0:e4f89df7a7a5 3269 * Description : Write HP_REF_MODE
cparata 0:e4f89df7a7a5 3270 * Input : LSM6DSL_ACC_GYRO_HP_REF_MODE_t
cparata 0:e4f89df7a7a5 3271 * Output : None
cparata 0:e4f89df7a7a5 3272 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3273 *******************************************************************************/
cparata 0:e4f89df7a7a5 3274 status_t LSM6DSL_ACC_GYRO_W_HPfilterReference(void *handle, LSM6DSL_ACC_GYRO_HP_REF_MODE_t newValue)
cparata 0:e4f89df7a7a5 3275 {
cparata 0:e4f89df7a7a5 3276 u8_t value;
cparata 0:e4f89df7a7a5 3277
cparata 0:e4f89df7a7a5 3278 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3279 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3280
cparata 0:e4f89df7a7a5 3281 value &= ~LSM6DSL_ACC_GYRO_HP_REF_MODE_MASK;
cparata 0:e4f89df7a7a5 3282 value |= newValue;
cparata 0:e4f89df7a7a5 3283
cparata 0:e4f89df7a7a5 3284 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3285 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3286
cparata 0:e4f89df7a7a5 3287 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3288 }
cparata 0:e4f89df7a7a5 3289
cparata 0:e4f89df7a7a5 3290 /*******************************************************************************
cparata 0:e4f89df7a7a5 3291 * Function Name : LSM6DSL_ACC_GYRO_R_HPfilterReference
cparata 0:e4f89df7a7a5 3292 * Description : Read HP_REF_MODE
cparata 0:e4f89df7a7a5 3293 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_REF_MODE_t
cparata 0:e4f89df7a7a5 3294 * Output : Status of HP_REF_MODE see LSM6DSL_ACC_GYRO_HP_REF_MODE_t
cparata 0:e4f89df7a7a5 3295 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3296 *******************************************************************************/
cparata 0:e4f89df7a7a5 3297 status_t LSM6DSL_ACC_GYRO_R_HPfilterReference(void *handle, LSM6DSL_ACC_GYRO_HP_REF_MODE_t *value)
cparata 0:e4f89df7a7a5 3298 {
cparata 0:e4f89df7a7a5 3299 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3300 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3301
cparata 0:e4f89df7a7a5 3302 *value &= LSM6DSL_ACC_GYRO_HP_REF_MODE_MASK; //mask
cparata 0:e4f89df7a7a5 3303
cparata 0:e4f89df7a7a5 3304 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3305 }
cparata 0:e4f89df7a7a5 3306
cparata 0:e4f89df7a7a5 3307 /*******************************************************************************
cparata 0:e4f89df7a7a5 3308 * Function Name : LSM6DSL_ACC_GYRO_W_HPCF_XL
cparata 0:e4f89df7a7a5 3309 * Description : Write HPCF_XL
cparata 0:e4f89df7a7a5 3310 * Input : LSM6DSL_ACC_GYRO_HPCF_XL_t
cparata 0:e4f89df7a7a5 3311 * Output : None
cparata 0:e4f89df7a7a5 3312 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3313 *******************************************************************************/
cparata 0:e4f89df7a7a5 3314 status_t LSM6DSL_ACC_GYRO_W_HPCF_XL(void *handle, LSM6DSL_ACC_GYRO_HPCF_XL_t newValue)
cparata 0:e4f89df7a7a5 3315 {
cparata 0:e4f89df7a7a5 3316 u8_t value;
cparata 0:e4f89df7a7a5 3317
cparata 0:e4f89df7a7a5 3318 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3319 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3320
cparata 0:e4f89df7a7a5 3321 value &= ~LSM6DSL_ACC_GYRO_HPCF_XL_MASK;
cparata 0:e4f89df7a7a5 3322 value |= newValue;
cparata 0:e4f89df7a7a5 3323
cparata 0:e4f89df7a7a5 3324 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3325 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3326
cparata 0:e4f89df7a7a5 3327 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3328 }
cparata 0:e4f89df7a7a5 3329
cparata 0:e4f89df7a7a5 3330 /*******************************************************************************
cparata 0:e4f89df7a7a5 3331 * Function Name : LSM6DSL_ACC_GYRO_R_HPCF_XL
cparata 0:e4f89df7a7a5 3332 * Description : Read HPCF_XL
cparata 0:e4f89df7a7a5 3333 * Input : Pointer to LSM6DSL_ACC_GYRO_HPCF_XL_t
cparata 0:e4f89df7a7a5 3334 * Output : Status of HPCF_XL see LSM6DSL_ACC_GYRO_HPCF_XL_t
cparata 0:e4f89df7a7a5 3335 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3336 *******************************************************************************/
cparata 0:e4f89df7a7a5 3337 status_t LSM6DSL_ACC_GYRO_R_HPCF_XL(void *handle, LSM6DSL_ACC_GYRO_HPCF_XL_t *value)
cparata 0:e4f89df7a7a5 3338 {
cparata 0:e4f89df7a7a5 3339 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3340 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3341
cparata 0:e4f89df7a7a5 3342 *value &= LSM6DSL_ACC_GYRO_HPCF_XL_MASK; //mask
cparata 0:e4f89df7a7a5 3343
cparata 0:e4f89df7a7a5 3344 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3345 }
cparata 0:e4f89df7a7a5 3346
cparata 0:e4f89df7a7a5 3347 /*******************************************************************************
cparata 0:e4f89df7a7a5 3348 * Function Name : LSM6DSL_ACC_GYRO_W_LowPassFiltSel_XL
cparata 0:e4f89df7a7a5 3349 * Description : Write LPF2_XL_EN
cparata 0:e4f89df7a7a5 3350 * Input : LSM6DSL_ACC_GYRO_LPF2_XL_t
cparata 0:e4f89df7a7a5 3351 * Output : None
cparata 0:e4f89df7a7a5 3352 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3353 *******************************************************************************/
cparata 0:e4f89df7a7a5 3354 status_t LSM6DSL_ACC_GYRO_W_LowPassFiltSel_XL(void *handle, LSM6DSL_ACC_GYRO_LPF2_XL_t newValue)
cparata 0:e4f89df7a7a5 3355 {
cparata 0:e4f89df7a7a5 3356 u8_t value;
cparata 0:e4f89df7a7a5 3357
cparata 0:e4f89df7a7a5 3358 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3359 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3360
cparata 0:e4f89df7a7a5 3361 value &= ~LSM6DSL_ACC_GYRO_LPF2_XL_MASK;
cparata 0:e4f89df7a7a5 3362 value |= newValue;
cparata 0:e4f89df7a7a5 3363
cparata 0:e4f89df7a7a5 3364 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3365 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3366
cparata 0:e4f89df7a7a5 3367 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3368 }
cparata 0:e4f89df7a7a5 3369
cparata 0:e4f89df7a7a5 3370 /*******************************************************************************
cparata 0:e4f89df7a7a5 3371 * Function Name : LSM6DSL_ACC_GYRO_R_LowPassFiltSel_XL
cparata 0:e4f89df7a7a5 3372 * Description : Read LPF2_XL_EN
cparata 0:e4f89df7a7a5 3373 * Input : Pointer to LSM6DSL_ACC_GYRO_LPF2_XL_t
cparata 0:e4f89df7a7a5 3374 * Output : Status of LPF2_XL_EN see LSM6DSL_ACC_GYRO_LPF2_XL_t
cparata 0:e4f89df7a7a5 3375 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3376 *******************************************************************************/
cparata 0:e4f89df7a7a5 3377 status_t LSM6DSL_ACC_GYRO_R_LowPassFiltSel_XL(void *handle, LSM6DSL_ACC_GYRO_LPF2_XL_t *value)
cparata 0:e4f89df7a7a5 3378 {
cparata 0:e4f89df7a7a5 3379 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3380 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3381
cparata 0:e4f89df7a7a5 3382 *value &= LSM6DSL_ACC_GYRO_LPF2_XL_MASK; //mask
cparata 0:e4f89df7a7a5 3383
cparata 0:e4f89df7a7a5 3384 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3385 }
cparata 0:e4f89df7a7a5 3386
cparata 0:e4f89df7a7a5 3387 /*******************************************************************************
cparata 0:e4f89df7a7a5 3388 * Function Name : LSM6DSL_ACC_GYRO_W_LOW_PASS_ON_6D
cparata 0:e4f89df7a7a5 3389 * Description : Write LOW_PASS_ON_6D
cparata 0:e4f89df7a7a5 3390 * Input : LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t
cparata 0:e4f89df7a7a5 3391 * Output : None
cparata 0:e4f89df7a7a5 3392 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3393 *******************************************************************************/
cparata 0:e4f89df7a7a5 3394 status_t LSM6DSL_ACC_GYRO_W_LOW_PASS_ON_6D(void *handle, LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t newValue)
cparata 0:e4f89df7a7a5 3395 {
cparata 0:e4f89df7a7a5 3396 u8_t value;
cparata 0:e4f89df7a7a5 3397
cparata 0:e4f89df7a7a5 3398 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3399 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3400
cparata 0:e4f89df7a7a5 3401 value &= ~LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_MASK;
cparata 0:e4f89df7a7a5 3402 value |= newValue;
cparata 0:e4f89df7a7a5 3403
cparata 0:e4f89df7a7a5 3404 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3405 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3406
cparata 0:e4f89df7a7a5 3407 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3408 }
cparata 0:e4f89df7a7a5 3409
cparata 0:e4f89df7a7a5 3410 /*******************************************************************************
cparata 0:e4f89df7a7a5 3411 * Function Name : LSM6DSL_ACC_GYRO_R_LOW_PASS_ON_6D
cparata 0:e4f89df7a7a5 3412 * Description : Read LOW_PASS_ON_6D
cparata 0:e4f89df7a7a5 3413 * Input : Pointer to LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t
cparata 0:e4f89df7a7a5 3414 * Output : Status of LOW_PASS_ON_6D see LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t
cparata 0:e4f89df7a7a5 3415 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3416 *******************************************************************************/
cparata 0:e4f89df7a7a5 3417 status_t LSM6DSL_ACC_GYRO_R_LOW_PASS_ON_6D(void *handle, LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t *value)
cparata 0:e4f89df7a7a5 3418 {
cparata 0:e4f89df7a7a5 3419 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3420 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3421
cparata 0:e4f89df7a7a5 3422 *value &= LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_MASK; //mask
cparata 0:e4f89df7a7a5 3423
cparata 0:e4f89df7a7a5 3424 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3425 }
cparata 0:e4f89df7a7a5 3426
cparata 0:e4f89df7a7a5 3427 /*******************************************************************************
cparata 0:e4f89df7a7a5 3428 * Function Name : LSM6DSL_ACC_GYRO_W_HP_SLOPE_XL
cparata 0:e4f89df7a7a5 3429 * Description : Write HP_SLOPE_XL_EN
cparata 0:e4f89df7a7a5 3430 * Input : LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t
cparata 0:e4f89df7a7a5 3431 * Output : None
cparata 0:e4f89df7a7a5 3432 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3433 *******************************************************************************/
cparata 0:e4f89df7a7a5 3434 status_t LSM6DSL_ACC_GYRO_W_HP_SLOPE_XL(void *handle, LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t newValue)
cparata 0:e4f89df7a7a5 3435 {
cparata 0:e4f89df7a7a5 3436 u8_t value;
cparata 0:e4f89df7a7a5 3437
cparata 0:e4f89df7a7a5 3438 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3439 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3440
cparata 0:e4f89df7a7a5 3441 value &= ~LSM6DSL_ACC_GYRO_HP_SLOPE_XL_MASK;
cparata 0:e4f89df7a7a5 3442 value |= newValue;
cparata 0:e4f89df7a7a5 3443
cparata 0:e4f89df7a7a5 3444 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3445 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3446
cparata 0:e4f89df7a7a5 3447 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3448 }
cparata 0:e4f89df7a7a5 3449
cparata 0:e4f89df7a7a5 3450 /*******************************************************************************
cparata 0:e4f89df7a7a5 3451 * Function Name : LSM6DSL_ACC_GYRO_R_HP_SLOPE_XL
cparata 0:e4f89df7a7a5 3452 * Description : Read HP_SLOPE_XL_EN
cparata 0:e4f89df7a7a5 3453 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t
cparata 0:e4f89df7a7a5 3454 * Output : Status of HP_SLOPE_XL_EN see LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t
cparata 0:e4f89df7a7a5 3455 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3456 *******************************************************************************/
cparata 0:e4f89df7a7a5 3457 status_t LSM6DSL_ACC_GYRO_R_HP_SLOPE_XL(void *handle, LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t *value)
cparata 0:e4f89df7a7a5 3458 {
cparata 0:e4f89df7a7a5 3459 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3460 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3461
cparata 0:e4f89df7a7a5 3462 *value &= LSM6DSL_ACC_GYRO_HP_SLOPE_XL_MASK; //mask
cparata 0:e4f89df7a7a5 3463
cparata 0:e4f89df7a7a5 3464 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3465 }
cparata 0:e4f89df7a7a5 3466
cparata 0:e4f89df7a7a5 3467 /*******************************************************************************
cparata 0:e4f89df7a7a5 3468 * Function Name : LSM6DSL_ACC_GYRO_W_SOFT
cparata 0:e4f89df7a7a5 3469 * Description : Write SOFT_EN
cparata 0:e4f89df7a7a5 3470 * Input : LSM6DSL_ACC_GYRO_SOFT_t
cparata 0:e4f89df7a7a5 3471 * Output : None
cparata 0:e4f89df7a7a5 3472 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3473 *******************************************************************************/
cparata 0:e4f89df7a7a5 3474 status_t LSM6DSL_ACC_GYRO_W_SOFT(void *handle, LSM6DSL_ACC_GYRO_SOFT_t newValue)
cparata 0:e4f89df7a7a5 3475 {
cparata 0:e4f89df7a7a5 3476 u8_t value;
cparata 0:e4f89df7a7a5 3477
cparata 0:e4f89df7a7a5 3478 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL9_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3479 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3480
cparata 0:e4f89df7a7a5 3481 value &= ~LSM6DSL_ACC_GYRO_SOFT_MASK;
cparata 0:e4f89df7a7a5 3482 value |= newValue;
cparata 0:e4f89df7a7a5 3483
cparata 0:e4f89df7a7a5 3484 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL9_XL, &value, 1) )
cparata 0:e4f89df7a7a5 3485 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3486
cparata 0:e4f89df7a7a5 3487 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3488 }
cparata 0:e4f89df7a7a5 3489
cparata 0:e4f89df7a7a5 3490 /*******************************************************************************
cparata 0:e4f89df7a7a5 3491 * Function Name : LSM6DSL_ACC_GYRO_R_SOFT
cparata 0:e4f89df7a7a5 3492 * Description : Read SOFT_EN
cparata 0:e4f89df7a7a5 3493 * Input : Pointer to LSM6DSL_ACC_GYRO_SOFT_t
cparata 0:e4f89df7a7a5 3494 * Output : Status of SOFT_EN see LSM6DSL_ACC_GYRO_SOFT_t
cparata 0:e4f89df7a7a5 3495 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3496 *******************************************************************************/
cparata 0:e4f89df7a7a5 3497 status_t LSM6DSL_ACC_GYRO_R_SOFT(void *handle, LSM6DSL_ACC_GYRO_SOFT_t *value)
cparata 0:e4f89df7a7a5 3498 {
cparata 0:e4f89df7a7a5 3499 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL9_XL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3500 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3501
cparata 0:e4f89df7a7a5 3502 *value &= LSM6DSL_ACC_GYRO_SOFT_MASK; //mask
cparata 0:e4f89df7a7a5 3503
cparata 0:e4f89df7a7a5 3504 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3505 }
cparata 0:e4f89df7a7a5 3506
cparata 0:e4f89df7a7a5 3507 /*******************************************************************************
cparata 0:e4f89df7a7a5 3508 * Function Name : LSM6DSL_ACC_GYRO_W_SignifcantMotion
cparata 0:e4f89df7a7a5 3509 * Description : Write SIGN_MOTION_EN
cparata 0:e4f89df7a7a5 3510 * Input : LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t
cparata 0:e4f89df7a7a5 3511 * Output : None
cparata 0:e4f89df7a7a5 3512 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3513 *******************************************************************************/
cparata 0:e4f89df7a7a5 3514 status_t LSM6DSL_ACC_GYRO_W_SignifcantMotion(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t newValue)
cparata 0:e4f89df7a7a5 3515 {
cparata 0:e4f89df7a7a5 3516 u8_t value;
cparata 0:e4f89df7a7a5 3517
cparata 0:e4f89df7a7a5 3518 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3519 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3520
cparata 0:e4f89df7a7a5 3521 value &= ~LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_MASK;
cparata 0:e4f89df7a7a5 3522 value |= newValue;
cparata 0:e4f89df7a7a5 3523
cparata 0:e4f89df7a7a5 3524 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3525 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3526
cparata 0:e4f89df7a7a5 3527 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3528 }
cparata 0:e4f89df7a7a5 3529
cparata 0:e4f89df7a7a5 3530 /*******************************************************************************
cparata 0:e4f89df7a7a5 3531 * Function Name : LSM6DSL_ACC_GYRO_R_SignifcantMotion
cparata 0:e4f89df7a7a5 3532 * Description : Read SIGN_MOTION_EN
cparata 0:e4f89df7a7a5 3533 * Input : Pointer to LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t
cparata 0:e4f89df7a7a5 3534 * Output : Status of SIGN_MOTION_EN see LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t
cparata 0:e4f89df7a7a5 3535 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3536 *******************************************************************************/
cparata 0:e4f89df7a7a5 3537 status_t LSM6DSL_ACC_GYRO_R_SignifcantMotion(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t *value)
cparata 0:e4f89df7a7a5 3538 {
cparata 0:e4f89df7a7a5 3539 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3540 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3541
cparata 0:e4f89df7a7a5 3542 *value &= LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_MASK; //mask
cparata 0:e4f89df7a7a5 3543
cparata 0:e4f89df7a7a5 3544 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3545 }
cparata 0:e4f89df7a7a5 3546 /*******************************************************************************
cparata 0:e4f89df7a7a5 3547 * Function Name : LSM6DSL_ACC_GYRO_W_PedoStepReset
cparata 0:e4f89df7a7a5 3548 * Description : Write PEDO_RST_STEP
cparata 0:e4f89df7a7a5 3549 * Input : LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t
cparata 0:e4f89df7a7a5 3550 * Output : None
cparata 0:e4f89df7a7a5 3551 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3552 *******************************************************************************/
cparata 0:e4f89df7a7a5 3553 status_t LSM6DSL_ACC_GYRO_W_PedoStepReset(void *handle, LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t newValue)
cparata 0:e4f89df7a7a5 3554 {
cparata 0:e4f89df7a7a5 3555 u8_t value;
cparata 0:e4f89df7a7a5 3556
cparata 0:e4f89df7a7a5 3557 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3558 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3559
cparata 0:e4f89df7a7a5 3560 value &= ~LSM6DSL_ACC_GYRO_PEDO_RST_STEP_MASK;
cparata 0:e4f89df7a7a5 3561 value |= newValue;
cparata 0:e4f89df7a7a5 3562
cparata 0:e4f89df7a7a5 3563 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3564 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3565
cparata 0:e4f89df7a7a5 3566 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3567 }
cparata 0:e4f89df7a7a5 3568
cparata 0:e4f89df7a7a5 3569 /*******************************************************************************
cparata 0:e4f89df7a7a5 3570 * Function Name : LSM6DSL_ACC_GYRO_R_PedoStepReset
cparata 0:e4f89df7a7a5 3571 * Description : Read PEDO_RST_STEP
cparata 0:e4f89df7a7a5 3572 * Input : Pointer to LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t
cparata 0:e4f89df7a7a5 3573 * Output : Status of PEDO_RST_STEP see LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t
cparata 0:e4f89df7a7a5 3574 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3575 *******************************************************************************/
cparata 0:e4f89df7a7a5 3576 status_t LSM6DSL_ACC_GYRO_R_PedoStepReset(void *handle, LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t *value)
cparata 0:e4f89df7a7a5 3577 {
cparata 0:e4f89df7a7a5 3578 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3579 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3580
cparata 0:e4f89df7a7a5 3581 *value &= LSM6DSL_ACC_GYRO_PEDO_RST_STEP_MASK; //mask
cparata 0:e4f89df7a7a5 3582
cparata 0:e4f89df7a7a5 3583 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3584 }
cparata 0:e4f89df7a7a5 3585 /*******************************************************************************
cparata 0:e4f89df7a7a5 3586 * Function Name : LSM6DSL_ACC_GYRO_W_TILT
cparata 0:e4f89df7a7a5 3587 * Description : Write XEN_G
cparata 0:e4f89df7a7a5 3588 * Input : LSM6DSL_ACC_GYRO_TILT_G_t
cparata 0:e4f89df7a7a5 3589 * Output : None
cparata 0:e4f89df7a7a5 3590 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3591 *******************************************************************************/
cparata 0:e4f89df7a7a5 3592 status_t LSM6DSL_ACC_GYRO_W_TILT(void *handle, LSM6DSL_ACC_GYRO_TILT_G_t newValue)
cparata 0:e4f89df7a7a5 3593 {
cparata 0:e4f89df7a7a5 3594 u8_t value;
cparata 0:e4f89df7a7a5 3595
cparata 0:e4f89df7a7a5 3596 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3597 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3598
cparata 0:e4f89df7a7a5 3599 value &= ~LSM6DSL_ACC_GYRO_TILT_MASK;
cparata 0:e4f89df7a7a5 3600 value |= newValue;
cparata 0:e4f89df7a7a5 3601
cparata 0:e4f89df7a7a5 3602 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3603 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3604
cparata 0:e4f89df7a7a5 3605 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3606 }
cparata 0:e4f89df7a7a5 3607
cparata 0:e4f89df7a7a5 3608 /*******************************************************************************
cparata 0:e4f89df7a7a5 3609 * Function Name : LSM6DSL_ACC_GYRO_R_TILT
cparata 0:e4f89df7a7a5 3610 * Description : Read XEN_G
cparata 0:e4f89df7a7a5 3611 * Input : Pointer to LSM6DSL_ACC_GYRO_TILT_G_t
cparata 0:e4f89df7a7a5 3612 * Output : Status of XEN_G see LSM6DSL_ACC_GYRO_TILT_G_t
cparata 0:e4f89df7a7a5 3613 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3614 *******************************************************************************/
cparata 0:e4f89df7a7a5 3615 status_t LSM6DSL_ACC_GYRO_R_TILT(void *handle, LSM6DSL_ACC_GYRO_TILT_G_t *value)
cparata 0:e4f89df7a7a5 3616 {
cparata 0:e4f89df7a7a5 3617 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3618 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3619
cparata 0:e4f89df7a7a5 3620 *value &= LSM6DSL_ACC_GYRO_TILT_MASK; //mask
cparata 0:e4f89df7a7a5 3621
cparata 0:e4f89df7a7a5 3622 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3623 }
cparata 0:e4f89df7a7a5 3624 /*******************************************************************************
cparata 0:e4f89df7a7a5 3625 * Function Name : LSM6DSL_ACC_GYRO_W_PEDO
cparata 0:e4f89df7a7a5 3626 * Description : Write PEDO_EN
cparata 0:e4f89df7a7a5 3627 * Input : LSM6DSL_ACC_GYRO_PEDO_t
cparata 0:e4f89df7a7a5 3628 * Output : None
cparata 0:e4f89df7a7a5 3629 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3630 *******************************************************************************/
cparata 0:e4f89df7a7a5 3631 status_t LSM6DSL_ACC_GYRO_W_PEDO(void *handle, LSM6DSL_ACC_GYRO_PEDO_t newValue)
cparata 0:e4f89df7a7a5 3632 {
cparata 0:e4f89df7a7a5 3633 u8_t value;
cparata 0:e4f89df7a7a5 3634
cparata 0:e4f89df7a7a5 3635 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3636 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3637
cparata 0:e4f89df7a7a5 3638 value &= ~LSM6DSL_ACC_GYRO_PEDO_MASK;
cparata 0:e4f89df7a7a5 3639 value |= newValue;
cparata 0:e4f89df7a7a5 3640
cparata 0:e4f89df7a7a5 3641 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3642 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3643
cparata 0:e4f89df7a7a5 3644 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3645 }
cparata 0:e4f89df7a7a5 3646
cparata 0:e4f89df7a7a5 3647 /*******************************************************************************
cparata 0:e4f89df7a7a5 3648 * Function Name : LSM6DSL_ACC_GYRO_R_PEDO
cparata 0:e4f89df7a7a5 3649 * Description : Read PEDO_EN
cparata 0:e4f89df7a7a5 3650 * Input : Pointer to LSM6DSL_ACC_GYRO_PEDO_t
cparata 0:e4f89df7a7a5 3651 * Output : Status of PEDO_EN see LSM6DSL_ACC_GYRO_PEDO_t
cparata 0:e4f89df7a7a5 3652 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3653 *******************************************************************************/
cparata 0:e4f89df7a7a5 3654 status_t LSM6DSL_ACC_GYRO_R_PEDO(void *handle, LSM6DSL_ACC_GYRO_PEDO_t *value)
cparata 0:e4f89df7a7a5 3655 {
cparata 0:e4f89df7a7a5 3656 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3657 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3658
cparata 0:e4f89df7a7a5 3659 *value &= LSM6DSL_ACC_GYRO_PEDO_MASK; //mask
cparata 0:e4f89df7a7a5 3660
cparata 0:e4f89df7a7a5 3661 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3662 }
cparata 0:e4f89df7a7a5 3663
cparata 0:e4f89df7a7a5 3664 /*******************************************************************************
cparata 0:e4f89df7a7a5 3665 * Function Name : LSM6DSL_ACC_GYRO_W_TIMER
cparata 0:e4f89df7a7a5 3666 * Description : Write TIMER_EN
cparata 0:e4f89df7a7a5 3667 * Input : LSM6DSL_ACC_GYRO_TIMER_t
cparata 0:e4f89df7a7a5 3668 * Output : None
cparata 0:e4f89df7a7a5 3669 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3670 *******************************************************************************/
cparata 0:e4f89df7a7a5 3671 status_t LSM6DSL_ACC_GYRO_W_TIMER(void *handle, LSM6DSL_ACC_GYRO_TIMER_t newValue)
cparata 0:e4f89df7a7a5 3672 {
cparata 0:e4f89df7a7a5 3673 u8_t value;
cparata 0:e4f89df7a7a5 3674
cparata 0:e4f89df7a7a5 3675 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3676 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3677
cparata 0:e4f89df7a7a5 3678 value &= ~LSM6DSL_ACC_GYRO_TIMER_MASK;
cparata 0:e4f89df7a7a5 3679 value |= newValue;
cparata 0:e4f89df7a7a5 3680
cparata 0:e4f89df7a7a5 3681 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3682 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3683
cparata 0:e4f89df7a7a5 3684 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3685 }
cparata 0:e4f89df7a7a5 3686
cparata 0:e4f89df7a7a5 3687 /*******************************************************************************
cparata 0:e4f89df7a7a5 3688 * Function Name : LSM6DSL_ACC_GYRO_R_TIMER
cparata 0:e4f89df7a7a5 3689 * Description : Read TIMER_EN
cparata 0:e4f89df7a7a5 3690 * Input : Pointer to LSM6DSL_ACC_GYRO_TIMER_t
cparata 0:e4f89df7a7a5 3691 * Output : Status of TIMER_EN see LSM6DSL_ACC_GYRO_TIMER_t
cparata 0:e4f89df7a7a5 3692 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3693 *******************************************************************************/
cparata 0:e4f89df7a7a5 3694 status_t LSM6DSL_ACC_GYRO_R_TIMER(void *handle, LSM6DSL_ACC_GYRO_TIMER_t *value)
cparata 0:e4f89df7a7a5 3695 {
cparata 0:e4f89df7a7a5 3696 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3697 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3698
cparata 0:e4f89df7a7a5 3699 *value &= LSM6DSL_ACC_GYRO_TIMER_MASK; //mask
cparata 0:e4f89df7a7a5 3700
cparata 0:e4f89df7a7a5 3701 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3702 }
cparata 0:e4f89df7a7a5 3703
cparata 0:e4f89df7a7a5 3704 /*******************************************************************************
cparata 0:e4f89df7a7a5 3705 * Function Name : LSM6DSL_ACC_GYRO_W_FUNC_EN
cparata 0:e4f89df7a7a5 3706 * Description : Write FUNC_EN
cparata 0:e4f89df7a7a5 3707 * Input : LSM6DSL_ACC_GYRO_FUNC_EN_t
cparata 0:e4f89df7a7a5 3708 * Output : None
cparata 0:e4f89df7a7a5 3709 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3710 *******************************************************************************/
cparata 0:e4f89df7a7a5 3711 status_t LSM6DSL_ACC_GYRO_W_FUNC_EN(void *handle, LSM6DSL_ACC_GYRO_FUNC_EN_t newValue)
cparata 0:e4f89df7a7a5 3712 {
cparata 0:e4f89df7a7a5 3713 u8_t value;
cparata 0:e4f89df7a7a5 3714
cparata 0:e4f89df7a7a5 3715 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3716 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3717
cparata 0:e4f89df7a7a5 3718 value &= ~LSM6DSL_ACC_GYRO_FUNC_EN_MASK;
cparata 0:e4f89df7a7a5 3719 value |= newValue;
cparata 0:e4f89df7a7a5 3720
cparata 0:e4f89df7a7a5 3721 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:e4f89df7a7a5 3722 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3723
cparata 0:e4f89df7a7a5 3724 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3725 }
cparata 0:e4f89df7a7a5 3726
cparata 0:e4f89df7a7a5 3727 /*******************************************************************************
cparata 0:e4f89df7a7a5 3728 * Function Name : LSM6DSL_ACC_GYRO_R_FUNC_EN
cparata 0:e4f89df7a7a5 3729 * Description : Read FUNC_EN
cparata 0:e4f89df7a7a5 3730 * Input : Pointer to LSM6DSL_ACC_GYRO_FUNC_EN_t
cparata 0:e4f89df7a7a5 3731 * Output : Status of FUNC_EN see LSM6DSL_ACC_GYRO_FUNC_EN_t
cparata 0:e4f89df7a7a5 3732 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3733 *******************************************************************************/
cparata 0:e4f89df7a7a5 3734 status_t LSM6DSL_ACC_GYRO_R_FUNC_EN(void *handle, LSM6DSL_ACC_GYRO_FUNC_EN_t *value)
cparata 0:e4f89df7a7a5 3735 {
cparata 0:e4f89df7a7a5 3736 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3737 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3738
cparata 0:e4f89df7a7a5 3739 *value &= LSM6DSL_ACC_GYRO_FUNC_EN_MASK; //mask
cparata 0:e4f89df7a7a5 3740
cparata 0:e4f89df7a7a5 3741 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3742 }
cparata 0:e4f89df7a7a5 3743
cparata 0:e4f89df7a7a5 3744 /*******************************************************************************
cparata 0:e4f89df7a7a5 3745 * Function Name : LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable
cparata 0:e4f89df7a7a5 3746 * Description : Write MASTER_ON
cparata 0:e4f89df7a7a5 3747 * Input : LSM6DSL_ACC_GYRO_MASTER_ON_t
cparata 0:e4f89df7a7a5 3748 * Output : None
cparata 0:e4f89df7a7a5 3749 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3750 *******************************************************************************/
cparata 0:e4f89df7a7a5 3751 status_t LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(void *handle, LSM6DSL_ACC_GYRO_MASTER_ON_t newValue)
cparata 0:e4f89df7a7a5 3752 {
cparata 0:e4f89df7a7a5 3753 u8_t value;
cparata 0:e4f89df7a7a5 3754
cparata 0:e4f89df7a7a5 3755 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3756 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3757
cparata 0:e4f89df7a7a5 3758 value &= ~LSM6DSL_ACC_GYRO_MASTER_ON_MASK;
cparata 0:e4f89df7a7a5 3759 value |= newValue;
cparata 0:e4f89df7a7a5 3760
cparata 0:e4f89df7a7a5 3761 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3762 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3763
cparata 0:e4f89df7a7a5 3764 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3765 }
cparata 0:e4f89df7a7a5 3766
cparata 0:e4f89df7a7a5 3767 /*******************************************************************************
cparata 0:e4f89df7a7a5 3768 * Function Name : LSM6DSL_ACC_GYRO_R_I2C_MASTER_Enable
cparata 0:e4f89df7a7a5 3769 * Description : Read MASTER_ON
cparata 0:e4f89df7a7a5 3770 * Input : Pointer to LSM6DSL_ACC_GYRO_MASTER_ON_t
cparata 0:e4f89df7a7a5 3771 * Output : Status of MASTER_ON see LSM6DSL_ACC_GYRO_MASTER_ON_t
cparata 0:e4f89df7a7a5 3772 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3773 *******************************************************************************/
cparata 0:e4f89df7a7a5 3774 status_t LSM6DSL_ACC_GYRO_R_I2C_MASTER_Enable(void *handle, LSM6DSL_ACC_GYRO_MASTER_ON_t *value)
cparata 0:e4f89df7a7a5 3775 {
cparata 0:e4f89df7a7a5 3776 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3777 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3778
cparata 0:e4f89df7a7a5 3779 *value &= LSM6DSL_ACC_GYRO_MASTER_ON_MASK; //mask
cparata 0:e4f89df7a7a5 3780
cparata 0:e4f89df7a7a5 3781 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3782 }
cparata 0:e4f89df7a7a5 3783
cparata 0:e4f89df7a7a5 3784 /*******************************************************************************
cparata 0:e4f89df7a7a5 3785 * Function Name : LSM6DSL_ACC_GYRO_W_IronCorrection_EN
cparata 0:e4f89df7a7a5 3786 * Description : Write IRON_EN
cparata 0:e4f89df7a7a5 3787 * Input : LSM6DSL_ACC_GYRO_IRON_EN_t
cparata 0:e4f89df7a7a5 3788 * Output : None
cparata 0:e4f89df7a7a5 3789 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3790 *******************************************************************************/
cparata 0:e4f89df7a7a5 3791 status_t LSM6DSL_ACC_GYRO_W_IronCorrection_EN(void *handle, LSM6DSL_ACC_GYRO_IRON_EN_t newValue)
cparata 0:e4f89df7a7a5 3792 {
cparata 0:e4f89df7a7a5 3793 u8_t value;
cparata 0:e4f89df7a7a5 3794
cparata 0:e4f89df7a7a5 3795 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3796 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3797
cparata 0:e4f89df7a7a5 3798 value &= ~LSM6DSL_ACC_GYRO_IRON_EN_MASK;
cparata 0:e4f89df7a7a5 3799 value |= newValue;
cparata 0:e4f89df7a7a5 3800
cparata 0:e4f89df7a7a5 3801 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3802 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3803
cparata 0:e4f89df7a7a5 3804 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3805 }
cparata 0:e4f89df7a7a5 3806
cparata 0:e4f89df7a7a5 3807 /*******************************************************************************
cparata 0:e4f89df7a7a5 3808 * Function Name : LSM6DSL_ACC_GYRO_R_IronCorrection_EN
cparata 0:e4f89df7a7a5 3809 * Description : Read IRON_EN
cparata 0:e4f89df7a7a5 3810 * Input : Pointer to LSM6DSL_ACC_GYRO_IRON_EN_t
cparata 0:e4f89df7a7a5 3811 * Output : Status of IRON_EN see LSM6DSL_ACC_GYRO_IRON_EN_t
cparata 0:e4f89df7a7a5 3812 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3813 *******************************************************************************/
cparata 0:e4f89df7a7a5 3814 status_t LSM6DSL_ACC_GYRO_R_IronCorrection_EN(void *handle, LSM6DSL_ACC_GYRO_IRON_EN_t *value)
cparata 0:e4f89df7a7a5 3815 {
cparata 0:e4f89df7a7a5 3816 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3817 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3818
cparata 0:e4f89df7a7a5 3819 *value &= LSM6DSL_ACC_GYRO_IRON_EN_MASK; //mask
cparata 0:e4f89df7a7a5 3820
cparata 0:e4f89df7a7a5 3821 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3822 }
cparata 0:e4f89df7a7a5 3823
cparata 0:e4f89df7a7a5 3824 /*******************************************************************************
cparata 0:e4f89df7a7a5 3825 * Function Name : LSM6DSL_ACC_GYRO_W_PASS_THRU_MODE
cparata 0:e4f89df7a7a5 3826 * Description : Write PASS_THRU_MODE
cparata 0:e4f89df7a7a5 3827 * Input : LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t
cparata 0:e4f89df7a7a5 3828 * Output : None
cparata 0:e4f89df7a7a5 3829 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3830 *******************************************************************************/
cparata 0:e4f89df7a7a5 3831 status_t LSM6DSL_ACC_GYRO_W_PASS_THRU_MODE(void *handle, LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t newValue)
cparata 0:e4f89df7a7a5 3832 {
cparata 0:e4f89df7a7a5 3833 u8_t value;
cparata 0:e4f89df7a7a5 3834
cparata 0:e4f89df7a7a5 3835 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3836 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3837
cparata 0:e4f89df7a7a5 3838 value &= ~LSM6DSL_ACC_GYRO_PASS_THRU_MODE_MASK;
cparata 0:e4f89df7a7a5 3839 value |= newValue;
cparata 0:e4f89df7a7a5 3840
cparata 0:e4f89df7a7a5 3841 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3842 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3843
cparata 0:e4f89df7a7a5 3844 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3845 }
cparata 0:e4f89df7a7a5 3846
cparata 0:e4f89df7a7a5 3847 /*******************************************************************************
cparata 0:e4f89df7a7a5 3848 * Function Name : LSM6DSL_ACC_GYRO_R_PASS_THRU_MODE
cparata 0:e4f89df7a7a5 3849 * Description : Read PASS_THRU_MODE
cparata 0:e4f89df7a7a5 3850 * Input : Pointer to LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t
cparata 0:e4f89df7a7a5 3851 * Output : Status of PASS_THRU_MODE see LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t
cparata 0:e4f89df7a7a5 3852 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3853 *******************************************************************************/
cparata 0:e4f89df7a7a5 3854 status_t LSM6DSL_ACC_GYRO_R_PASS_THRU_MODE(void *handle, LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t *value)
cparata 0:e4f89df7a7a5 3855 {
cparata 0:e4f89df7a7a5 3856 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3857 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3858
cparata 0:e4f89df7a7a5 3859 *value &= LSM6DSL_ACC_GYRO_PASS_THRU_MODE_MASK; //mask
cparata 0:e4f89df7a7a5 3860
cparata 0:e4f89df7a7a5 3861 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3862 }
cparata 0:e4f89df7a7a5 3863
cparata 0:e4f89df7a7a5 3864 /*******************************************************************************
cparata 0:e4f89df7a7a5 3865 * Function Name : LSM6DSL_ACC_GYRO_W_PULL_UP_EN
cparata 0:e4f89df7a7a5 3866 * Description : Write PULL_UP_EN
cparata 0:e4f89df7a7a5 3867 * Input : LSM6DSL_ACC_GYRO_PULL_UP_EN_t
cparata 0:e4f89df7a7a5 3868 * Output : None
cparata 0:e4f89df7a7a5 3869 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3870 *******************************************************************************/
cparata 0:e4f89df7a7a5 3871 status_t LSM6DSL_ACC_GYRO_W_PULL_UP_EN(void *handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_t newValue)
cparata 0:e4f89df7a7a5 3872 {
cparata 0:e4f89df7a7a5 3873 u8_t value;
cparata 0:e4f89df7a7a5 3874
cparata 0:e4f89df7a7a5 3875 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3876 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3877
cparata 0:e4f89df7a7a5 3878 value &= ~LSM6DSL_ACC_GYRO_PULL_UP_EN_MASK;
cparata 0:e4f89df7a7a5 3879 value |= newValue;
cparata 0:e4f89df7a7a5 3880
cparata 0:e4f89df7a7a5 3881 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3882 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3883
cparata 0:e4f89df7a7a5 3884 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3885 }
cparata 0:e4f89df7a7a5 3886
cparata 0:e4f89df7a7a5 3887 /*******************************************************************************
cparata 0:e4f89df7a7a5 3888 * Function Name : LSM6DSL_ACC_GYRO_R_PULL_UP_EN
cparata 0:e4f89df7a7a5 3889 * Description : Read PULL_UP_EN
cparata 0:e4f89df7a7a5 3890 * Input : Pointer to LSM6DSL_ACC_GYRO_PULL_UP_EN_t
cparata 0:e4f89df7a7a5 3891 * Output : Status of PULL_UP_EN see LSM6DSL_ACC_GYRO_PULL_UP_EN_t
cparata 0:e4f89df7a7a5 3892 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3893 *******************************************************************************/
cparata 0:e4f89df7a7a5 3894 status_t LSM6DSL_ACC_GYRO_R_PULL_UP_EN(void *handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_t *value)
cparata 0:e4f89df7a7a5 3895 {
cparata 0:e4f89df7a7a5 3896 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3897 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3898
cparata 0:e4f89df7a7a5 3899 *value &= LSM6DSL_ACC_GYRO_PULL_UP_EN_MASK; //mask
cparata 0:e4f89df7a7a5 3900
cparata 0:e4f89df7a7a5 3901 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3902 }
cparata 0:e4f89df7a7a5 3903
cparata 0:e4f89df7a7a5 3904 /*******************************************************************************
cparata 0:e4f89df7a7a5 3905 * Function Name : LSM6DSL_ACC_GYRO_W_SensorHUB_Trigger_Sel
cparata 0:e4f89df7a7a5 3906 * Description : Write START_CONFIG
cparata 0:e4f89df7a7a5 3907 * Input : LSM6DSL_ACC_GYRO_START_CONFIG_t
cparata 0:e4f89df7a7a5 3908 * Output : None
cparata 0:e4f89df7a7a5 3909 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3910 *******************************************************************************/
cparata 0:e4f89df7a7a5 3911 status_t LSM6DSL_ACC_GYRO_W_SensorHUB_Trigger_Sel(void *handle, LSM6DSL_ACC_GYRO_START_CONFIG_t newValue)
cparata 0:e4f89df7a7a5 3912 {
cparata 0:e4f89df7a7a5 3913 u8_t value;
cparata 0:e4f89df7a7a5 3914
cparata 0:e4f89df7a7a5 3915 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3916 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3917
cparata 0:e4f89df7a7a5 3918 value &= ~LSM6DSL_ACC_GYRO_START_CONFIG_MASK;
cparata 0:e4f89df7a7a5 3919 value |= newValue;
cparata 0:e4f89df7a7a5 3920
cparata 0:e4f89df7a7a5 3921 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3922 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3923
cparata 0:e4f89df7a7a5 3924 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3925 }
cparata 0:e4f89df7a7a5 3926
cparata 0:e4f89df7a7a5 3927 /*******************************************************************************
cparata 0:e4f89df7a7a5 3928 * Function Name : LSM6DSL_ACC_GYRO_R_SensorHUB_Trigger_Sel
cparata 0:e4f89df7a7a5 3929 * Description : Read START_CONFIG
cparata 0:e4f89df7a7a5 3930 * Input : Pointer to LSM6DSL_ACC_GYRO_START_CONFIG_t
cparata 0:e4f89df7a7a5 3931 * Output : Status of START_CONFIG see LSM6DSL_ACC_GYRO_START_CONFIG_t
cparata 0:e4f89df7a7a5 3932 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3933 *******************************************************************************/
cparata 0:e4f89df7a7a5 3934 status_t LSM6DSL_ACC_GYRO_R_SensorHUB_Trigger_Sel(void *handle, LSM6DSL_ACC_GYRO_START_CONFIG_t *value)
cparata 0:e4f89df7a7a5 3935 {
cparata 0:e4f89df7a7a5 3936 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3937 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3938
cparata 0:e4f89df7a7a5 3939 *value &= LSM6DSL_ACC_GYRO_START_CONFIG_MASK; //mask
cparata 0:e4f89df7a7a5 3940
cparata 0:e4f89df7a7a5 3941 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3942 }
cparata 0:e4f89df7a7a5 3943
cparata 0:e4f89df7a7a5 3944 /*******************************************************************************
cparata 0:e4f89df7a7a5 3945 * Function Name : LSM6DSL_ACC_GYRO_W_DATA_VAL_SEL_FIFO
cparata 0:e4f89df7a7a5 3946 * Description : Write DATA_VAL_SEL_FIFO
cparata 0:e4f89df7a7a5 3947 * Input : LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t
cparata 0:e4f89df7a7a5 3948 * Output : None
cparata 0:e4f89df7a7a5 3949 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3950 *******************************************************************************/
cparata 0:e4f89df7a7a5 3951 status_t LSM6DSL_ACC_GYRO_W_DATA_VAL_SEL_FIFO(void *handle, LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t newValue)
cparata 0:e4f89df7a7a5 3952 {
cparata 0:e4f89df7a7a5 3953 u8_t value;
cparata 0:e4f89df7a7a5 3954
cparata 0:e4f89df7a7a5 3955 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3956 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3957
cparata 0:e4f89df7a7a5 3958 value &= ~LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_MASK;
cparata 0:e4f89df7a7a5 3959 value |= newValue;
cparata 0:e4f89df7a7a5 3960
cparata 0:e4f89df7a7a5 3961 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3962 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3963
cparata 0:e4f89df7a7a5 3964 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3965 }
cparata 0:e4f89df7a7a5 3966
cparata 0:e4f89df7a7a5 3967 /*******************************************************************************
cparata 0:e4f89df7a7a5 3968 * Function Name : LSM6DSL_ACC_GYRO_R_DATA_VAL_SEL_FIFO
cparata 0:e4f89df7a7a5 3969 * Description : Read DATA_VAL_SEL_FIFO
cparata 0:e4f89df7a7a5 3970 * Input : Pointer to LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t
cparata 0:e4f89df7a7a5 3971 * Output : Status of DATA_VAL_SEL_FIFO see LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t
cparata 0:e4f89df7a7a5 3972 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3973 *******************************************************************************/
cparata 0:e4f89df7a7a5 3974 status_t LSM6DSL_ACC_GYRO_R_DATA_VAL_SEL_FIFO(void *handle, LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t *value)
cparata 0:e4f89df7a7a5 3975 {
cparata 0:e4f89df7a7a5 3976 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 3977 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3978
cparata 0:e4f89df7a7a5 3979 *value &= LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_MASK; //mask
cparata 0:e4f89df7a7a5 3980
cparata 0:e4f89df7a7a5 3981 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 3982 }
cparata 0:e4f89df7a7a5 3983
cparata 0:e4f89df7a7a5 3984 /*******************************************************************************
cparata 0:e4f89df7a7a5 3985 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_ON_INT1
cparata 0:e4f89df7a7a5 3986 * Description : Write DRDY_ON_INT1
cparata 0:e4f89df7a7a5 3987 * Input : LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t
cparata 0:e4f89df7a7a5 3988 * Output : None
cparata 0:e4f89df7a7a5 3989 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 3990 *******************************************************************************/
cparata 0:e4f89df7a7a5 3991 status_t LSM6DSL_ACC_GYRO_W_DRDY_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t newValue)
cparata 0:e4f89df7a7a5 3992 {
cparata 0:e4f89df7a7a5 3993 u8_t value;
cparata 0:e4f89df7a7a5 3994
cparata 0:e4f89df7a7a5 3995 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 3996 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 3997
cparata 0:e4f89df7a7a5 3998 value &= ~LSM6DSL_ACC_GYRO_DRDY_ON_INT1_MASK;
cparata 0:e4f89df7a7a5 3999 value |= newValue;
cparata 0:e4f89df7a7a5 4000
cparata 0:e4f89df7a7a5 4001 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:e4f89df7a7a5 4002 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4003
cparata 0:e4f89df7a7a5 4004 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4005 }
cparata 0:e4f89df7a7a5 4006 /*******************************************************************************
cparata 0:e4f89df7a7a5 4007 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_ON_INT1
cparata 0:e4f89df7a7a5 4008 * Description : Read DRDY_ON_INT1
cparata 0:e4f89df7a7a5 4009 * Input : Pointer to LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t
cparata 0:e4f89df7a7a5 4010 * Output : Status of DRDY_ON_INT1 see LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t
cparata 0:e4f89df7a7a5 4011 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4012 *******************************************************************************/
cparata 0:e4f89df7a7a5 4013 status_t LSM6DSL_ACC_GYRO_R_DRDY_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t *value)
cparata 0:e4f89df7a7a5 4014 {
cparata 0:e4f89df7a7a5 4015 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4016 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4017
cparata 0:e4f89df7a7a5 4018 *value &= LSM6DSL_ACC_GYRO_DRDY_ON_INT1_MASK; //mask
cparata 0:e4f89df7a7a5 4019
cparata 0:e4f89df7a7a5 4020 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4021 }
cparata 0:e4f89df7a7a5 4022
cparata 0:e4f89df7a7a5 4023 /*******************************************************************************
cparata 0:e4f89df7a7a5 4024 * Function Name : LSM6DSL_ACC_GYRO_R_Z_WU
cparata 0:e4f89df7a7a5 4025 * Description : Read Z_WU
cparata 0:e4f89df7a7a5 4026 * Input : Pointer to LSM6DSL_ACC_GYRO_Z_WU_t
cparata 0:e4f89df7a7a5 4027 * Output : Status of Z_WU see LSM6DSL_ACC_GYRO_Z_WU_t
cparata 0:e4f89df7a7a5 4028 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4029 *******************************************************************************/
cparata 0:e4f89df7a7a5 4030 status_t LSM6DSL_ACC_GYRO_R_Z_WU(void *handle, LSM6DSL_ACC_GYRO_Z_WU_t *value)
cparata 0:e4f89df7a7a5 4031 {
cparata 0:e4f89df7a7a5 4032 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4033 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4034
cparata 0:e4f89df7a7a5 4035 *value &= LSM6DSL_ACC_GYRO_Z_WU_MASK; //mask
cparata 0:e4f89df7a7a5 4036
cparata 0:e4f89df7a7a5 4037 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4038 }
cparata 0:e4f89df7a7a5 4039
cparata 0:e4f89df7a7a5 4040 /*******************************************************************************
cparata 0:e4f89df7a7a5 4041 * Function Name : LSM6DSL_ACC_GYRO_R_Y_WU
cparata 0:e4f89df7a7a5 4042 * Description : Read Y_WU
cparata 0:e4f89df7a7a5 4043 * Input : Pointer to LSM6DSL_ACC_GYRO_Y_WU_t
cparata 0:e4f89df7a7a5 4044 * Output : Status of Y_WU see LSM6DSL_ACC_GYRO_Y_WU_t
cparata 0:e4f89df7a7a5 4045 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4046 *******************************************************************************/
cparata 0:e4f89df7a7a5 4047 status_t LSM6DSL_ACC_GYRO_R_Y_WU(void *handle, LSM6DSL_ACC_GYRO_Y_WU_t *value)
cparata 0:e4f89df7a7a5 4048 {
cparata 0:e4f89df7a7a5 4049 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4050 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4051
cparata 0:e4f89df7a7a5 4052 *value &= LSM6DSL_ACC_GYRO_Y_WU_MASK; //mask
cparata 0:e4f89df7a7a5 4053
cparata 0:e4f89df7a7a5 4054 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4055 }
cparata 0:e4f89df7a7a5 4056
cparata 0:e4f89df7a7a5 4057 /*******************************************************************************
cparata 0:e4f89df7a7a5 4058 * Function Name : LSM6DSL_ACC_GYRO_R_X_WU
cparata 0:e4f89df7a7a5 4059 * Description : Read X_WU
cparata 0:e4f89df7a7a5 4060 * Input : Pointer to LSM6DSL_ACC_GYRO_X_WU_t
cparata 0:e4f89df7a7a5 4061 * Output : Status of X_WU see LSM6DSL_ACC_GYRO_X_WU_t
cparata 0:e4f89df7a7a5 4062 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4063 *******************************************************************************/
cparata 0:e4f89df7a7a5 4064 status_t LSM6DSL_ACC_GYRO_R_X_WU(void *handle, LSM6DSL_ACC_GYRO_X_WU_t *value)
cparata 0:e4f89df7a7a5 4065 {
cparata 0:e4f89df7a7a5 4066 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4067 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4068
cparata 0:e4f89df7a7a5 4069 *value &= LSM6DSL_ACC_GYRO_X_WU_MASK; //mask
cparata 0:e4f89df7a7a5 4070
cparata 0:e4f89df7a7a5 4071 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4072 }
cparata 0:e4f89df7a7a5 4073
cparata 0:e4f89df7a7a5 4074 /*******************************************************************************
cparata 0:e4f89df7a7a5 4075 * Function Name : LSM6DSL_ACC_GYRO_R_WU_EV_STATUS
cparata 0:e4f89df7a7a5 4076 * Description : Read WU_EV_STATUS
cparata 0:e4f89df7a7a5 4077 * Input : Pointer to LSM6DSL_ACC_GYRO_WU_EV_STATUS_t
cparata 0:e4f89df7a7a5 4078 * Output : Status of WU_EV_STATUS see LSM6DSL_ACC_GYRO_WU_EV_STATUS_t
cparata 0:e4f89df7a7a5 4079 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4080 *******************************************************************************/
cparata 0:e4f89df7a7a5 4081 status_t LSM6DSL_ACC_GYRO_R_WU_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_WU_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4082 {
cparata 0:e4f89df7a7a5 4083 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4084 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4085
cparata 0:e4f89df7a7a5 4086 *value &= LSM6DSL_ACC_GYRO_WU_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4087
cparata 0:e4f89df7a7a5 4088 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4089 }
cparata 0:e4f89df7a7a5 4090
cparata 0:e4f89df7a7a5 4091 /*******************************************************************************
cparata 0:e4f89df7a7a5 4092 * Function Name : LSM6DSL_ACC_GYRO_R_SLEEP_EV_STATUS
cparata 0:e4f89df7a7a5 4093 * Description : Read SLEEP_EV_STATUS
cparata 0:e4f89df7a7a5 4094 * Input : Pointer to LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4095 * Output : Status of SLEEP_EV_STATUS see LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4096 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4097 *******************************************************************************/
cparata 0:e4f89df7a7a5 4098 status_t LSM6DSL_ACC_GYRO_R_SLEEP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4099 {
cparata 0:e4f89df7a7a5 4100 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4101 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4102
cparata 0:e4f89df7a7a5 4103 *value &= LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4104
cparata 0:e4f89df7a7a5 4105 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4106 }
cparata 0:e4f89df7a7a5 4107
cparata 0:e4f89df7a7a5 4108 /*******************************************************************************
cparata 0:e4f89df7a7a5 4109 * Function Name : LSM6DSL_ACC_GYRO_R_FF_EV_STATUS
cparata 0:e4f89df7a7a5 4110 * Description : Read FF_EV_STATUS
cparata 0:e4f89df7a7a5 4111 * Input : Pointer to LSM6DSL_ACC_GYRO_FF_EV_STATUS_t
cparata 0:e4f89df7a7a5 4112 * Output : Status of FF_EV_STATUS see LSM6DSL_ACC_GYRO_FF_EV_STATUS_t
cparata 0:e4f89df7a7a5 4113 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4114 *******************************************************************************/
cparata 0:e4f89df7a7a5 4115 status_t LSM6DSL_ACC_GYRO_R_FF_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_FF_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4116 {
cparata 0:e4f89df7a7a5 4117 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4118 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4119
cparata 0:e4f89df7a7a5 4120 *value &= LSM6DSL_ACC_GYRO_FF_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4121
cparata 0:e4f89df7a7a5 4122 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4123 }
cparata 0:e4f89df7a7a5 4124
cparata 0:e4f89df7a7a5 4125 /*******************************************************************************
cparata 0:e4f89df7a7a5 4126 * Function Name : LSM6DSL_ACC_GYRO_R_Z_TAP
cparata 0:e4f89df7a7a5 4127 * Description : Read Z_TAP
cparata 0:e4f89df7a7a5 4128 * Input : Pointer to LSM6DSL_ACC_GYRO_Z_TAP_t
cparata 0:e4f89df7a7a5 4129 * Output : Status of Z_TAP see LSM6DSL_ACC_GYRO_Z_TAP_t
cparata 0:e4f89df7a7a5 4130 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4131 *******************************************************************************/
cparata 0:e4f89df7a7a5 4132 status_t LSM6DSL_ACC_GYRO_R_Z_TAP(void *handle, LSM6DSL_ACC_GYRO_Z_TAP_t *value)
cparata 0:e4f89df7a7a5 4133 {
cparata 0:e4f89df7a7a5 4134 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4135 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4136
cparata 0:e4f89df7a7a5 4137 *value &= LSM6DSL_ACC_GYRO_Z_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 4138
cparata 0:e4f89df7a7a5 4139 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4140 }
cparata 0:e4f89df7a7a5 4141
cparata 0:e4f89df7a7a5 4142 /*******************************************************************************
cparata 0:e4f89df7a7a5 4143 * Function Name : LSM6DSL_ACC_GYRO_R_Y_TAP
cparata 0:e4f89df7a7a5 4144 * Description : Read Y_TAP
cparata 0:e4f89df7a7a5 4145 * Input : Pointer to LSM6DSL_ACC_GYRO_Y_TAP_t
cparata 0:e4f89df7a7a5 4146 * Output : Status of Y_TAP see LSM6DSL_ACC_GYRO_Y_TAP_t
cparata 0:e4f89df7a7a5 4147 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4148 *******************************************************************************/
cparata 0:e4f89df7a7a5 4149 status_t LSM6DSL_ACC_GYRO_R_Y_TAP(void *handle, LSM6DSL_ACC_GYRO_Y_TAP_t *value)
cparata 0:e4f89df7a7a5 4150 {
cparata 0:e4f89df7a7a5 4151 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4152 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4153
cparata 0:e4f89df7a7a5 4154 *value &= LSM6DSL_ACC_GYRO_Y_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 4155
cparata 0:e4f89df7a7a5 4156 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4157 }
cparata 0:e4f89df7a7a5 4158
cparata 0:e4f89df7a7a5 4159 /*******************************************************************************
cparata 0:e4f89df7a7a5 4160 * Function Name : LSM6DSL_ACC_GYRO_R_X_TAP
cparata 0:e4f89df7a7a5 4161 * Description : Read X_TAP
cparata 0:e4f89df7a7a5 4162 * Input : Pointer to LSM6DSL_ACC_GYRO_X_TAP_t
cparata 0:e4f89df7a7a5 4163 * Output : Status of X_TAP see LSM6DSL_ACC_GYRO_X_TAP_t
cparata 0:e4f89df7a7a5 4164 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4165 *******************************************************************************/
cparata 0:e4f89df7a7a5 4166 status_t LSM6DSL_ACC_GYRO_R_X_TAP(void *handle, LSM6DSL_ACC_GYRO_X_TAP_t *value)
cparata 0:e4f89df7a7a5 4167 {
cparata 0:e4f89df7a7a5 4168 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4169 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4170
cparata 0:e4f89df7a7a5 4171 *value &= LSM6DSL_ACC_GYRO_X_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 4172
cparata 0:e4f89df7a7a5 4173 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4174 }
cparata 0:e4f89df7a7a5 4175
cparata 0:e4f89df7a7a5 4176 /*******************************************************************************
cparata 0:e4f89df7a7a5 4177 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_SIGN
cparata 0:e4f89df7a7a5 4178 * Description : Read TAP_SIGN
cparata 0:e4f89df7a7a5 4179 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_SIGN_t
cparata 0:e4f89df7a7a5 4180 * Output : Status of TAP_SIGN see LSM6DSL_ACC_GYRO_TAP_SIGN_t
cparata 0:e4f89df7a7a5 4181 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4182 *******************************************************************************/
cparata 0:e4f89df7a7a5 4183 status_t LSM6DSL_ACC_GYRO_R_TAP_SIGN(void *handle, LSM6DSL_ACC_GYRO_TAP_SIGN_t *value)
cparata 0:e4f89df7a7a5 4184 {
cparata 0:e4f89df7a7a5 4185 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4186 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4187
cparata 0:e4f89df7a7a5 4188 *value &= LSM6DSL_ACC_GYRO_TAP_SIGN_MASK; //mask
cparata 0:e4f89df7a7a5 4189
cparata 0:e4f89df7a7a5 4190 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4191 }
cparata 0:e4f89df7a7a5 4192
cparata 0:e4f89df7a7a5 4193 /*******************************************************************************
cparata 0:e4f89df7a7a5 4194 * Function Name : LSM6DSL_ACC_GYRO_R_DOUBLE_TAP_EV_STATUS
cparata 0:e4f89df7a7a5 4195 * Description : Read DOUBLE_TAP_EV_STATUS
cparata 0:e4f89df7a7a5 4196 * Input : Pointer to LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4197 * Output : Status of DOUBLE_TAP_EV_STATUS see LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4198 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4199 *******************************************************************************/
cparata 0:e4f89df7a7a5 4200 status_t LSM6DSL_ACC_GYRO_R_DOUBLE_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4201 {
cparata 0:e4f89df7a7a5 4202 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4203 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4204
cparata 0:e4f89df7a7a5 4205 *value &= LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4206
cparata 0:e4f89df7a7a5 4207 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4208 }
cparata 0:e4f89df7a7a5 4209
cparata 0:e4f89df7a7a5 4210 /*******************************************************************************
cparata 0:e4f89df7a7a5 4211 * Function Name : LSM6DSL_ACC_GYRO_R_SINGLE_TAP_EV_STATUS
cparata 0:e4f89df7a7a5 4212 * Description : Read SINGLE_TAP_EV_STATUS
cparata 0:e4f89df7a7a5 4213 * Input : Pointer to LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4214 * Output : Status of SINGLE_TAP_EV_STATUS see LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4215 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4216 *******************************************************************************/
cparata 0:e4f89df7a7a5 4217 status_t LSM6DSL_ACC_GYRO_R_SINGLE_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4218 {
cparata 0:e4f89df7a7a5 4219 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4220 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4221
cparata 0:e4f89df7a7a5 4222 *value &= LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4223
cparata 0:e4f89df7a7a5 4224 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4225 }
cparata 0:e4f89df7a7a5 4226
cparata 0:e4f89df7a7a5 4227 /*******************************************************************************
cparata 0:e4f89df7a7a5 4228 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_EV_STATUS
cparata 0:e4f89df7a7a5 4229 * Description : Read TAP_EV_STATUS
cparata 0:e4f89df7a7a5 4230 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4231 * Output : Status of TAP_EV_STATUS see LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t
cparata 0:e4f89df7a7a5 4232 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4233 *******************************************************************************/
cparata 0:e4f89df7a7a5 4234 status_t LSM6DSL_ACC_GYRO_R_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4235 {
cparata 0:e4f89df7a7a5 4236 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4237 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4238
cparata 0:e4f89df7a7a5 4239 *value &= LSM6DSL_ACC_GYRO_TAP_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4240
cparata 0:e4f89df7a7a5 4241 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4242 }
cparata 0:e4f89df7a7a5 4243
cparata 0:e4f89df7a7a5 4244 /*******************************************************************************
cparata 0:e4f89df7a7a5 4245 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_XL
cparata 0:e4f89df7a7a5 4246 * Description : Read DSD_XL
cparata 0:e4f89df7a7a5 4247 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_XL_t
cparata 0:e4f89df7a7a5 4248 * Output : Status of DSD_XL see LSM6DSL_ACC_GYRO_DSD_XL_t
cparata 0:e4f89df7a7a5 4249 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4250 *******************************************************************************/
cparata 0:e4f89df7a7a5 4251 status_t LSM6DSL_ACC_GYRO_R_DSD_XL(void *handle, LSM6DSL_ACC_GYRO_DSD_XL_t *value)
cparata 0:e4f89df7a7a5 4252 {
cparata 0:e4f89df7a7a5 4253 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4254 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4255
cparata 0:e4f89df7a7a5 4256 *value &= LSM6DSL_ACC_GYRO_DSD_XL_MASK; //mask
cparata 0:e4f89df7a7a5 4257
cparata 0:e4f89df7a7a5 4258 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4259 }
cparata 0:e4f89df7a7a5 4260
cparata 0:e4f89df7a7a5 4261 /*******************************************************************************
cparata 0:e4f89df7a7a5 4262 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_XH
cparata 0:e4f89df7a7a5 4263 * Description : Read DSD_XH
cparata 0:e4f89df7a7a5 4264 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_XH_t
cparata 0:e4f89df7a7a5 4265 * Output : Status of DSD_XH see LSM6DSL_ACC_GYRO_DSD_XH_t
cparata 0:e4f89df7a7a5 4266 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4267 *******************************************************************************/
cparata 0:e4f89df7a7a5 4268 status_t LSM6DSL_ACC_GYRO_R_DSD_XH(void *handle, LSM6DSL_ACC_GYRO_DSD_XH_t *value)
cparata 0:e4f89df7a7a5 4269 {
cparata 0:e4f89df7a7a5 4270 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4271 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4272
cparata 0:e4f89df7a7a5 4273 *value &= LSM6DSL_ACC_GYRO_DSD_XH_MASK; //mask
cparata 0:e4f89df7a7a5 4274
cparata 0:e4f89df7a7a5 4275 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4276 }
cparata 0:e4f89df7a7a5 4277
cparata 0:e4f89df7a7a5 4278 /*******************************************************************************
cparata 0:e4f89df7a7a5 4279 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_YL
cparata 0:e4f89df7a7a5 4280 * Description : Read DSD_YL
cparata 0:e4f89df7a7a5 4281 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_YL_t
cparata 0:e4f89df7a7a5 4282 * Output : Status of DSD_YL see LSM6DSL_ACC_GYRO_DSD_YL_t
cparata 0:e4f89df7a7a5 4283 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4284 *******************************************************************************/
cparata 0:e4f89df7a7a5 4285 status_t LSM6DSL_ACC_GYRO_R_DSD_YL(void *handle, LSM6DSL_ACC_GYRO_DSD_YL_t *value)
cparata 0:e4f89df7a7a5 4286 {
cparata 0:e4f89df7a7a5 4287 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4288 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4289
cparata 0:e4f89df7a7a5 4290 *value &= LSM6DSL_ACC_GYRO_DSD_YL_MASK; //mask
cparata 0:e4f89df7a7a5 4291
cparata 0:e4f89df7a7a5 4292 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4293 }
cparata 0:e4f89df7a7a5 4294
cparata 0:e4f89df7a7a5 4295 /*******************************************************************************
cparata 0:e4f89df7a7a5 4296 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_YH
cparata 0:e4f89df7a7a5 4297 * Description : Read DSD_YH
cparata 0:e4f89df7a7a5 4298 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_YH_t
cparata 0:e4f89df7a7a5 4299 * Output : Status of DSD_YH see LSM6DSL_ACC_GYRO_DSD_YH_t
cparata 0:e4f89df7a7a5 4300 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4301 *******************************************************************************/
cparata 0:e4f89df7a7a5 4302 status_t LSM6DSL_ACC_GYRO_R_DSD_YH(void *handle, LSM6DSL_ACC_GYRO_DSD_YH_t *value)
cparata 0:e4f89df7a7a5 4303 {
cparata 0:e4f89df7a7a5 4304 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4305 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4306
cparata 0:e4f89df7a7a5 4307 *value &= LSM6DSL_ACC_GYRO_DSD_YH_MASK; //mask
cparata 0:e4f89df7a7a5 4308
cparata 0:e4f89df7a7a5 4309 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4310 }
cparata 0:e4f89df7a7a5 4311
cparata 0:e4f89df7a7a5 4312 /*******************************************************************************
cparata 0:e4f89df7a7a5 4313 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_ZL
cparata 0:e4f89df7a7a5 4314 * Description : Read DSD_ZL
cparata 0:e4f89df7a7a5 4315 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_ZL_t
cparata 0:e4f89df7a7a5 4316 * Output : Status of DSD_ZL see LSM6DSL_ACC_GYRO_DSD_ZL_t
cparata 0:e4f89df7a7a5 4317 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4318 *******************************************************************************/
cparata 0:e4f89df7a7a5 4319 status_t LSM6DSL_ACC_GYRO_R_DSD_ZL(void *handle, LSM6DSL_ACC_GYRO_DSD_ZL_t *value)
cparata 0:e4f89df7a7a5 4320 {
cparata 0:e4f89df7a7a5 4321 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4322 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4323
cparata 0:e4f89df7a7a5 4324 *value &= LSM6DSL_ACC_GYRO_DSD_ZL_MASK; //mask
cparata 0:e4f89df7a7a5 4325
cparata 0:e4f89df7a7a5 4326 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4327 }
cparata 0:e4f89df7a7a5 4328
cparata 0:e4f89df7a7a5 4329 /*******************************************************************************
cparata 0:e4f89df7a7a5 4330 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_ZH
cparata 0:e4f89df7a7a5 4331 * Description : Read DSD_ZH
cparata 0:e4f89df7a7a5 4332 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_ZH_t
cparata 0:e4f89df7a7a5 4333 * Output : Status of DSD_ZH see LSM6DSL_ACC_GYRO_DSD_ZH_t
cparata 0:e4f89df7a7a5 4334 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4335 *******************************************************************************/
cparata 0:e4f89df7a7a5 4336 status_t LSM6DSL_ACC_GYRO_R_DSD_ZH(void *handle, LSM6DSL_ACC_GYRO_DSD_ZH_t *value)
cparata 0:e4f89df7a7a5 4337 {
cparata 0:e4f89df7a7a5 4338 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4339 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4340
cparata 0:e4f89df7a7a5 4341 *value &= LSM6DSL_ACC_GYRO_DSD_ZH_MASK; //mask
cparata 0:e4f89df7a7a5 4342
cparata 0:e4f89df7a7a5 4343 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4344 }
cparata 0:e4f89df7a7a5 4345
cparata 0:e4f89df7a7a5 4346 /*******************************************************************************
cparata 0:e4f89df7a7a5 4347 * Function Name : LSM6DSL_ACC_GYRO_R_D6D_EV_STATUS
cparata 0:e4f89df7a7a5 4348 * Description : Read D6D_EV_STATUS
cparata 0:e4f89df7a7a5 4349 * Input : Pointer to LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t
cparata 0:e4f89df7a7a5 4350 * Output : Status of D6D_EV_STATUS see LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t
cparata 0:e4f89df7a7a5 4351 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4352 *******************************************************************************/
cparata 0:e4f89df7a7a5 4353 status_t LSM6DSL_ACC_GYRO_R_D6D_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4354 {
cparata 0:e4f89df7a7a5 4355 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4356 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4357
cparata 0:e4f89df7a7a5 4358 *value &= LSM6DSL_ACC_GYRO_D6D_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4359
cparata 0:e4f89df7a7a5 4360 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4361 }
cparata 0:e4f89df7a7a5 4362
cparata 0:e4f89df7a7a5 4363 /*******************************************************************************
cparata 0:e4f89df7a7a5 4364 * Function Name : LSM6DSL_ACC_GYRO_R_XLDA
cparata 0:e4f89df7a7a5 4365 * Description : Read XLDA
cparata 0:e4f89df7a7a5 4366 * Input : Pointer to LSM6DSL_ACC_GYRO_XLDA_t
cparata 0:e4f89df7a7a5 4367 * Output : Status of XLDA see LSM6DSL_ACC_GYRO_XLDA_t
cparata 0:e4f89df7a7a5 4368 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4369 *******************************************************************************/
cparata 0:e4f89df7a7a5 4370 status_t LSM6DSL_ACC_GYRO_R_XLDA(void *handle, LSM6DSL_ACC_GYRO_XLDA_t *value)
cparata 0:e4f89df7a7a5 4371 {
cparata 0:e4f89df7a7a5 4372 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STATUS_REG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4373 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4374
cparata 0:e4f89df7a7a5 4375 *value &= LSM6DSL_ACC_GYRO_XLDA_MASK; //mask
cparata 0:e4f89df7a7a5 4376
cparata 0:e4f89df7a7a5 4377 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4378 }
cparata 0:e4f89df7a7a5 4379
cparata 0:e4f89df7a7a5 4380 /*******************************************************************************
cparata 0:e4f89df7a7a5 4381 * Function Name : LSM6DSL_ACC_GYRO_R_GDA
cparata 0:e4f89df7a7a5 4382 * Description : Read GDA
cparata 0:e4f89df7a7a5 4383 * Input : Pointer to LSM6DSL_ACC_GYRO_GDA_t
cparata 0:e4f89df7a7a5 4384 * Output : Status of GDA see LSM6DSL_ACC_GYRO_GDA_t
cparata 0:e4f89df7a7a5 4385 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4386 *******************************************************************************/
cparata 0:e4f89df7a7a5 4387 status_t LSM6DSL_ACC_GYRO_R_GDA(void *handle, LSM6DSL_ACC_GYRO_GDA_t *value)
cparata 0:e4f89df7a7a5 4388 {
cparata 0:e4f89df7a7a5 4389 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STATUS_REG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4390 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4391
cparata 0:e4f89df7a7a5 4392 *value &= LSM6DSL_ACC_GYRO_GDA_MASK; //mask
cparata 0:e4f89df7a7a5 4393
cparata 0:e4f89df7a7a5 4394 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4395 }
cparata 0:e4f89df7a7a5 4396
cparata 0:e4f89df7a7a5 4397 /*******************************************************************************
cparata 0:e4f89df7a7a5 4398 * Function Name : LSM6DSL_ACC_GYRO_R_TDA
cparata 0:e4f89df7a7a5 4399 * Description : Read GDA
cparata 0:e4f89df7a7a5 4400 * Input : Pointer to LSM6DSL_ACC_GYRO_TDA_t
cparata 0:e4f89df7a7a5 4401 * Output : Status of GDA see LSM6DSL_ACC_GYRO_TDA_t
cparata 0:e4f89df7a7a5 4402 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4403 *******************************************************************************/
cparata 0:e4f89df7a7a5 4404 status_t LSM6DSL_ACC_GYRO_R_TDA(void *handle, LSM6DSL_ACC_GYRO_TDA_t *value)
cparata 0:e4f89df7a7a5 4405 {
cparata 0:e4f89df7a7a5 4406 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STATUS_REG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4407 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4408
cparata 0:e4f89df7a7a5 4409 *value &= LSM6DSL_ACC_GYRO_TDA_MASK; //mask
cparata 0:e4f89df7a7a5 4410
cparata 0:e4f89df7a7a5 4411 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4412 }
cparata 0:e4f89df7a7a5 4413
cparata 0:e4f89df7a7a5 4414 /*******************************************************************************
cparata 0:e4f89df7a7a5 4415 * Function Name : LSM6DSL_ACC_GYRO_R_FIFONumOfEntries
cparata 0:e4f89df7a7a5 4416 * Description : Read DIFF_FIFO
cparata 0:e4f89df7a7a5 4417 * Input : Pointer to u16_t
cparata 0:e4f89df7a7a5 4418 * Output : Status of DIFF_FIFO
cparata 0:e4f89df7a7a5 4419 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4420 *******************************************************************************/
cparata 0:e4f89df7a7a5 4421 status_t LSM6DSL_ACC_GYRO_R_FIFONumOfEntries(void *handle, u16_t *value)
cparata 0:e4f89df7a7a5 4422 {
cparata 0:e4f89df7a7a5 4423 u8_t valueH, valueL;
cparata 0:e4f89df7a7a5 4424
cparata 0:e4f89df7a7a5 4425 /* Low part from FIFO_STATUS1 */
cparata 0:e4f89df7a7a5 4426 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS1, (u8_t *)&valueL, 1) )
cparata 0:e4f89df7a7a5 4427 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4428
cparata 0:e4f89df7a7a5 4429 valueL &= LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS1_MASK; //coerce
cparata 0:e4f89df7a7a5 4430 valueL = valueL >> LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS1_POSITION; //mask
cparata 0:e4f89df7a7a5 4431
cparata 0:e4f89df7a7a5 4432 /* High part from FIFO_STATUS2 */
cparata 0:e4f89df7a7a5 4433 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)&valueH, 1) )
cparata 0:e4f89df7a7a5 4434 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4435
cparata 0:e4f89df7a7a5 4436 valueH &= LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS2_MASK; //coerce
cparata 0:e4f89df7a7a5 4437 valueH = valueH >> LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS2_POSITION; //mask
cparata 0:e4f89df7a7a5 4438
cparata 0:e4f89df7a7a5 4439 *value = ((valueH << 8) & 0xFF00) | valueL;
cparata 0:e4f89df7a7a5 4440
cparata 0:e4f89df7a7a5 4441 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4442 }
cparata 0:e4f89df7a7a5 4443
cparata 0:e4f89df7a7a5 4444 /*******************************************************************************
cparata 0:e4f89df7a7a5 4445 * Function Name : LSM6DSL_ACC_GYRO_R_FIFOEmpty
cparata 0:e4f89df7a7a5 4446 * Description : Read FIFO_EMPTY
cparata 0:e4f89df7a7a5 4447 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_EMPTY_t
cparata 0:e4f89df7a7a5 4448 * Output : Status of FIFO_EMPTY see LSM6DSL_ACC_GYRO_FIFO_EMPTY_t
cparata 0:e4f89df7a7a5 4449 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4450 *******************************************************************************/
cparata 0:e4f89df7a7a5 4451 status_t LSM6DSL_ACC_GYRO_R_FIFOEmpty(void *handle, LSM6DSL_ACC_GYRO_FIFO_EMPTY_t *value)
cparata 0:e4f89df7a7a5 4452 {
cparata 0:e4f89df7a7a5 4453 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4454 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4455
cparata 0:e4f89df7a7a5 4456 *value &= LSM6DSL_ACC_GYRO_FIFO_EMPTY_MASK; //mask
cparata 0:e4f89df7a7a5 4457
cparata 0:e4f89df7a7a5 4458 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4459 }
cparata 0:e4f89df7a7a5 4460
cparata 0:e4f89df7a7a5 4461 /*******************************************************************************
cparata 0:e4f89df7a7a5 4462 * Function Name : LSM6DSL_ACC_GYRO_R_FIFOFull
cparata 0:e4f89df7a7a5 4463 * Description : Read FIFO_FULL
cparata 0:e4f89df7a7a5 4464 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_FULL_t
cparata 0:e4f89df7a7a5 4465 * Output : Status of FIFO_FULL see LSM6DSL_ACC_GYRO_FIFO_FULL_t
cparata 0:e4f89df7a7a5 4466 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4467 *******************************************************************************/
cparata 0:e4f89df7a7a5 4468 status_t LSM6DSL_ACC_GYRO_R_FIFOFull(void *handle, LSM6DSL_ACC_GYRO_FIFO_FULL_t *value)
cparata 0:e4f89df7a7a5 4469 {
cparata 0:e4f89df7a7a5 4470 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4471 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4472
cparata 0:e4f89df7a7a5 4473 *value &= LSM6DSL_ACC_GYRO_FIFO_FULL_MASK; //mask
cparata 0:e4f89df7a7a5 4474
cparata 0:e4f89df7a7a5 4475 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4476 }
cparata 0:e4f89df7a7a5 4477
cparata 0:e4f89df7a7a5 4478 /*******************************************************************************
cparata 0:e4f89df7a7a5 4479 * Function Name : LSM6DSL_ACC_GYRO_R_OVERRUN
cparata 0:e4f89df7a7a5 4480 * Description : Read OVERRUN
cparata 0:e4f89df7a7a5 4481 * Input : Pointer to LSM6DSL_ACC_GYRO_OVERRUN_t
cparata 0:e4f89df7a7a5 4482 * Output : Status of OVERRUN see LSM6DSL_ACC_GYRO_OVERRUN_t
cparata 0:e4f89df7a7a5 4483 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4484 *******************************************************************************/
cparata 0:e4f89df7a7a5 4485 status_t LSM6DSL_ACC_GYRO_R_OVERRUN(void *handle, LSM6DSL_ACC_GYRO_OVERRUN_t *value)
cparata 0:e4f89df7a7a5 4486 {
cparata 0:e4f89df7a7a5 4487 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4488 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4489
cparata 0:e4f89df7a7a5 4490 *value &= LSM6DSL_ACC_GYRO_OVERRUN_MASK; //mask
cparata 0:e4f89df7a7a5 4491
cparata 0:e4f89df7a7a5 4492 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4493 }
cparata 0:e4f89df7a7a5 4494
cparata 0:e4f89df7a7a5 4495 /*******************************************************************************
cparata 0:e4f89df7a7a5 4496 * Function Name : LSM6DSL_ACC_GYRO_R_WaterMark
cparata 0:e4f89df7a7a5 4497 * Description : Read WTM
cparata 0:e4f89df7a7a5 4498 * Input : Pointer to LSM6DSL_ACC_GYRO_WTM_t
cparata 0:e4f89df7a7a5 4499 * Output : Status of WTM see LSM6DSL_ACC_GYRO_WTM_t
cparata 0:e4f89df7a7a5 4500 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4501 *******************************************************************************/
cparata 0:e4f89df7a7a5 4502 status_t LSM6DSL_ACC_GYRO_R_WaterMark(void *handle, LSM6DSL_ACC_GYRO_WTM_t *value)
cparata 0:e4f89df7a7a5 4503 {
cparata 0:e4f89df7a7a5 4504 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4505 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4506
cparata 0:e4f89df7a7a5 4507 *value &= LSM6DSL_ACC_GYRO_WTM_MASK; //mask
cparata 0:e4f89df7a7a5 4508
cparata 0:e4f89df7a7a5 4509 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4510 }
cparata 0:e4f89df7a7a5 4511
cparata 0:e4f89df7a7a5 4512 /*******************************************************************************
cparata 0:e4f89df7a7a5 4513 * Function Name : LSM6DSL_ACC_GYRO_R_FIFOPattern
cparata 0:e4f89df7a7a5 4514 * Description : Read FIFO_PATTERN
cparata 0:e4f89df7a7a5 4515 * Input : Pointer to u16_t
cparata 0:e4f89df7a7a5 4516 * Output : Status of FIFO_PATTERN
cparata 0:e4f89df7a7a5 4517 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4518 *******************************************************************************/
cparata 0:e4f89df7a7a5 4519 status_t LSM6DSL_ACC_GYRO_R_FIFOPattern(void *handle, u16_t *value)
cparata 0:e4f89df7a7a5 4520 {
cparata 0:e4f89df7a7a5 4521 u8_t valueH, valueL;
cparata 0:e4f89df7a7a5 4522
cparata 0:e4f89df7a7a5 4523 /* Low part from FIFO_STATUS3 */
cparata 0:e4f89df7a7a5 4524 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS3, (u8_t *)&valueL, 1) )
cparata 0:e4f89df7a7a5 4525 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4526
cparata 0:e4f89df7a7a5 4527 valueL &= LSM6DSL_ACC_GYRO_FIFO_STATUS3_PATTERN_MASK; //coerce
cparata 0:e4f89df7a7a5 4528 valueL = valueL >> LSM6DSL_ACC_GYRO_FIFO_STATUS3_PATTERN_POSITION; //mask
cparata 0:e4f89df7a7a5 4529
cparata 0:e4f89df7a7a5 4530 /* High part from FIFO_STATUS4 */
cparata 0:e4f89df7a7a5 4531 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS4, (u8_t *)&valueH, 1) )
cparata 0:e4f89df7a7a5 4532 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4533
cparata 0:e4f89df7a7a5 4534 valueH &= LSM6DSL_ACC_GYRO_FIFO_STATUS4_PATTERN_MASK; //coerce
cparata 0:e4f89df7a7a5 4535 valueH = valueH >> LSM6DSL_ACC_GYRO_FIFO_STATUS4_PATTERN_POSITION; //mask
cparata 0:e4f89df7a7a5 4536
cparata 0:e4f89df7a7a5 4537 *value = ((valueH << 8) & 0xFF00) | valueL;
cparata 0:e4f89df7a7a5 4538
cparata 0:e4f89df7a7a5 4539 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4540 }
cparata 0:e4f89df7a7a5 4541
cparata 0:e4f89df7a7a5 4542 /*******************************************************************************
cparata 0:e4f89df7a7a5 4543 * Function Name : LSM6DSL_ACC_GYRO_R_SENS_HUB_END
cparata 0:e4f89df7a7a5 4544 * Description : Read SENS_HUB_END
cparata 0:e4f89df7a7a5 4545 * Input : Pointer to LSM6DSL_ACC_GYRO_SENS_HUB_END_t
cparata 0:e4f89df7a7a5 4546 * Output : Status of SENS_HUB_END see LSM6DSL_ACC_GYRO_SENS_HUB_END_t
cparata 0:e4f89df7a7a5 4547 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4548 *******************************************************************************/
cparata 0:e4f89df7a7a5 4549 status_t LSM6DSL_ACC_GYRO_R_SENS_HUB_END(void *handle, LSM6DSL_ACC_GYRO_SENS_HUB_END_t *value)
cparata 0:e4f89df7a7a5 4550 {
cparata 0:e4f89df7a7a5 4551 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4552 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4553
cparata 0:e4f89df7a7a5 4554 *value &= LSM6DSL_ACC_GYRO_SENS_HUB_END_MASK; //mask
cparata 0:e4f89df7a7a5 4555
cparata 0:e4f89df7a7a5 4556 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4557 }
cparata 0:e4f89df7a7a5 4558
cparata 0:e4f89df7a7a5 4559 /*******************************************************************************
cparata 0:e4f89df7a7a5 4560 * Function Name : LSM6DSL_ACC_GYRO_R_SOFT_IRON_END
cparata 0:e4f89df7a7a5 4561 * Description : Read SOFT_IRON_END
cparata 0:e4f89df7a7a5 4562 * Input : Pointer to LSM6DSL_ACC_GYRO_SOFT_IRON_END_t
cparata 0:e4f89df7a7a5 4563 * Output : Status of SOFT_IRON_END see LSM6DSL_ACC_GYRO_SOFT_IRON_END_t
cparata 0:e4f89df7a7a5 4564 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4565 *******************************************************************************/
cparata 0:e4f89df7a7a5 4566 status_t LSM6DSL_ACC_GYRO_R_SOFT_IRON_END(void *handle, LSM6DSL_ACC_GYRO_SOFT_IRON_END_t *value)
cparata 0:e4f89df7a7a5 4567 {
cparata 0:e4f89df7a7a5 4568 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4569 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4570
cparata 0:e4f89df7a7a5 4571 *value &= LSM6DSL_ACC_GYRO_SOFT_IRON_END_MASK; //mask
cparata 0:e4f89df7a7a5 4572
cparata 0:e4f89df7a7a5 4573 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4574 }
cparata 0:e4f89df7a7a5 4575
cparata 0:e4f89df7a7a5 4576 /*******************************************************************************
cparata 0:e4f89df7a7a5 4577 * Function Name : LSM6DSL_ACC_GYRO_R_HardIron
cparata 0:e4f89df7a7a5 4578 * Description : Read HI_FAIL
cparata 0:e4f89df7a7a5 4579 * Input : Pointer to LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t
cparata 0:e4f89df7a7a5 4580 * Output : Status of HI_FAIL see LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t
cparata 0:e4f89df7a7a5 4581 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4582 *******************************************************************************/
cparata 0:e4f89df7a7a5 4583 status_t LSM6DSL_ACC_GYRO_R_HardIron(void *handle, LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t *value)
cparata 0:e4f89df7a7a5 4584 {
cparata 0:e4f89df7a7a5 4585 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4586 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4587
cparata 0:e4f89df7a7a5 4588 *value &= LSM6DSL_ACC_GYRO_HARD_IRON_STAT_MASK; //mask
cparata 0:e4f89df7a7a5 4589
cparata 0:e4f89df7a7a5 4590 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4591 }
cparata 0:e4f89df7a7a5 4592
cparata 0:e4f89df7a7a5 4593 /*******************************************************************************
cparata 0:e4f89df7a7a5 4594 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_OVERFLOW
cparata 0:e4f89df7a7a5 4595 * Description : Read STEP_OVERFLOW
cparata 0:e4f89df7a7a5 4596 * Input : Pointer to LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t
cparata 0:e4f89df7a7a5 4597 * Output : Status of STEP_OVERFLOW see LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t
cparata 0:e4f89df7a7a5 4598 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4599 *******************************************************************************/
cparata 0:e4f89df7a7a5 4600 status_t LSM6DSL_ACC_GYRO_R_STEP_OVERFLOW(void *handle, LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t *value)
cparata 0:e4f89df7a7a5 4601 {
cparata 0:e4f89df7a7a5 4602 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4603 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4604
cparata 0:e4f89df7a7a5 4605 *value &= LSM6DSL_ACC_GYRO_STEP_OVERFLOW_MASK; //mask
cparata 0:e4f89df7a7a5 4606
cparata 0:e4f89df7a7a5 4607 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4608 }
cparata 0:e4f89df7a7a5 4609
cparata 0:e4f89df7a7a5 4610 /*******************************************************************************
cparata 0:e4f89df7a7a5 4611 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_COUNT_DELTA
cparata 0:e4f89df7a7a5 4612 * Description : Read STEP_COUNT_DELTA_IA
cparata 0:e4f89df7a7a5 4613 * Input : Pointer to LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t
cparata 0:e4f89df7a7a5 4614 * Output : Status of STEP_COUNT_DELTA_IA see LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t
cparata 0:e4f89df7a7a5 4615 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4616 *******************************************************************************/
cparata 0:e4f89df7a7a5 4617 status_t LSM6DSL_ACC_GYRO_R_STEP_COUNT_DELTA(void *handle, LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t *value)
cparata 0:e4f89df7a7a5 4618 {
cparata 0:e4f89df7a7a5 4619 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4620 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4621
cparata 0:e4f89df7a7a5 4622 *value &= LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_MASK; //mask
cparata 0:e4f89df7a7a5 4623
cparata 0:e4f89df7a7a5 4624 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4625 }
cparata 0:e4f89df7a7a5 4626
cparata 0:e4f89df7a7a5 4627 /*******************************************************************************
cparata 0:e4f89df7a7a5 4628 * Function Name : LSM6DSL_ACC_GYRO_R_PEDO_EV_STATUS
cparata 0:e4f89df7a7a5 4629 * Description : Read PEDO_EV_STATUS
cparata 0:e4f89df7a7a5 4630 * Input : Pointer to LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t
cparata 0:e4f89df7a7a5 4631 * Output : Status of PEDO_EV_STATUS see LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t
cparata 0:e4f89df7a7a5 4632 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4633 *******************************************************************************/
cparata 0:e4f89df7a7a5 4634 status_t LSM6DSL_ACC_GYRO_R_PEDO_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4635 {
cparata 0:e4f89df7a7a5 4636 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4637 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4638
cparata 0:e4f89df7a7a5 4639 *value &= LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4640
cparata 0:e4f89df7a7a5 4641 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4642 }
cparata 0:e4f89df7a7a5 4643
cparata 0:e4f89df7a7a5 4644 /*******************************************************************************
cparata 0:e4f89df7a7a5 4645 * Function Name : LSM6DSL_ACC_GYRO_R_TILT_EV_STATUS
cparata 0:e4f89df7a7a5 4646 * Description : Read TILT_EV_STATUS
cparata 0:e4f89df7a7a5 4647 * Input : Pointer to LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t
cparata 0:e4f89df7a7a5 4648 * Output : Status of TILT_EV_STATUS see LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t
cparata 0:e4f89df7a7a5 4649 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4650 *******************************************************************************/
cparata 0:e4f89df7a7a5 4651 status_t LSM6DSL_ACC_GYRO_R_TILT_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4652 {
cparata 0:e4f89df7a7a5 4653 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4654 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4655
cparata 0:e4f89df7a7a5 4656 *value &= LSM6DSL_ACC_GYRO_TILT_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4657
cparata 0:e4f89df7a7a5 4658 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4659 }
cparata 0:e4f89df7a7a5 4660
cparata 0:e4f89df7a7a5 4661 /*******************************************************************************
cparata 0:e4f89df7a7a5 4662 * Function Name : LSM6DSL_ACC_GYRO_R_SIGN_MOT_EV_STATUS
cparata 0:e4f89df7a7a5 4663 * Description : Read SIGN_MOT_EV_STATUS
cparata 0:e4f89df7a7a5 4664 * Input : Pointer to LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t
cparata 0:e4f89df7a7a5 4665 * Output : Status of SIGN_MOT_EV_STATUS see LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t
cparata 0:e4f89df7a7a5 4666 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4667 *******************************************************************************/
cparata 0:e4f89df7a7a5 4668 status_t LSM6DSL_ACC_GYRO_R_SIGN_MOT_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t *value)
cparata 0:e4f89df7a7a5 4669 {
cparata 0:e4f89df7a7a5 4670 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4671 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4672
cparata 0:e4f89df7a7a5 4673 *value &= LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_MASK; //mask
cparata 0:e4f89df7a7a5 4674
cparata 0:e4f89df7a7a5 4675 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4676 }
cparata 0:e4f89df7a7a5 4677
cparata 0:e4f89df7a7a5 4678 /*******************************************************************************
cparata 0:e4f89df7a7a5 4679 * Function Name : LSM6DSL_ACC_GYRO_W_LIR
cparata 0:e4f89df7a7a5 4680 * Description : Write LIR
cparata 0:e4f89df7a7a5 4681 * Input : LSM6DSL_ACC_GYRO_LIR_t
cparata 0:e4f89df7a7a5 4682 * Output : None
cparata 0:e4f89df7a7a5 4683 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4684 *******************************************************************************/
cparata 0:e4f89df7a7a5 4685 status_t LSM6DSL_ACC_GYRO_W_LIR(void *handle, LSM6DSL_ACC_GYRO_LIR_t newValue)
cparata 0:e4f89df7a7a5 4686 {
cparata 0:e4f89df7a7a5 4687 u8_t value;
cparata 0:e4f89df7a7a5 4688
cparata 0:e4f89df7a7a5 4689 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4690 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4691
cparata 0:e4f89df7a7a5 4692 value &= ~LSM6DSL_ACC_GYRO_LIR_MASK;
cparata 0:e4f89df7a7a5 4693 value |= newValue;
cparata 0:e4f89df7a7a5 4694
cparata 0:e4f89df7a7a5 4695 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4696 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4697
cparata 0:e4f89df7a7a5 4698 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4699 }
cparata 0:e4f89df7a7a5 4700
cparata 0:e4f89df7a7a5 4701 /*******************************************************************************
cparata 0:e4f89df7a7a5 4702 * Function Name : LSM6DSL_ACC_GYRO_R_LIR
cparata 0:e4f89df7a7a5 4703 * Description : Read LIR
cparata 0:e4f89df7a7a5 4704 * Input : Pointer to LSM6DSL_ACC_GYRO_LIR_t
cparata 0:e4f89df7a7a5 4705 * Output : Status of LIR see LSM6DSL_ACC_GYRO_LIR_t
cparata 0:e4f89df7a7a5 4706 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4707 *******************************************************************************/
cparata 0:e4f89df7a7a5 4708 status_t LSM6DSL_ACC_GYRO_R_LIR(void *handle, LSM6DSL_ACC_GYRO_LIR_t *value)
cparata 0:e4f89df7a7a5 4709 {
cparata 0:e4f89df7a7a5 4710 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4711 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4712
cparata 0:e4f89df7a7a5 4713 *value &= LSM6DSL_ACC_GYRO_LIR_MASK; //mask
cparata 0:e4f89df7a7a5 4714
cparata 0:e4f89df7a7a5 4715 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4716 }
cparata 0:e4f89df7a7a5 4717
cparata 0:e4f89df7a7a5 4718 /*******************************************************************************
cparata 0:e4f89df7a7a5 4719 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_Z_EN
cparata 0:e4f89df7a7a5 4720 * Description : Write TAP_Z_EN
cparata 0:e4f89df7a7a5 4721 * Input : LSM6DSL_ACC_GYRO_TAP_Z_EN_t
cparata 0:e4f89df7a7a5 4722 * Output : None
cparata 0:e4f89df7a7a5 4723 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4724 *******************************************************************************/
cparata 0:e4f89df7a7a5 4725 status_t LSM6DSL_ACC_GYRO_W_TAP_Z_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Z_EN_t newValue)
cparata 0:e4f89df7a7a5 4726 {
cparata 0:e4f89df7a7a5 4727 u8_t value;
cparata 0:e4f89df7a7a5 4728
cparata 0:e4f89df7a7a5 4729 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4730 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4731
cparata 0:e4f89df7a7a5 4732 value &= ~LSM6DSL_ACC_GYRO_TAP_Z_EN_MASK;
cparata 0:e4f89df7a7a5 4733 value |= newValue;
cparata 0:e4f89df7a7a5 4734
cparata 0:e4f89df7a7a5 4735 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4736 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4737
cparata 0:e4f89df7a7a5 4738 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4739 }
cparata 0:e4f89df7a7a5 4740
cparata 0:e4f89df7a7a5 4741 /*******************************************************************************
cparata 0:e4f89df7a7a5 4742 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_Z_EN
cparata 0:e4f89df7a7a5 4743 * Description : Read TAP_Z_EN
cparata 0:e4f89df7a7a5 4744 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_Z_EN_t
cparata 0:e4f89df7a7a5 4745 * Output : Status of TAP_Z_EN see LSM6DSL_ACC_GYRO_TAP_Z_EN_t
cparata 0:e4f89df7a7a5 4746 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4747 *******************************************************************************/
cparata 0:e4f89df7a7a5 4748 status_t LSM6DSL_ACC_GYRO_R_TAP_Z_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Z_EN_t *value)
cparata 0:e4f89df7a7a5 4749 {
cparata 0:e4f89df7a7a5 4750 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4751 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4752
cparata 0:e4f89df7a7a5 4753 *value &= LSM6DSL_ACC_GYRO_TAP_Z_EN_MASK; //mask
cparata 0:e4f89df7a7a5 4754
cparata 0:e4f89df7a7a5 4755 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4756 }
cparata 0:e4f89df7a7a5 4757
cparata 0:e4f89df7a7a5 4758 /*******************************************************************************
cparata 0:e4f89df7a7a5 4759 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_Y_EN
cparata 0:e4f89df7a7a5 4760 * Description : Write TAP_Y_EN
cparata 0:e4f89df7a7a5 4761 * Input : LSM6DSL_ACC_GYRO_TAP_Y_EN_t
cparata 0:e4f89df7a7a5 4762 * Output : None
cparata 0:e4f89df7a7a5 4763 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4764 *******************************************************************************/
cparata 0:e4f89df7a7a5 4765 status_t LSM6DSL_ACC_GYRO_W_TAP_Y_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Y_EN_t newValue)
cparata 0:e4f89df7a7a5 4766 {
cparata 0:e4f89df7a7a5 4767 u8_t value;
cparata 0:e4f89df7a7a5 4768
cparata 0:e4f89df7a7a5 4769 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4770 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4771
cparata 0:e4f89df7a7a5 4772 value &= ~LSM6DSL_ACC_GYRO_TAP_Y_EN_MASK;
cparata 0:e4f89df7a7a5 4773 value |= newValue;
cparata 0:e4f89df7a7a5 4774
cparata 0:e4f89df7a7a5 4775 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4776 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4777
cparata 0:e4f89df7a7a5 4778 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4779 }
cparata 0:e4f89df7a7a5 4780
cparata 0:e4f89df7a7a5 4781 /*******************************************************************************
cparata 0:e4f89df7a7a5 4782 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_Y_EN
cparata 0:e4f89df7a7a5 4783 * Description : Read TAP_Y_EN
cparata 0:e4f89df7a7a5 4784 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_Y_EN_t
cparata 0:e4f89df7a7a5 4785 * Output : Status of TAP_Y_EN see LSM6DSL_ACC_GYRO_TAP_Y_EN_t
cparata 0:e4f89df7a7a5 4786 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4787 *******************************************************************************/
cparata 0:e4f89df7a7a5 4788 status_t LSM6DSL_ACC_GYRO_R_TAP_Y_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Y_EN_t *value)
cparata 0:e4f89df7a7a5 4789 {
cparata 0:e4f89df7a7a5 4790 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4791 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4792
cparata 0:e4f89df7a7a5 4793 *value &= LSM6DSL_ACC_GYRO_TAP_Y_EN_MASK; //mask
cparata 0:e4f89df7a7a5 4794
cparata 0:e4f89df7a7a5 4795 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4796 }
cparata 0:e4f89df7a7a5 4797
cparata 0:e4f89df7a7a5 4798 /*******************************************************************************
cparata 0:e4f89df7a7a5 4799 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_X_EN
cparata 0:e4f89df7a7a5 4800 * Description : Write TAP_X_EN
cparata 0:e4f89df7a7a5 4801 * Input : LSM6DSL_ACC_GYRO_TAP_X_EN_t
cparata 0:e4f89df7a7a5 4802 * Output : None
cparata 0:e4f89df7a7a5 4803 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4804 *******************************************************************************/
cparata 0:e4f89df7a7a5 4805 status_t LSM6DSL_ACC_GYRO_W_TAP_X_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_X_EN_t newValue)
cparata 0:e4f89df7a7a5 4806 {
cparata 0:e4f89df7a7a5 4807 u8_t value;
cparata 0:e4f89df7a7a5 4808
cparata 0:e4f89df7a7a5 4809 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4810 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4811
cparata 0:e4f89df7a7a5 4812 value &= ~LSM6DSL_ACC_GYRO_TAP_X_EN_MASK;
cparata 0:e4f89df7a7a5 4813 value |= newValue;
cparata 0:e4f89df7a7a5 4814
cparata 0:e4f89df7a7a5 4815 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4816 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4817
cparata 0:e4f89df7a7a5 4818 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4819 }
cparata 0:e4f89df7a7a5 4820
cparata 0:e4f89df7a7a5 4821 /*******************************************************************************
cparata 0:e4f89df7a7a5 4822 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_X_EN
cparata 0:e4f89df7a7a5 4823 * Description : Read TAP_X_EN
cparata 0:e4f89df7a7a5 4824 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_X_EN_t
cparata 0:e4f89df7a7a5 4825 * Output : Status of TAP_X_EN see LSM6DSL_ACC_GYRO_TAP_X_EN_t
cparata 0:e4f89df7a7a5 4826 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4827 *******************************************************************************/
cparata 0:e4f89df7a7a5 4828 status_t LSM6DSL_ACC_GYRO_R_TAP_X_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_X_EN_t *value)
cparata 0:e4f89df7a7a5 4829 {
cparata 0:e4f89df7a7a5 4830 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4831 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4832
cparata 0:e4f89df7a7a5 4833 *value &= LSM6DSL_ACC_GYRO_TAP_X_EN_MASK; //mask
cparata 0:e4f89df7a7a5 4834
cparata 0:e4f89df7a7a5 4835 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4836 }
cparata 0:e4f89df7a7a5 4837
cparata 0:e4f89df7a7a5 4838 /*******************************************************************************
cparata 0:e4f89df7a7a5 4839 * Function Name : LSM6DSL_ACC_GYRO_W_SLOPE_FDS
cparata 0:e4f89df7a7a5 4840 * Description : Write SLOPE_FDS
cparata 0:e4f89df7a7a5 4841 * Input : LSM6DSL_ACC_GYRO_SLOPE_FDS_t
cparata 0:e4f89df7a7a5 4842 * Output : None
cparata 0:e4f89df7a7a5 4843 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4844 *******************************************************************************/
cparata 0:e4f89df7a7a5 4845 status_t LSM6DSL_ACC_GYRO_W_SLOPE_FDS(void *handle, LSM6DSL_ACC_GYRO_SLOPE_FDS_t newValue)
cparata 0:e4f89df7a7a5 4846 {
cparata 0:e4f89df7a7a5 4847 u8_t value;
cparata 0:e4f89df7a7a5 4848
cparata 0:e4f89df7a7a5 4849 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4850 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4851
cparata 0:e4f89df7a7a5 4852 value &= ~LSM6DSL_ACC_GYRO_SLOPE_FDS_MASK;
cparata 0:e4f89df7a7a5 4853 value |= newValue;
cparata 0:e4f89df7a7a5 4854
cparata 0:e4f89df7a7a5 4855 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4856 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4857
cparata 0:e4f89df7a7a5 4858 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4859 }
cparata 0:e4f89df7a7a5 4860
cparata 0:e4f89df7a7a5 4861 /*******************************************************************************
cparata 0:e4f89df7a7a5 4862 * Function Name : LSM6DSL_ACC_GYRO_R_SLOPE_FDS
cparata 0:e4f89df7a7a5 4863 * Description : Read SLOPE_FDS
cparata 0:e4f89df7a7a5 4864 * Input : Pointer to LSM6DSL_ACC_GYRO_SLOPE_FDS_t
cparata 0:e4f89df7a7a5 4865 * Output : Status of SLOPE_FDS see LSM6DSL_ACC_GYRO_SLOPE_FDS_t
cparata 0:e4f89df7a7a5 4866 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4867 *******************************************************************************/
cparata 0:e4f89df7a7a5 4868 status_t LSM6DSL_ACC_GYRO_R_SLOPE_FDS(void *handle, LSM6DSL_ACC_GYRO_SLOPE_FDS_t *value)
cparata 0:e4f89df7a7a5 4869 {
cparata 0:e4f89df7a7a5 4870 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4871 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4872
cparata 0:e4f89df7a7a5 4873 *value &= LSM6DSL_ACC_GYRO_SLOPE_FDS_MASK; //mask
cparata 0:e4f89df7a7a5 4874
cparata 0:e4f89df7a7a5 4875 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4876 }
cparata 0:e4f89df7a7a5 4877
cparata 0:e4f89df7a7a5 4878 /*******************************************************************************
cparata 0:e4f89df7a7a5 4879 * Function Name : LSM6DSL_ACC_GYRO_W_BASIC_INT
cparata 0:e4f89df7a7a5 4880 * Description : Write INTERRUPTS_ENABLE
cparata 0:e4f89df7a7a5 4881 * Input : LSM6DSL_ACC_GYRO_INT_EN_t
cparata 0:e4f89df7a7a5 4882 * Output : None
cparata 0:e4f89df7a7a5 4883 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4884 *******************************************************************************/
cparata 0:e4f89df7a7a5 4885 status_t LSM6DSL_ACC_GYRO_W_BASIC_INT(void *handle, LSM6DSL_ACC_GYRO_INT_EN_t newValue)
cparata 0:e4f89df7a7a5 4886 {
cparata 0:e4f89df7a7a5 4887 u8_t value;
cparata 0:e4f89df7a7a5 4888
cparata 0:e4f89df7a7a5 4889 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4890 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4891
cparata 0:e4f89df7a7a5 4892 value &= ~LSM6DSL_ACC_GYRO_INT_EN_MASK;
cparata 0:e4f89df7a7a5 4893 value |= newValue;
cparata 0:e4f89df7a7a5 4894
cparata 0:e4f89df7a7a5 4895 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:e4f89df7a7a5 4896 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4897
cparata 0:e4f89df7a7a5 4898 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4899 }
cparata 0:e4f89df7a7a5 4900
cparata 0:e4f89df7a7a5 4901 /*******************************************************************************
cparata 0:e4f89df7a7a5 4902 * Function Name : LSM6DSL_ACC_GYRO_R_BASIC_INT
cparata 0:e4f89df7a7a5 4903 * Description : Read INTERRUPTS_ENABLE
cparata 0:e4f89df7a7a5 4904 * Input : Pointer to LSM6DSL_ACC_GYRO_INT_EN_t
cparata 0:e4f89df7a7a5 4905 * Output : Status of INTERRUPTS_ENABLE see LSM6DSL_ACC_GYRO_INT_EN_t
cparata 0:e4f89df7a7a5 4906 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4907 *******************************************************************************/
cparata 0:e4f89df7a7a5 4908 status_t LSM6DSL_ACC_GYRO_R_BASIC_INT(void *handle, LSM6DSL_ACC_GYRO_INT_EN_t *value)
cparata 0:e4f89df7a7a5 4909 {
cparata 0:e4f89df7a7a5 4910 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4911 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4912
cparata 0:e4f89df7a7a5 4913 *value &= LSM6DSL_ACC_GYRO_INT_EN_MASK; //mask
cparata 0:e4f89df7a7a5 4914
cparata 0:e4f89df7a7a5 4915 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4916 }
cparata 0:e4f89df7a7a5 4917
cparata 0:e4f89df7a7a5 4918 /*******************************************************************************
cparata 0:e4f89df7a7a5 4919 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_THS
cparata 0:e4f89df7a7a5 4920 * Description : Write TAP_THS
cparata 0:e4f89df7a7a5 4921 * Input : u8_t
cparata 0:e4f89df7a7a5 4922 * Output : None
cparata 0:e4f89df7a7a5 4923 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4924 *******************************************************************************/
cparata 0:e4f89df7a7a5 4925 status_t LSM6DSL_ACC_GYRO_W_TAP_THS(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 4926 {
cparata 0:e4f89df7a7a5 4927 u8_t value;
cparata 0:e4f89df7a7a5 4928
cparata 0:e4f89df7a7a5 4929 newValue = newValue << LSM6DSL_ACC_GYRO_TAP_THS_POSITION; //mask
cparata 0:e4f89df7a7a5 4930 newValue &= LSM6DSL_ACC_GYRO_TAP_THS_MASK; //coerce
cparata 0:e4f89df7a7a5 4931
cparata 0:e4f89df7a7a5 4932 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:e4f89df7a7a5 4933 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4934
cparata 0:e4f89df7a7a5 4935 value &= ~LSM6DSL_ACC_GYRO_TAP_THS_MASK;
cparata 0:e4f89df7a7a5 4936 value |= newValue;
cparata 0:e4f89df7a7a5 4937
cparata 0:e4f89df7a7a5 4938 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:e4f89df7a7a5 4939 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4940
cparata 0:e4f89df7a7a5 4941 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4942 }
cparata 0:e4f89df7a7a5 4943
cparata 0:e4f89df7a7a5 4944 /*******************************************************************************
cparata 0:e4f89df7a7a5 4945 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_THS
cparata 0:e4f89df7a7a5 4946 * Description : Read TAP_THS
cparata 0:e4f89df7a7a5 4947 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 4948 * Output : Status of TAP_THS
cparata 0:e4f89df7a7a5 4949 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4950 *******************************************************************************/
cparata 0:e4f89df7a7a5 4951 status_t LSM6DSL_ACC_GYRO_R_TAP_THS(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 4952 {
cparata 0:e4f89df7a7a5 4953 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4954 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4955
cparata 0:e4f89df7a7a5 4956 *value &= LSM6DSL_ACC_GYRO_TAP_THS_MASK; //coerce
cparata 0:e4f89df7a7a5 4957 *value = *value >> LSM6DSL_ACC_GYRO_TAP_THS_POSITION; //mask
cparata 0:e4f89df7a7a5 4958
cparata 0:e4f89df7a7a5 4959 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4960 }
cparata 0:e4f89df7a7a5 4961
cparata 0:e4f89df7a7a5 4962 /*******************************************************************************
cparata 0:e4f89df7a7a5 4963 * Function Name : LSM6DSL_ACC_GYRO_W_SIXD_THS
cparata 0:e4f89df7a7a5 4964 * Description : Write SIXD_THS
cparata 0:e4f89df7a7a5 4965 * Input : LSM6DSL_ACC_GYRO_SIXD_THS_t
cparata 0:e4f89df7a7a5 4966 * Output : None
cparata 0:e4f89df7a7a5 4967 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4968 *******************************************************************************/
cparata 0:e4f89df7a7a5 4969 status_t LSM6DSL_ACC_GYRO_W_SIXD_THS(void *handle, LSM6DSL_ACC_GYRO_SIXD_THS_t newValue)
cparata 0:e4f89df7a7a5 4970 {
cparata 0:e4f89df7a7a5 4971 u8_t value;
cparata 0:e4f89df7a7a5 4972
cparata 0:e4f89df7a7a5 4973 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:e4f89df7a7a5 4974 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4975
cparata 0:e4f89df7a7a5 4976 value &= ~LSM6DSL_ACC_GYRO_SIXD_THS_MASK;
cparata 0:e4f89df7a7a5 4977 value |= newValue;
cparata 0:e4f89df7a7a5 4978
cparata 0:e4f89df7a7a5 4979 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:e4f89df7a7a5 4980 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4981
cparata 0:e4f89df7a7a5 4982 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 4983 }
cparata 0:e4f89df7a7a5 4984
cparata 0:e4f89df7a7a5 4985 /*******************************************************************************
cparata 0:e4f89df7a7a5 4986 * Function Name : LSM6DSL_ACC_GYRO_R_SIXD_THS
cparata 0:e4f89df7a7a5 4987 * Description : Read SIXD_THS
cparata 0:e4f89df7a7a5 4988 * Input : Pointer to LSM6DSL_ACC_GYRO_SIXD_THS_t
cparata 0:e4f89df7a7a5 4989 * Output : Status of SIXD_THS see LSM6DSL_ACC_GYRO_SIXD_THS_t
cparata 0:e4f89df7a7a5 4990 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 4991 *******************************************************************************/
cparata 0:e4f89df7a7a5 4992 status_t LSM6DSL_ACC_GYRO_R_SIXD_THS(void *handle, LSM6DSL_ACC_GYRO_SIXD_THS_t *value)
cparata 0:e4f89df7a7a5 4993 {
cparata 0:e4f89df7a7a5 4994 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 4995 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 4996
cparata 0:e4f89df7a7a5 4997 *value &= LSM6DSL_ACC_GYRO_SIXD_THS_MASK; //mask
cparata 0:e4f89df7a7a5 4998
cparata 0:e4f89df7a7a5 4999 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5000 }
cparata 0:e4f89df7a7a5 5001
cparata 0:e4f89df7a7a5 5002 /*******************************************************************************
cparata 0:e4f89df7a7a5 5003 * Function Name : LSM6DSL_ACC_GYRO_W_D4D
cparata 0:e4f89df7a7a5 5004 * Description : Write D4D_EN
cparata 0:e4f89df7a7a5 5005 * Input : LSM6DSL_ACC_GYRO_D4D_t
cparata 0:e4f89df7a7a5 5006 * Output : None
cparata 0:e4f89df7a7a5 5007 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5008 *******************************************************************************/
cparata 0:e4f89df7a7a5 5009 status_t LSM6DSL_ACC_GYRO_W_D4D(void *handle, LSM6DSL_ACC_GYRO_D4D_t newValue)
cparata 0:e4f89df7a7a5 5010 {
cparata 0:e4f89df7a7a5 5011 u8_t value;
cparata 0:e4f89df7a7a5 5012
cparata 0:e4f89df7a7a5 5013 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:e4f89df7a7a5 5014 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5015
cparata 0:e4f89df7a7a5 5016 value &= ~LSM6DSL_ACC_GYRO_D4D_MASK;
cparata 0:e4f89df7a7a5 5017 value |= newValue;
cparata 0:e4f89df7a7a5 5018
cparata 0:e4f89df7a7a5 5019 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:e4f89df7a7a5 5020 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5021
cparata 0:e4f89df7a7a5 5022 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5023 }
cparata 0:e4f89df7a7a5 5024
cparata 0:e4f89df7a7a5 5025 /*******************************************************************************
cparata 0:e4f89df7a7a5 5026 * Function Name : LSM6DSL_ACC_GYRO_R_D4D
cparata 0:e4f89df7a7a5 5027 * Description : Read D4D_EN
cparata 0:e4f89df7a7a5 5028 * Input : Pointer to LSM6DSL_ACC_GYRO_D4D_t
cparata 0:e4f89df7a7a5 5029 * Output : Status of D4D_EN see LSM6DSL_ACC_GYRO_D4D_t
cparata 0:e4f89df7a7a5 5030 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5031 *******************************************************************************/
cparata 0:e4f89df7a7a5 5032 status_t LSM6DSL_ACC_GYRO_R_D4D(void *handle, LSM6DSL_ACC_GYRO_D4D_t *value)
cparata 0:e4f89df7a7a5 5033 {
cparata 0:e4f89df7a7a5 5034 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5035 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5036
cparata 0:e4f89df7a7a5 5037 *value &= LSM6DSL_ACC_GYRO_D4D_MASK; //mask
cparata 0:e4f89df7a7a5 5038
cparata 0:e4f89df7a7a5 5039 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5040 }
cparata 0:e4f89df7a7a5 5041
cparata 0:e4f89df7a7a5 5042 /*******************************************************************************
cparata 0:e4f89df7a7a5 5043 * Function Name : LSM6DSL_ACC_GYRO_W_SHOCK_Duration
cparata 0:e4f89df7a7a5 5044 * Description : Write SHOCK
cparata 0:e4f89df7a7a5 5045 * Input : u8_t
cparata 0:e4f89df7a7a5 5046 * Output : None
cparata 0:e4f89df7a7a5 5047 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5048 *******************************************************************************/
cparata 0:e4f89df7a7a5 5049 status_t LSM6DSL_ACC_GYRO_W_SHOCK_Duration(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 5050 {
cparata 0:e4f89df7a7a5 5051 u8_t value;
cparata 0:e4f89df7a7a5 5052
cparata 0:e4f89df7a7a5 5053 newValue = newValue << LSM6DSL_ACC_GYRO_SHOCK_POSITION; //mask
cparata 0:e4f89df7a7a5 5054 newValue &= LSM6DSL_ACC_GYRO_SHOCK_MASK; //coerce
cparata 0:e4f89df7a7a5 5055
cparata 0:e4f89df7a7a5 5056 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:e4f89df7a7a5 5057 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5058
cparata 0:e4f89df7a7a5 5059 value &= ~LSM6DSL_ACC_GYRO_SHOCK_MASK;
cparata 0:e4f89df7a7a5 5060 value |= newValue;
cparata 0:e4f89df7a7a5 5061
cparata 0:e4f89df7a7a5 5062 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:e4f89df7a7a5 5063 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5064
cparata 0:e4f89df7a7a5 5065 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5066 }
cparata 0:e4f89df7a7a5 5067
cparata 0:e4f89df7a7a5 5068 /*******************************************************************************
cparata 0:e4f89df7a7a5 5069 * Function Name : LSM6DSL_ACC_GYRO_R_SHOCK_Duration
cparata 0:e4f89df7a7a5 5070 * Description : Read SHOCK
cparata 0:e4f89df7a7a5 5071 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 5072 * Output : Status of SHOCK
cparata 0:e4f89df7a7a5 5073 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5074 *******************************************************************************/
cparata 0:e4f89df7a7a5 5075 status_t LSM6DSL_ACC_GYRO_R_SHOCK_Duration(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 5076 {
cparata 0:e4f89df7a7a5 5077 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5078 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5079
cparata 0:e4f89df7a7a5 5080 *value &= LSM6DSL_ACC_GYRO_SHOCK_MASK; //coerce
cparata 0:e4f89df7a7a5 5081 *value = *value >> LSM6DSL_ACC_GYRO_SHOCK_POSITION; //mask
cparata 0:e4f89df7a7a5 5082
cparata 0:e4f89df7a7a5 5083 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5084 }
cparata 0:e4f89df7a7a5 5085 /*******************************************************************************
cparata 0:e4f89df7a7a5 5086 * Function Name : LSM6DSL_ACC_GYRO_W_QUIET_Duration
cparata 0:e4f89df7a7a5 5087 * Description : Write QUIET
cparata 0:e4f89df7a7a5 5088 * Input : u8_t
cparata 0:e4f89df7a7a5 5089 * Output : None
cparata 0:e4f89df7a7a5 5090 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5091 *******************************************************************************/
cparata 0:e4f89df7a7a5 5092 status_t LSM6DSL_ACC_GYRO_W_QUIET_Duration(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 5093 {
cparata 0:e4f89df7a7a5 5094 u8_t value;
cparata 0:e4f89df7a7a5 5095
cparata 0:e4f89df7a7a5 5096 newValue = newValue << LSM6DSL_ACC_GYRO_QUIET_POSITION; //mask
cparata 0:e4f89df7a7a5 5097 newValue &= LSM6DSL_ACC_GYRO_QUIET_MASK; //coerce
cparata 0:e4f89df7a7a5 5098
cparata 0:e4f89df7a7a5 5099 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:e4f89df7a7a5 5100 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5101
cparata 0:e4f89df7a7a5 5102 value &= ~LSM6DSL_ACC_GYRO_QUIET_MASK;
cparata 0:e4f89df7a7a5 5103 value |= newValue;
cparata 0:e4f89df7a7a5 5104
cparata 0:e4f89df7a7a5 5105 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:e4f89df7a7a5 5106 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5107
cparata 0:e4f89df7a7a5 5108 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5109 }
cparata 0:e4f89df7a7a5 5110
cparata 0:e4f89df7a7a5 5111 /*******************************************************************************
cparata 0:e4f89df7a7a5 5112 * Function Name : LSM6DSL_ACC_GYRO_R_QUIET_Duration
cparata 0:e4f89df7a7a5 5113 * Description : Read QUIET
cparata 0:e4f89df7a7a5 5114 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 5115 * Output : Status of QUIET
cparata 0:e4f89df7a7a5 5116 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5117 *******************************************************************************/
cparata 0:e4f89df7a7a5 5118 status_t LSM6DSL_ACC_GYRO_R_QUIET_Duration(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 5119 {
cparata 0:e4f89df7a7a5 5120 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5121 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5122
cparata 0:e4f89df7a7a5 5123 *value &= LSM6DSL_ACC_GYRO_QUIET_MASK; //coerce
cparata 0:e4f89df7a7a5 5124 *value = *value >> LSM6DSL_ACC_GYRO_QUIET_POSITION; //mask
cparata 0:e4f89df7a7a5 5125
cparata 0:e4f89df7a7a5 5126 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5127 }
cparata 0:e4f89df7a7a5 5128
cparata 0:e4f89df7a7a5 5129 /*******************************************************************************
cparata 0:e4f89df7a7a5 5130 * Function Name : LSM6DSL_ACC_GYRO_W_DUR
cparata 0:e4f89df7a7a5 5131 * Description : Write DUR
cparata 0:e4f89df7a7a5 5132 * Input : u8_t
cparata 0:e4f89df7a7a5 5133 * Output : None
cparata 0:e4f89df7a7a5 5134 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5135 *******************************************************************************/
cparata 0:e4f89df7a7a5 5136 status_t LSM6DSL_ACC_GYRO_W_DUR(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 5137 {
cparata 0:e4f89df7a7a5 5138 u8_t value;
cparata 0:e4f89df7a7a5 5139
cparata 0:e4f89df7a7a5 5140 newValue = newValue << LSM6DSL_ACC_GYRO_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5141 newValue &= LSM6DSL_ACC_GYRO_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5142
cparata 0:e4f89df7a7a5 5143 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:e4f89df7a7a5 5144 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5145
cparata 0:e4f89df7a7a5 5146 value &= ~LSM6DSL_ACC_GYRO_DUR_MASK;
cparata 0:e4f89df7a7a5 5147 value |= newValue;
cparata 0:e4f89df7a7a5 5148
cparata 0:e4f89df7a7a5 5149 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:e4f89df7a7a5 5150 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5151
cparata 0:e4f89df7a7a5 5152 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5153 }
cparata 0:e4f89df7a7a5 5154
cparata 0:e4f89df7a7a5 5155 /*******************************************************************************
cparata 0:e4f89df7a7a5 5156 * Function Name : LSM6DSL_ACC_GYRO_R_DUR
cparata 0:e4f89df7a7a5 5157 * Description : Read DUR
cparata 0:e4f89df7a7a5 5158 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 5159 * Output : Status of DUR
cparata 0:e4f89df7a7a5 5160 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5161 *******************************************************************************/
cparata 0:e4f89df7a7a5 5162 status_t LSM6DSL_ACC_GYRO_R_DUR(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 5163 {
cparata 0:e4f89df7a7a5 5164 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5165 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5166
cparata 0:e4f89df7a7a5 5167 *value &= LSM6DSL_ACC_GYRO_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5168 *value = *value >> LSM6DSL_ACC_GYRO_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5169
cparata 0:e4f89df7a7a5 5170 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5171 }
cparata 0:e4f89df7a7a5 5172
cparata 0:e4f89df7a7a5 5173 /*******************************************************************************
cparata 0:e4f89df7a7a5 5174 * Function Name : LSM6DSL_ACC_GYRO_W_WK_THS
cparata 0:e4f89df7a7a5 5175 * Description : Write WK_THS
cparata 0:e4f89df7a7a5 5176 * Input : u8_t
cparata 0:e4f89df7a7a5 5177 * Output : None
cparata 0:e4f89df7a7a5 5178 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5179 *******************************************************************************/
cparata 0:e4f89df7a7a5 5180 status_t LSM6DSL_ACC_GYRO_W_WK_THS(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 5181 {
cparata 0:e4f89df7a7a5 5182 u8_t value;
cparata 0:e4f89df7a7a5 5183
cparata 0:e4f89df7a7a5 5184 newValue = newValue << LSM6DSL_ACC_GYRO_WK_THS_POSITION; //mask
cparata 0:e4f89df7a7a5 5185 newValue &= LSM6DSL_ACC_GYRO_WK_THS_MASK; //coerce
cparata 0:e4f89df7a7a5 5186
cparata 0:e4f89df7a7a5 5187 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:e4f89df7a7a5 5188 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5189
cparata 0:e4f89df7a7a5 5190 value &= ~LSM6DSL_ACC_GYRO_WK_THS_MASK;
cparata 0:e4f89df7a7a5 5191 value |= newValue;
cparata 0:e4f89df7a7a5 5192
cparata 0:e4f89df7a7a5 5193 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:e4f89df7a7a5 5194 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5195
cparata 0:e4f89df7a7a5 5196 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5197 }
cparata 0:e4f89df7a7a5 5198
cparata 0:e4f89df7a7a5 5199 /*******************************************************************************
cparata 0:e4f89df7a7a5 5200 * Function Name : LSM6DSL_ACC_GYRO_R_WK_THS
cparata 0:e4f89df7a7a5 5201 * Description : Read WK_THS
cparata 0:e4f89df7a7a5 5202 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 5203 * Output : Status of WK_THS
cparata 0:e4f89df7a7a5 5204 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5205 *******************************************************************************/
cparata 0:e4f89df7a7a5 5206 status_t LSM6DSL_ACC_GYRO_R_WK_THS(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 5207 {
cparata 0:e4f89df7a7a5 5208 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5209 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5210
cparata 0:e4f89df7a7a5 5211 *value &= LSM6DSL_ACC_GYRO_WK_THS_MASK; //coerce
cparata 0:e4f89df7a7a5 5212 *value = *value >> LSM6DSL_ACC_GYRO_WK_THS_POSITION; //mask
cparata 0:e4f89df7a7a5 5213
cparata 0:e4f89df7a7a5 5214 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5215 }
cparata 0:e4f89df7a7a5 5216
cparata 0:e4f89df7a7a5 5217 /*******************************************************************************
cparata 0:e4f89df7a7a5 5218 * Function Name : LSM6DSL_ACC_GYRO_W_SINGLE_DOUBLE_TAP_EV
cparata 0:e4f89df7a7a5 5219 * Description : Write SINGLE_DOUBLE_TAP
cparata 0:e4f89df7a7a5 5220 * Input : LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t
cparata 0:e4f89df7a7a5 5221 * Output : None
cparata 0:e4f89df7a7a5 5222 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5223 *******************************************************************************/
cparata 0:e4f89df7a7a5 5224 status_t LSM6DSL_ACC_GYRO_W_SINGLE_DOUBLE_TAP_EV(void *handle, LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t newValue)
cparata 0:e4f89df7a7a5 5225 {
cparata 0:e4f89df7a7a5 5226 u8_t value;
cparata 0:e4f89df7a7a5 5227
cparata 0:e4f89df7a7a5 5228 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:e4f89df7a7a5 5229 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5230
cparata 0:e4f89df7a7a5 5231 value &= ~LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_MASK;
cparata 0:e4f89df7a7a5 5232 value |= newValue;
cparata 0:e4f89df7a7a5 5233
cparata 0:e4f89df7a7a5 5234 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:e4f89df7a7a5 5235 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5236
cparata 0:e4f89df7a7a5 5237 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5238 }
cparata 0:e4f89df7a7a5 5239
cparata 0:e4f89df7a7a5 5240 /*******************************************************************************
cparata 0:e4f89df7a7a5 5241 * Function Name : LSM6DSL_ACC_GYRO_R_SINGLE_DOUBLE_TAP_EV
cparata 0:e4f89df7a7a5 5242 * Description : Read SINGLE_DOUBLE_TAP
cparata 0:e4f89df7a7a5 5243 * Input : Pointer to LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t
cparata 0:e4f89df7a7a5 5244 * Output : Status of SINGLE_DOUBLE_TAP see LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t
cparata 0:e4f89df7a7a5 5245 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5246 *******************************************************************************/
cparata 0:e4f89df7a7a5 5247 status_t LSM6DSL_ACC_GYRO_R_SINGLE_DOUBLE_TAP_EV(void *handle, LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t *value)
cparata 0:e4f89df7a7a5 5248 {
cparata 0:e4f89df7a7a5 5249 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5250 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5251
cparata 0:e4f89df7a7a5 5252 *value &= LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 5253
cparata 0:e4f89df7a7a5 5254 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5255 }
cparata 0:e4f89df7a7a5 5256
cparata 0:e4f89df7a7a5 5257 /*******************************************************************************
cparata 0:e4f89df7a7a5 5258 * Function Name : LSM6DSL_ACC_GYRO_W_SLEEP_DUR
cparata 0:e4f89df7a7a5 5259 * Description : Write SLEEP_DUR
cparata 0:e4f89df7a7a5 5260 * Input : u8_t
cparata 0:e4f89df7a7a5 5261 * Output : None
cparata 0:e4f89df7a7a5 5262 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5263 *******************************************************************************/
cparata 0:e4f89df7a7a5 5264 status_t LSM6DSL_ACC_GYRO_W_SLEEP_DUR(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 5265 {
cparata 0:e4f89df7a7a5 5266 u8_t value;
cparata 0:e4f89df7a7a5 5267
cparata 0:e4f89df7a7a5 5268 newValue = newValue << LSM6DSL_ACC_GYRO_SLEEP_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5269 newValue &= LSM6DSL_ACC_GYRO_SLEEP_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5270
cparata 0:e4f89df7a7a5 5271 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5272 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5273
cparata 0:e4f89df7a7a5 5274 value &= ~LSM6DSL_ACC_GYRO_SLEEP_DUR_MASK;
cparata 0:e4f89df7a7a5 5275 value |= newValue;
cparata 0:e4f89df7a7a5 5276
cparata 0:e4f89df7a7a5 5277 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5278 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5279
cparata 0:e4f89df7a7a5 5280 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5281 }
cparata 0:e4f89df7a7a5 5282
cparata 0:e4f89df7a7a5 5283 /*******************************************************************************
cparata 0:e4f89df7a7a5 5284 * Function Name : LSM6DSL_ACC_GYRO_R_SLEEP_DUR
cparata 0:e4f89df7a7a5 5285 * Description : Read SLEEP_DUR
cparata 0:e4f89df7a7a5 5286 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 5287 * Output : Status of SLEEP_DUR
cparata 0:e4f89df7a7a5 5288 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5289 *******************************************************************************/
cparata 0:e4f89df7a7a5 5290 status_t LSM6DSL_ACC_GYRO_R_SLEEP_DUR(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 5291 {
cparata 0:e4f89df7a7a5 5292 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5293 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5294
cparata 0:e4f89df7a7a5 5295 *value &= LSM6DSL_ACC_GYRO_SLEEP_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5296 *value = *value >> LSM6DSL_ACC_GYRO_SLEEP_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5297
cparata 0:e4f89df7a7a5 5298 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5299 }
cparata 0:e4f89df7a7a5 5300
cparata 0:e4f89df7a7a5 5301 /*******************************************************************************
cparata 0:e4f89df7a7a5 5302 * Function Name : LSM6DSL_ACC_GYRO_W_TIMER_HR
cparata 0:e4f89df7a7a5 5303 * Description : Write TIMER_HR
cparata 0:e4f89df7a7a5 5304 * Input : LSM6DSL_ACC_GYRO_TIMER_HR_t
cparata 0:e4f89df7a7a5 5305 * Output : None
cparata 0:e4f89df7a7a5 5306 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5307 *******************************************************************************/
cparata 0:e4f89df7a7a5 5308 status_t LSM6DSL_ACC_GYRO_W_TIMER_HR(void *handle, LSM6DSL_ACC_GYRO_TIMER_HR_t newValue)
cparata 0:e4f89df7a7a5 5309 {
cparata 0:e4f89df7a7a5 5310 u8_t value;
cparata 0:e4f89df7a7a5 5311
cparata 0:e4f89df7a7a5 5312 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5313 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5314
cparata 0:e4f89df7a7a5 5315 value &= ~LSM6DSL_ACC_GYRO_TIMER_HR_MASK;
cparata 0:e4f89df7a7a5 5316 value |= newValue;
cparata 0:e4f89df7a7a5 5317
cparata 0:e4f89df7a7a5 5318 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5319 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5320
cparata 0:e4f89df7a7a5 5321 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5322 }
cparata 0:e4f89df7a7a5 5323
cparata 0:e4f89df7a7a5 5324 /*******************************************************************************
cparata 0:e4f89df7a7a5 5325 * Function Name : LSM6DSL_ACC_GYRO_R_TIMER_HR
cparata 0:e4f89df7a7a5 5326 * Description : Read TIMER_HR
cparata 0:e4f89df7a7a5 5327 * Input : Pointer to LSM6DSL_ACC_GYRO_TIMER_HR_t
cparata 0:e4f89df7a7a5 5328 * Output : Status of TIMER_HR see LSM6DSL_ACC_GYRO_TIMER_HR_t
cparata 0:e4f89df7a7a5 5329 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5330 *******************************************************************************/
cparata 0:e4f89df7a7a5 5331 status_t LSM6DSL_ACC_GYRO_R_TIMER_HR(void *handle, LSM6DSL_ACC_GYRO_TIMER_HR_t *value)
cparata 0:e4f89df7a7a5 5332 {
cparata 0:e4f89df7a7a5 5333 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5334 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5335
cparata 0:e4f89df7a7a5 5336 *value &= LSM6DSL_ACC_GYRO_TIMER_HR_MASK; //mask
cparata 0:e4f89df7a7a5 5337
cparata 0:e4f89df7a7a5 5338 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5339 }
cparata 0:e4f89df7a7a5 5340
cparata 0:e4f89df7a7a5 5341 /*******************************************************************************
cparata 0:e4f89df7a7a5 5342 * Function Name : LSM6DSL_ACC_GYRO_W_WAKE_DUR
cparata 0:e4f89df7a7a5 5343 * Description : Write WAKE_DUR
cparata 0:e4f89df7a7a5 5344 * Input : u8_t
cparata 0:e4f89df7a7a5 5345 * Output : None
cparata 0:e4f89df7a7a5 5346 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5347 *******************************************************************************/
cparata 0:e4f89df7a7a5 5348 status_t LSM6DSL_ACC_GYRO_W_WAKE_DUR(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 5349 {
cparata 0:e4f89df7a7a5 5350 u8_t value;
cparata 0:e4f89df7a7a5 5351
cparata 0:e4f89df7a7a5 5352 newValue = newValue << LSM6DSL_ACC_GYRO_WAKE_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5353 newValue &= LSM6DSL_ACC_GYRO_WAKE_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5354
cparata 0:e4f89df7a7a5 5355 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5356 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5357
cparata 0:e4f89df7a7a5 5358 value &= ~LSM6DSL_ACC_GYRO_WAKE_DUR_MASK;
cparata 0:e4f89df7a7a5 5359 value |= newValue;
cparata 0:e4f89df7a7a5 5360
cparata 0:e4f89df7a7a5 5361 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5362 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5363
cparata 0:e4f89df7a7a5 5364 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5365 }
cparata 0:e4f89df7a7a5 5366
cparata 0:e4f89df7a7a5 5367 /*******************************************************************************
cparata 0:e4f89df7a7a5 5368 * Function Name : LSM6DSL_ACC_GYRO_R_WAKE_DUR
cparata 0:e4f89df7a7a5 5369 * Description : Read WAKE_DUR
cparata 0:e4f89df7a7a5 5370 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 5371 * Output : Status of WAKE_DUR
cparata 0:e4f89df7a7a5 5372 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5373 *******************************************************************************/
cparata 0:e4f89df7a7a5 5374 status_t LSM6DSL_ACC_GYRO_R_WAKE_DUR(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 5375 {
cparata 0:e4f89df7a7a5 5376 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5377 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5378
cparata 0:e4f89df7a7a5 5379 *value &= LSM6DSL_ACC_GYRO_WAKE_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5380 *value = *value >> LSM6DSL_ACC_GYRO_WAKE_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5381
cparata 0:e4f89df7a7a5 5382 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5383 }
cparata 0:e4f89df7a7a5 5384
cparata 0:e4f89df7a7a5 5385 /*******************************************************************************
cparata 0:e4f89df7a7a5 5386 * Function Name : LSM6DSL_ACC_GYRO_W_FF_THS
cparata 0:e4f89df7a7a5 5387 * Description : Write FF_THS
cparata 0:e4f89df7a7a5 5388 * Input : LSM6DSL_ACC_GYRO_FF_THS_t
cparata 0:e4f89df7a7a5 5389 * Output : None
cparata 0:e4f89df7a7a5 5390 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5391 *******************************************************************************/
cparata 0:e4f89df7a7a5 5392 status_t LSM6DSL_ACC_GYRO_W_FF_THS(void *handle, LSM6DSL_ACC_GYRO_FF_THS_t newValue)
cparata 0:e4f89df7a7a5 5393 {
cparata 0:e4f89df7a7a5 5394 u8_t value;
cparata 0:e4f89df7a7a5 5395
cparata 0:e4f89df7a7a5 5396 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:e4f89df7a7a5 5397 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5398
cparata 0:e4f89df7a7a5 5399 value &= ~LSM6DSL_ACC_GYRO_FF_THS_MASK;
cparata 0:e4f89df7a7a5 5400 value |= newValue;
cparata 0:e4f89df7a7a5 5401
cparata 0:e4f89df7a7a5 5402 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:e4f89df7a7a5 5403 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5404
cparata 0:e4f89df7a7a5 5405 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5406 }
cparata 0:e4f89df7a7a5 5407
cparata 0:e4f89df7a7a5 5408 /*******************************************************************************
cparata 0:e4f89df7a7a5 5409 * Function Name : LSM6DSL_ACC_GYRO_R_FF_THS
cparata 0:e4f89df7a7a5 5410 * Description : Read FF_THS
cparata 0:e4f89df7a7a5 5411 * Input : Pointer to LSM6DSL_ACC_GYRO_FF_THS_t
cparata 0:e4f89df7a7a5 5412 * Output : Status of FF_THS see LSM6DSL_ACC_GYRO_FF_THS_t
cparata 0:e4f89df7a7a5 5413 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5414 *******************************************************************************/
cparata 0:e4f89df7a7a5 5415 status_t LSM6DSL_ACC_GYRO_R_FF_THS(void *handle, LSM6DSL_ACC_GYRO_FF_THS_t *value)
cparata 0:e4f89df7a7a5 5416 {
cparata 0:e4f89df7a7a5 5417 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5418 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5419
cparata 0:e4f89df7a7a5 5420 *value &= LSM6DSL_ACC_GYRO_FF_THS_MASK; //mask
cparata 0:e4f89df7a7a5 5421
cparata 0:e4f89df7a7a5 5422 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5423 }
cparata 0:e4f89df7a7a5 5424
cparata 0:e4f89df7a7a5 5425 /*******************************************************************************
cparata 0:e4f89df7a7a5 5426 * Function Name : LSM6DSL_ACC_GYRO_W_FF_Duration
cparata 0:e4f89df7a7a5 5427 * Description : Write FF_DUR
cparata 0:e4f89df7a7a5 5428 * Input : u8_t
cparata 0:e4f89df7a7a5 5429 * Output : None
cparata 0:e4f89df7a7a5 5430 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5431 *******************************************************************************/
cparata 0:e4f89df7a7a5 5432 status_t LSM6DSL_ACC_GYRO_W_FF_Duration(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 5433 {
cparata 0:e4f89df7a7a5 5434 u8_t valueH, valueL;
cparata 0:e4f89df7a7a5 5435 u8_t value;
cparata 0:e4f89df7a7a5 5436
cparata 0:e4f89df7a7a5 5437 valueL = newValue & 0x1F;
cparata 0:e4f89df7a7a5 5438 valueH = (newValue >> 5) & 0x1;
cparata 0:e4f89df7a7a5 5439
cparata 0:e4f89df7a7a5 5440 /* Low part in FREE_FALL reg */
cparata 0:e4f89df7a7a5 5441 valueL = valueL << LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5442 valueL &= LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5443
cparata 0:e4f89df7a7a5 5444 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:e4f89df7a7a5 5445 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5446
cparata 0:e4f89df7a7a5 5447 value &= ~LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_MASK;
cparata 0:e4f89df7a7a5 5448 value |= valueL;
cparata 0:e4f89df7a7a5 5449
cparata 0:e4f89df7a7a5 5450 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:e4f89df7a7a5 5451 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5452
cparata 0:e4f89df7a7a5 5453 /* High part in WAKE_UP_DUR reg */
cparata 0:e4f89df7a7a5 5454 valueH = valueH << LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5455 valueH &= LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5456
cparata 0:e4f89df7a7a5 5457 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5458 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5459
cparata 0:e4f89df7a7a5 5460 value &= ~LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_MASK;
cparata 0:e4f89df7a7a5 5461 value |= valueH;
cparata 0:e4f89df7a7a5 5462
cparata 0:e4f89df7a7a5 5463 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:e4f89df7a7a5 5464 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5465
cparata 0:e4f89df7a7a5 5466 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5467 }
cparata 0:e4f89df7a7a5 5468
cparata 0:e4f89df7a7a5 5469 /*******************************************************************************
cparata 0:e4f89df7a7a5 5470 * Function Name : LSM6DSL_ACC_GYRO_R_FF_Duration
cparata 0:e4f89df7a7a5 5471 * Description : Read FF_DUR
cparata 0:e4f89df7a7a5 5472 * Input : Pointer to u8_t
cparata 0:e4f89df7a7a5 5473 * Output : Status of FF_DUR
cparata 0:e4f89df7a7a5 5474 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5475 *******************************************************************************/
cparata 0:e4f89df7a7a5 5476 status_t LSM6DSL_ACC_GYRO_R_FF_Duration(void *handle, u8_t *value)
cparata 0:e4f89df7a7a5 5477 {
cparata 0:e4f89df7a7a5 5478 u8_t valueH, valueL;
cparata 0:e4f89df7a7a5 5479
cparata 0:e4f89df7a7a5 5480 /* Low part from FREE_FALL reg */
cparata 0:e4f89df7a7a5 5481 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, (u8_t *)&valueL, 1) )
cparata 0:e4f89df7a7a5 5482 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5483
cparata 0:e4f89df7a7a5 5484 valueL &= LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5485 valueL = valueL >> LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5486
cparata 0:e4f89df7a7a5 5487 /* High part from WAKE_UP_DUR reg */
cparata 0:e4f89df7a7a5 5488 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)&valueH, 1) )
cparata 0:e4f89df7a7a5 5489 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5490
cparata 0:e4f89df7a7a5 5491 valueH &= LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_MASK; //coerce
cparata 0:e4f89df7a7a5 5492 valueH = valueH >> LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_POSITION; //mask
cparata 0:e4f89df7a7a5 5493
cparata 0:e4f89df7a7a5 5494 *value = ((valueH << 5) & 0x20) | valueL;
cparata 0:e4f89df7a7a5 5495
cparata 0:e4f89df7a7a5 5496 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5497 }
cparata 0:e4f89df7a7a5 5498
cparata 0:e4f89df7a7a5 5499 /*******************************************************************************
cparata 0:e4f89df7a7a5 5500 * Function Name : LSM6DSL_ACC_GYRO_W_TimerEvRouteInt1
cparata 0:e4f89df7a7a5 5501 * Description : Write INT1_TIMER
cparata 0:e4f89df7a7a5 5502 * Input : LSM6DSL_ACC_GYRO_INT1_TIMER_t
cparata 0:e4f89df7a7a5 5503 * Output : None
cparata 0:e4f89df7a7a5 5504 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5505 *******************************************************************************/
cparata 0:e4f89df7a7a5 5506 status_t LSM6DSL_ACC_GYRO_W_TimerEvRouteInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TIMER_t newValue)
cparata 0:e4f89df7a7a5 5507 {
cparata 0:e4f89df7a7a5 5508 u8_t value;
cparata 0:e4f89df7a7a5 5509
cparata 0:e4f89df7a7a5 5510 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5511 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5512
cparata 0:e4f89df7a7a5 5513 value &= ~LSM6DSL_ACC_GYRO_INT1_TIMER_MASK;
cparata 0:e4f89df7a7a5 5514 value |= newValue;
cparata 0:e4f89df7a7a5 5515
cparata 0:e4f89df7a7a5 5516 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5517 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5518
cparata 0:e4f89df7a7a5 5519 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5520 }
cparata 0:e4f89df7a7a5 5521
cparata 0:e4f89df7a7a5 5522 /*******************************************************************************
cparata 0:e4f89df7a7a5 5523 * Function Name : LSM6DSL_ACC_GYRO_R_TimerEvRouteInt1
cparata 0:e4f89df7a7a5 5524 * Description : Read INT1_TIMER
cparata 0:e4f89df7a7a5 5525 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_TIMER_t
cparata 0:e4f89df7a7a5 5526 * Output : Status of INT1_TIMER see LSM6DSL_ACC_GYRO_INT1_TIMER_t
cparata 0:e4f89df7a7a5 5527 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5528 *******************************************************************************/
cparata 0:e4f89df7a7a5 5529 status_t LSM6DSL_ACC_GYRO_R_TimerEvRouteInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TIMER_t *value)
cparata 0:e4f89df7a7a5 5530 {
cparata 0:e4f89df7a7a5 5531 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5532 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5533
cparata 0:e4f89df7a7a5 5534 *value &= LSM6DSL_ACC_GYRO_INT1_TIMER_MASK; //mask
cparata 0:e4f89df7a7a5 5535
cparata 0:e4f89df7a7a5 5536 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5537 }
cparata 0:e4f89df7a7a5 5538
cparata 0:e4f89df7a7a5 5539 /*******************************************************************************
cparata 0:e4f89df7a7a5 5540 * Function Name : LSM6DSL_ACC_GYRO_W_TiltEvOnInt1
cparata 0:e4f89df7a7a5 5541 * Description : Write INT1_TILT
cparata 0:e4f89df7a7a5 5542 * Input : LSM6DSL_ACC_GYRO_INT1_TILT_t
cparata 0:e4f89df7a7a5 5543 * Output : None
cparata 0:e4f89df7a7a5 5544 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5545 *******************************************************************************/
cparata 0:e4f89df7a7a5 5546 status_t LSM6DSL_ACC_GYRO_W_TiltEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TILT_t newValue)
cparata 0:e4f89df7a7a5 5547 {
cparata 0:e4f89df7a7a5 5548 u8_t value;
cparata 0:e4f89df7a7a5 5549
cparata 0:e4f89df7a7a5 5550 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5551 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5552
cparata 0:e4f89df7a7a5 5553 value &= ~LSM6DSL_ACC_GYRO_INT1_TILT_MASK;
cparata 0:e4f89df7a7a5 5554 value |= newValue;
cparata 0:e4f89df7a7a5 5555
cparata 0:e4f89df7a7a5 5556 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5557 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5558
cparata 0:e4f89df7a7a5 5559 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5560 }
cparata 0:e4f89df7a7a5 5561
cparata 0:e4f89df7a7a5 5562 /*******************************************************************************
cparata 0:e4f89df7a7a5 5563 * Function Name : LSM6DSL_ACC_GYRO_R_TiltEvOnInt1
cparata 0:e4f89df7a7a5 5564 * Description : Read INT1_TILT
cparata 0:e4f89df7a7a5 5565 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_TILT_t
cparata 0:e4f89df7a7a5 5566 * Output : Status of INT1_TILT see LSM6DSL_ACC_GYRO_INT1_TILT_t
cparata 0:e4f89df7a7a5 5567 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5568 *******************************************************************************/
cparata 0:e4f89df7a7a5 5569 status_t LSM6DSL_ACC_GYRO_R_TiltEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TILT_t *value)
cparata 0:e4f89df7a7a5 5570 {
cparata 0:e4f89df7a7a5 5571 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5572 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5573
cparata 0:e4f89df7a7a5 5574 *value &= LSM6DSL_ACC_GYRO_INT1_TILT_MASK; //mask
cparata 0:e4f89df7a7a5 5575
cparata 0:e4f89df7a7a5 5576 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5577 }
cparata 0:e4f89df7a7a5 5578
cparata 0:e4f89df7a7a5 5579 /*******************************************************************************
cparata 0:e4f89df7a7a5 5580 * Function Name : LSM6DSL_ACC_GYRO_W_6DEvOnInt1
cparata 0:e4f89df7a7a5 5581 * Description : Write INT1_6D
cparata 0:e4f89df7a7a5 5582 * Input : LSM6DSL_ACC_GYRO_INT1_6D_t
cparata 0:e4f89df7a7a5 5583 * Output : None
cparata 0:e4f89df7a7a5 5584 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5585 *******************************************************************************/
cparata 0:e4f89df7a7a5 5586 status_t LSM6DSL_ACC_GYRO_W_6DEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_6D_t newValue)
cparata 0:e4f89df7a7a5 5587 {
cparata 0:e4f89df7a7a5 5588 u8_t value;
cparata 0:e4f89df7a7a5 5589
cparata 0:e4f89df7a7a5 5590 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5591 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5592
cparata 0:e4f89df7a7a5 5593 value &= ~LSM6DSL_ACC_GYRO_INT1_6D_MASK;
cparata 0:e4f89df7a7a5 5594 value |= newValue;
cparata 0:e4f89df7a7a5 5595
cparata 0:e4f89df7a7a5 5596 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5597 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5598
cparata 0:e4f89df7a7a5 5599 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5600 }
cparata 0:e4f89df7a7a5 5601
cparata 0:e4f89df7a7a5 5602 /*******************************************************************************
cparata 0:e4f89df7a7a5 5603 * Function Name : LSM6DSL_ACC_GYRO_R_6DEvOnInt1
cparata 0:e4f89df7a7a5 5604 * Description : Read INT1_6D
cparata 0:e4f89df7a7a5 5605 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_6D_t
cparata 0:e4f89df7a7a5 5606 * Output : Status of INT1_6D see LSM6DSL_ACC_GYRO_INT1_6D_t
cparata 0:e4f89df7a7a5 5607 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5608 *******************************************************************************/
cparata 0:e4f89df7a7a5 5609 status_t LSM6DSL_ACC_GYRO_R_6DEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_6D_t *value)
cparata 0:e4f89df7a7a5 5610 {
cparata 0:e4f89df7a7a5 5611 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5612 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5613
cparata 0:e4f89df7a7a5 5614 *value &= LSM6DSL_ACC_GYRO_INT1_6D_MASK; //mask
cparata 0:e4f89df7a7a5 5615
cparata 0:e4f89df7a7a5 5616 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5617 }
cparata 0:e4f89df7a7a5 5618
cparata 0:e4f89df7a7a5 5619 /*******************************************************************************
cparata 0:e4f89df7a7a5 5620 * Function Name : LSM6DSL_ACC_GYRO_W_TapEvOnInt1
cparata 0:e4f89df7a7a5 5621 * Description : Write INT1_TAP
cparata 0:e4f89df7a7a5 5622 * Input : LSM6DSL_ACC_GYRO_INT1_TAP_t
cparata 0:e4f89df7a7a5 5623 * Output : None
cparata 0:e4f89df7a7a5 5624 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5625 *******************************************************************************/
cparata 0:e4f89df7a7a5 5626 status_t LSM6DSL_ACC_GYRO_W_TapEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TAP_t newValue)
cparata 0:e4f89df7a7a5 5627 {
cparata 0:e4f89df7a7a5 5628 u8_t value;
cparata 0:e4f89df7a7a5 5629
cparata 0:e4f89df7a7a5 5630 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5631 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5632
cparata 0:e4f89df7a7a5 5633 value &= ~LSM6DSL_ACC_GYRO_INT1_TAP_MASK;
cparata 0:e4f89df7a7a5 5634 value |= newValue;
cparata 0:e4f89df7a7a5 5635
cparata 0:e4f89df7a7a5 5636 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5637 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5638
cparata 0:e4f89df7a7a5 5639 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5640 }
cparata 0:e4f89df7a7a5 5641
cparata 0:e4f89df7a7a5 5642 /*******************************************************************************
cparata 0:e4f89df7a7a5 5643 * Function Name : LSM6DSL_ACC_GYRO_R_TapEvOnInt1
cparata 0:e4f89df7a7a5 5644 * Description : Read INT1_TAP
cparata 0:e4f89df7a7a5 5645 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_TAP_t
cparata 0:e4f89df7a7a5 5646 * Output : Status of INT1_TAP see LSM6DSL_ACC_GYRO_INT1_TAP_t
cparata 0:e4f89df7a7a5 5647 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5648 *******************************************************************************/
cparata 0:e4f89df7a7a5 5649 status_t LSM6DSL_ACC_GYRO_R_TapEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TAP_t *value)
cparata 0:e4f89df7a7a5 5650 {
cparata 0:e4f89df7a7a5 5651 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5652 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5653
cparata 0:e4f89df7a7a5 5654 *value &= LSM6DSL_ACC_GYRO_INT1_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 5655
cparata 0:e4f89df7a7a5 5656 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5657 }
cparata 0:e4f89df7a7a5 5658
cparata 0:e4f89df7a7a5 5659 /*******************************************************************************
cparata 0:e4f89df7a7a5 5660 * Function Name : LSM6DSL_ACC_GYRO_W_FFEvOnInt1
cparata 0:e4f89df7a7a5 5661 * Description : Write INT1_FF
cparata 0:e4f89df7a7a5 5662 * Input : LSM6DSL_ACC_GYRO_INT1_FF_t
cparata 0:e4f89df7a7a5 5663 * Output : None
cparata 0:e4f89df7a7a5 5664 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5665 *******************************************************************************/
cparata 0:e4f89df7a7a5 5666 status_t LSM6DSL_ACC_GYRO_W_FFEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_FF_t newValue)
cparata 0:e4f89df7a7a5 5667 {
cparata 0:e4f89df7a7a5 5668 u8_t value;
cparata 0:e4f89df7a7a5 5669
cparata 0:e4f89df7a7a5 5670 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5671 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5672
cparata 0:e4f89df7a7a5 5673 value &= ~LSM6DSL_ACC_GYRO_INT1_FF_MASK;
cparata 0:e4f89df7a7a5 5674 value |= newValue;
cparata 0:e4f89df7a7a5 5675
cparata 0:e4f89df7a7a5 5676 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5677 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5678
cparata 0:e4f89df7a7a5 5679 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5680 }
cparata 0:e4f89df7a7a5 5681
cparata 0:e4f89df7a7a5 5682 /*******************************************************************************
cparata 0:e4f89df7a7a5 5683 * Function Name : LSM6DSL_ACC_GYRO_R_FFEvOnInt1
cparata 0:e4f89df7a7a5 5684 * Description : Read INT1_FF
cparata 0:e4f89df7a7a5 5685 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_FF_t
cparata 0:e4f89df7a7a5 5686 * Output : Status of INT1_FF see LSM6DSL_ACC_GYRO_INT1_FF_t
cparata 0:e4f89df7a7a5 5687 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5688 *******************************************************************************/
cparata 0:e4f89df7a7a5 5689 status_t LSM6DSL_ACC_GYRO_R_FFEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_FF_t *value)
cparata 0:e4f89df7a7a5 5690 {
cparata 0:e4f89df7a7a5 5691 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5692 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5693
cparata 0:e4f89df7a7a5 5694 *value &= LSM6DSL_ACC_GYRO_INT1_FF_MASK; //mask
cparata 0:e4f89df7a7a5 5695
cparata 0:e4f89df7a7a5 5696 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5697 }
cparata 0:e4f89df7a7a5 5698
cparata 0:e4f89df7a7a5 5699 /*******************************************************************************
cparata 0:e4f89df7a7a5 5700 * Function Name : LSM6DSL_ACC_GYRO_W_WUEvOnInt1
cparata 0:e4f89df7a7a5 5701 * Description : Write INT1_WU
cparata 0:e4f89df7a7a5 5702 * Input : LSM6DSL_ACC_GYRO_INT1_WU_t
cparata 0:e4f89df7a7a5 5703 * Output : None
cparata 0:e4f89df7a7a5 5704 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5705 *******************************************************************************/
cparata 0:e4f89df7a7a5 5706 status_t LSM6DSL_ACC_GYRO_W_WUEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_WU_t newValue)
cparata 0:e4f89df7a7a5 5707 {
cparata 0:e4f89df7a7a5 5708 u8_t value;
cparata 0:e4f89df7a7a5 5709
cparata 0:e4f89df7a7a5 5710 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5711 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5712
cparata 0:e4f89df7a7a5 5713 value &= ~LSM6DSL_ACC_GYRO_INT1_WU_MASK;
cparata 0:e4f89df7a7a5 5714 value |= newValue;
cparata 0:e4f89df7a7a5 5715
cparata 0:e4f89df7a7a5 5716 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5717 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5718
cparata 0:e4f89df7a7a5 5719 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5720 }
cparata 0:e4f89df7a7a5 5721
cparata 0:e4f89df7a7a5 5722 /*******************************************************************************
cparata 0:e4f89df7a7a5 5723 * Function Name : LSM6DSL_ACC_GYRO_R_WUEvOnInt1
cparata 0:e4f89df7a7a5 5724 * Description : Read INT1_WU
cparata 0:e4f89df7a7a5 5725 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_WU_t
cparata 0:e4f89df7a7a5 5726 * Output : Status of INT1_WU see LSM6DSL_ACC_GYRO_INT1_WU_t
cparata 0:e4f89df7a7a5 5727 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5728 *******************************************************************************/
cparata 0:e4f89df7a7a5 5729 status_t LSM6DSL_ACC_GYRO_R_WUEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_WU_t *value)
cparata 0:e4f89df7a7a5 5730 {
cparata 0:e4f89df7a7a5 5731 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5732 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5733
cparata 0:e4f89df7a7a5 5734 *value &= LSM6DSL_ACC_GYRO_INT1_WU_MASK; //mask
cparata 0:e4f89df7a7a5 5735
cparata 0:e4f89df7a7a5 5736 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5737 }
cparata 0:e4f89df7a7a5 5738
cparata 0:e4f89df7a7a5 5739 /*******************************************************************************
cparata 0:e4f89df7a7a5 5740 * Function Name : LSM6DSL_ACC_GYRO_W_SingleTapOnInt1
cparata 0:e4f89df7a7a5 5741 * Description : Write INT1_SINGLE_TAP
cparata 0:e4f89df7a7a5 5742 * Input : LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t
cparata 0:e4f89df7a7a5 5743 * Output : None
cparata 0:e4f89df7a7a5 5744 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5745 *******************************************************************************/
cparata 0:e4f89df7a7a5 5746 status_t LSM6DSL_ACC_GYRO_W_SingleTapOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t newValue)
cparata 0:e4f89df7a7a5 5747 {
cparata 0:e4f89df7a7a5 5748 u8_t value;
cparata 0:e4f89df7a7a5 5749
cparata 0:e4f89df7a7a5 5750 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5751 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5752
cparata 0:e4f89df7a7a5 5753 value &= ~LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_MASK;
cparata 0:e4f89df7a7a5 5754 value |= newValue;
cparata 0:e4f89df7a7a5 5755
cparata 0:e4f89df7a7a5 5756 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5757 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5758
cparata 0:e4f89df7a7a5 5759 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5760 }
cparata 0:e4f89df7a7a5 5761
cparata 0:e4f89df7a7a5 5762 /*******************************************************************************
cparata 0:e4f89df7a7a5 5763 * Function Name : LSM6DSL_ACC_GYRO_R_SingleTapOnInt1
cparata 0:e4f89df7a7a5 5764 * Description : Read INT1_SINGLE_TAP
cparata 0:e4f89df7a7a5 5765 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t
cparata 0:e4f89df7a7a5 5766 * Output : Status of INT1_SINGLE_TAP see LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t
cparata 0:e4f89df7a7a5 5767 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5768 *******************************************************************************/
cparata 0:e4f89df7a7a5 5769 status_t LSM6DSL_ACC_GYRO_R_SingleTapOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t *value)
cparata 0:e4f89df7a7a5 5770 {
cparata 0:e4f89df7a7a5 5771 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5772 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5773
cparata 0:e4f89df7a7a5 5774 *value &= LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 5775
cparata 0:e4f89df7a7a5 5776 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5777 }
cparata 0:e4f89df7a7a5 5778
cparata 0:e4f89df7a7a5 5779 /*******************************************************************************
cparata 0:e4f89df7a7a5 5780 * Function Name : LSM6DSL_ACC_GYRO_W_SleepEvOnInt1
cparata 0:e4f89df7a7a5 5781 * Description : Write INT1_SLEEP
cparata 0:e4f89df7a7a5 5782 * Input : LSM6DSL_ACC_GYRO_INT1_SLEEP_t
cparata 0:e4f89df7a7a5 5783 * Output : None
cparata 0:e4f89df7a7a5 5784 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5785 *******************************************************************************/
cparata 0:e4f89df7a7a5 5786 status_t LSM6DSL_ACC_GYRO_W_SleepEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SLEEP_t newValue)
cparata 0:e4f89df7a7a5 5787 {
cparata 0:e4f89df7a7a5 5788 u8_t value;
cparata 0:e4f89df7a7a5 5789
cparata 0:e4f89df7a7a5 5790 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5791 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5792
cparata 0:e4f89df7a7a5 5793 value &= ~LSM6DSL_ACC_GYRO_INT1_SLEEP_MASK;
cparata 0:e4f89df7a7a5 5794 value |= newValue;
cparata 0:e4f89df7a7a5 5795
cparata 0:e4f89df7a7a5 5796 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5797 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5798
cparata 0:e4f89df7a7a5 5799 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5800 }
cparata 0:e4f89df7a7a5 5801
cparata 0:e4f89df7a7a5 5802 /*******************************************************************************
cparata 0:e4f89df7a7a5 5803 * Function Name : LSM6DSL_ACC_GYRO_R_SleepEvOnInt1
cparata 0:e4f89df7a7a5 5804 * Description : Read INT1_SLEEP
cparata 0:e4f89df7a7a5 5805 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_SLEEP_t
cparata 0:e4f89df7a7a5 5806 * Output : Status of INT1_SLEEP see LSM6DSL_ACC_GYRO_INT1_SLEEP_t
cparata 0:e4f89df7a7a5 5807 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5808 *******************************************************************************/
cparata 0:e4f89df7a7a5 5809 status_t LSM6DSL_ACC_GYRO_R_SleepEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SLEEP_t *value)
cparata 0:e4f89df7a7a5 5810 {
cparata 0:e4f89df7a7a5 5811 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5812 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5813
cparata 0:e4f89df7a7a5 5814 *value &= LSM6DSL_ACC_GYRO_INT1_SLEEP_MASK; //mask
cparata 0:e4f89df7a7a5 5815
cparata 0:e4f89df7a7a5 5816 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5817 }
cparata 0:e4f89df7a7a5 5818
cparata 0:e4f89df7a7a5 5819 /*******************************************************************************
cparata 0:e4f89df7a7a5 5820 * Function Name : LSM6DSL_ACC_GYRO_W_MagCorrection_Int2
cparata 0:e4f89df7a7a5 5821 * Description : Write INT2_IRON
cparata 0:e4f89df7a7a5 5822 * Input : LSM6DSL_ACC_GYRO_INT2_IRON_t
cparata 0:e4f89df7a7a5 5823 * Output : None
cparata 0:e4f89df7a7a5 5824 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5825 *******************************************************************************/
cparata 0:e4f89df7a7a5 5826 status_t LSM6DSL_ACC_GYRO_W_MagCorrection_Int2(void *handle, LSM6DSL_ACC_GYRO_INT2_IRON_t newValue)
cparata 0:e4f89df7a7a5 5827 {
cparata 0:e4f89df7a7a5 5828 u8_t value;
cparata 0:e4f89df7a7a5 5829
cparata 0:e4f89df7a7a5 5830 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5831 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5832
cparata 0:e4f89df7a7a5 5833 value &= ~LSM6DSL_ACC_GYRO_INT2_IRON_MASK;
cparata 0:e4f89df7a7a5 5834 value |= newValue;
cparata 0:e4f89df7a7a5 5835
cparata 0:e4f89df7a7a5 5836 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5837 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5838
cparata 0:e4f89df7a7a5 5839 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5840 }
cparata 0:e4f89df7a7a5 5841
cparata 0:e4f89df7a7a5 5842 /*******************************************************************************
cparata 0:e4f89df7a7a5 5843 * Function Name : LSM6DSL_ACC_GYRO_R_MagCorrection_Int2
cparata 0:e4f89df7a7a5 5844 * Description : Read INT2_IRON
cparata 0:e4f89df7a7a5 5845 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_IRON_t
cparata 0:e4f89df7a7a5 5846 * Output : Status of INT2_IRON see LSM6DSL_ACC_GYRO_INT2_IRON_t
cparata 0:e4f89df7a7a5 5847 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5848 *******************************************************************************/
cparata 0:e4f89df7a7a5 5849 status_t LSM6DSL_ACC_GYRO_R_MagCorrection_Int2(void *handle, LSM6DSL_ACC_GYRO_INT2_IRON_t *value)
cparata 0:e4f89df7a7a5 5850 {
cparata 0:e4f89df7a7a5 5851 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5852 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5853
cparata 0:e4f89df7a7a5 5854 *value &= LSM6DSL_ACC_GYRO_INT2_IRON_MASK; //mask
cparata 0:e4f89df7a7a5 5855
cparata 0:e4f89df7a7a5 5856 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5857 }
cparata 0:e4f89df7a7a5 5858
cparata 0:e4f89df7a7a5 5859 /*******************************************************************************
cparata 0:e4f89df7a7a5 5860 * Function Name : LSM6DSL_ACC_GYRO_W_TiltEvOnInt2
cparata 0:e4f89df7a7a5 5861 * Description : Write INT2_TILT
cparata 0:e4f89df7a7a5 5862 * Input : LSM6DSL_ACC_GYRO_INT2_TILT_t
cparata 0:e4f89df7a7a5 5863 * Output : None
cparata 0:e4f89df7a7a5 5864 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5865 *******************************************************************************/
cparata 0:e4f89df7a7a5 5866 status_t LSM6DSL_ACC_GYRO_W_TiltEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TILT_t newValue)
cparata 0:e4f89df7a7a5 5867 {
cparata 0:e4f89df7a7a5 5868 u8_t value;
cparata 0:e4f89df7a7a5 5869
cparata 0:e4f89df7a7a5 5870 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5871 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5872
cparata 0:e4f89df7a7a5 5873 value &= ~LSM6DSL_ACC_GYRO_INT2_TILT_MASK;
cparata 0:e4f89df7a7a5 5874 value |= newValue;
cparata 0:e4f89df7a7a5 5875
cparata 0:e4f89df7a7a5 5876 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5877 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5878
cparata 0:e4f89df7a7a5 5879 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5880 }
cparata 0:e4f89df7a7a5 5881
cparata 0:e4f89df7a7a5 5882 /*******************************************************************************
cparata 0:e4f89df7a7a5 5883 * Function Name : LSM6DSL_ACC_GYRO_R_TiltEvOnInt2
cparata 0:e4f89df7a7a5 5884 * Description : Read INT2_TILT
cparata 0:e4f89df7a7a5 5885 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_TILT_t
cparata 0:e4f89df7a7a5 5886 * Output : Status of INT2_TILT see LSM6DSL_ACC_GYRO_INT2_TILT_t
cparata 0:e4f89df7a7a5 5887 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5888 *******************************************************************************/
cparata 0:e4f89df7a7a5 5889 status_t LSM6DSL_ACC_GYRO_R_TiltEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TILT_t *value)
cparata 0:e4f89df7a7a5 5890 {
cparata 0:e4f89df7a7a5 5891 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5892 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5893
cparata 0:e4f89df7a7a5 5894 *value &= LSM6DSL_ACC_GYRO_INT2_TILT_MASK; //mask
cparata 0:e4f89df7a7a5 5895
cparata 0:e4f89df7a7a5 5896 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5897 }
cparata 0:e4f89df7a7a5 5898
cparata 0:e4f89df7a7a5 5899 /*******************************************************************************
cparata 0:e4f89df7a7a5 5900 * Function Name : LSM6DSL_ACC_GYRO_W_6DEvOnInt2
cparata 0:e4f89df7a7a5 5901 * Description : Write INT2_6D
cparata 0:e4f89df7a7a5 5902 * Input : LSM6DSL_ACC_GYRO_INT2_6D_t
cparata 0:e4f89df7a7a5 5903 * Output : None
cparata 0:e4f89df7a7a5 5904 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5905 *******************************************************************************/
cparata 0:e4f89df7a7a5 5906 status_t LSM6DSL_ACC_GYRO_W_6DEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_6D_t newValue)
cparata 0:e4f89df7a7a5 5907 {
cparata 0:e4f89df7a7a5 5908 u8_t value;
cparata 0:e4f89df7a7a5 5909
cparata 0:e4f89df7a7a5 5910 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5911 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5912
cparata 0:e4f89df7a7a5 5913 value &= ~LSM6DSL_ACC_GYRO_INT2_6D_MASK;
cparata 0:e4f89df7a7a5 5914 value |= newValue;
cparata 0:e4f89df7a7a5 5915
cparata 0:e4f89df7a7a5 5916 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5917 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5918
cparata 0:e4f89df7a7a5 5919 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5920 }
cparata 0:e4f89df7a7a5 5921
cparata 0:e4f89df7a7a5 5922 /*******************************************************************************
cparata 0:e4f89df7a7a5 5923 * Function Name : LSM6DSL_ACC_GYRO_R_6DEvOnInt2
cparata 0:e4f89df7a7a5 5924 * Description : Read INT2_6D
cparata 0:e4f89df7a7a5 5925 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_6D_t
cparata 0:e4f89df7a7a5 5926 * Output : Status of INT2_6D see LSM6DSL_ACC_GYRO_INT2_6D_t
cparata 0:e4f89df7a7a5 5927 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5928 *******************************************************************************/
cparata 0:e4f89df7a7a5 5929 status_t LSM6DSL_ACC_GYRO_R_6DEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_6D_t *value)
cparata 0:e4f89df7a7a5 5930 {
cparata 0:e4f89df7a7a5 5931 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5932 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5933
cparata 0:e4f89df7a7a5 5934 *value &= LSM6DSL_ACC_GYRO_INT2_6D_MASK; //mask
cparata 0:e4f89df7a7a5 5935
cparata 0:e4f89df7a7a5 5936 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5937 }
cparata 0:e4f89df7a7a5 5938
cparata 0:e4f89df7a7a5 5939 /*******************************************************************************
cparata 0:e4f89df7a7a5 5940 * Function Name : LSM6DSL_ACC_GYRO_W_TapEvOnInt2
cparata 0:e4f89df7a7a5 5941 * Description : Write INT2_TAP
cparata 0:e4f89df7a7a5 5942 * Input : LSM6DSL_ACC_GYRO_INT2_TAP_t
cparata 0:e4f89df7a7a5 5943 * Output : None
cparata 0:e4f89df7a7a5 5944 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5945 *******************************************************************************/
cparata 0:e4f89df7a7a5 5946 status_t LSM6DSL_ACC_GYRO_W_TapEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TAP_t newValue)
cparata 0:e4f89df7a7a5 5947 {
cparata 0:e4f89df7a7a5 5948 u8_t value;
cparata 0:e4f89df7a7a5 5949
cparata 0:e4f89df7a7a5 5950 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5951 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5952
cparata 0:e4f89df7a7a5 5953 value &= ~LSM6DSL_ACC_GYRO_INT2_TAP_MASK;
cparata 0:e4f89df7a7a5 5954 value |= newValue;
cparata 0:e4f89df7a7a5 5955
cparata 0:e4f89df7a7a5 5956 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5957 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5958
cparata 0:e4f89df7a7a5 5959 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5960 }
cparata 0:e4f89df7a7a5 5961
cparata 0:e4f89df7a7a5 5962 /*******************************************************************************
cparata 0:e4f89df7a7a5 5963 * Function Name : LSM6DSL_ACC_GYRO_R_TapEvOnInt2
cparata 0:e4f89df7a7a5 5964 * Description : Read INT2_TAP
cparata 0:e4f89df7a7a5 5965 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_TAP_t
cparata 0:e4f89df7a7a5 5966 * Output : Status of INT2_TAP see LSM6DSL_ACC_GYRO_INT2_TAP_t
cparata 0:e4f89df7a7a5 5967 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5968 *******************************************************************************/
cparata 0:e4f89df7a7a5 5969 status_t LSM6DSL_ACC_GYRO_R_TapEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TAP_t *value)
cparata 0:e4f89df7a7a5 5970 {
cparata 0:e4f89df7a7a5 5971 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 5972 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5973
cparata 0:e4f89df7a7a5 5974 *value &= LSM6DSL_ACC_GYRO_INT2_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 5975
cparata 0:e4f89df7a7a5 5976 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 5977 }
cparata 0:e4f89df7a7a5 5978
cparata 0:e4f89df7a7a5 5979 /*******************************************************************************
cparata 0:e4f89df7a7a5 5980 * Function Name : LSM6DSL_ACC_GYRO_W_FFEvOnInt2
cparata 0:e4f89df7a7a5 5981 * Description : Write INT2_FF
cparata 0:e4f89df7a7a5 5982 * Input : LSM6DSL_ACC_GYRO_INT2_FF_t
cparata 0:e4f89df7a7a5 5983 * Output : None
cparata 0:e4f89df7a7a5 5984 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 5985 *******************************************************************************/
cparata 0:e4f89df7a7a5 5986 status_t LSM6DSL_ACC_GYRO_W_FFEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_FF_t newValue)
cparata 0:e4f89df7a7a5 5987 {
cparata 0:e4f89df7a7a5 5988 u8_t value;
cparata 0:e4f89df7a7a5 5989
cparata 0:e4f89df7a7a5 5990 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5991 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5992
cparata 0:e4f89df7a7a5 5993 value &= ~LSM6DSL_ACC_GYRO_INT2_FF_MASK;
cparata 0:e4f89df7a7a5 5994 value |= newValue;
cparata 0:e4f89df7a7a5 5995
cparata 0:e4f89df7a7a5 5996 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 5997 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 5998
cparata 0:e4f89df7a7a5 5999 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6000 }
cparata 0:e4f89df7a7a5 6001
cparata 0:e4f89df7a7a5 6002 /*******************************************************************************
cparata 0:e4f89df7a7a5 6003 * Function Name : LSM6DSL_ACC_GYRO_R_FFEvOnInt2
cparata 0:e4f89df7a7a5 6004 * Description : Read INT2_FF
cparata 0:e4f89df7a7a5 6005 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_FF_t
cparata 0:e4f89df7a7a5 6006 * Output : Status of INT2_FF see LSM6DSL_ACC_GYRO_INT2_FF_t
cparata 0:e4f89df7a7a5 6007 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6008 *******************************************************************************/
cparata 0:e4f89df7a7a5 6009 status_t LSM6DSL_ACC_GYRO_R_FFEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_FF_t *value)
cparata 0:e4f89df7a7a5 6010 {
cparata 0:e4f89df7a7a5 6011 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 6012 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6013
cparata 0:e4f89df7a7a5 6014 *value &= LSM6DSL_ACC_GYRO_INT2_FF_MASK; //mask
cparata 0:e4f89df7a7a5 6015
cparata 0:e4f89df7a7a5 6016 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6017 }
cparata 0:e4f89df7a7a5 6018
cparata 0:e4f89df7a7a5 6019 /*******************************************************************************
cparata 0:e4f89df7a7a5 6020 * Function Name : LSM6DSL_ACC_GYRO_W_WUEvOnInt2
cparata 0:e4f89df7a7a5 6021 * Description : Write INT2_WU
cparata 0:e4f89df7a7a5 6022 * Input : LSM6DSL_ACC_GYRO_INT2_WU_t
cparata 0:e4f89df7a7a5 6023 * Output : None
cparata 0:e4f89df7a7a5 6024 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6025 *******************************************************************************/
cparata 0:e4f89df7a7a5 6026 status_t LSM6DSL_ACC_GYRO_W_WUEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_WU_t newValue)
cparata 0:e4f89df7a7a5 6027 {
cparata 0:e4f89df7a7a5 6028 u8_t value;
cparata 0:e4f89df7a7a5 6029
cparata 0:e4f89df7a7a5 6030 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 6031 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6032
cparata 0:e4f89df7a7a5 6033 value &= ~LSM6DSL_ACC_GYRO_INT2_WU_MASK;
cparata 0:e4f89df7a7a5 6034 value |= newValue;
cparata 0:e4f89df7a7a5 6035
cparata 0:e4f89df7a7a5 6036 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 6037 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6038
cparata 0:e4f89df7a7a5 6039 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6040 }
cparata 0:e4f89df7a7a5 6041
cparata 0:e4f89df7a7a5 6042 /*******************************************************************************
cparata 0:e4f89df7a7a5 6043 * Function Name : LSM6DSL_ACC_GYRO_R_WUEvOnInt2
cparata 0:e4f89df7a7a5 6044 * Description : Read INT2_WU
cparata 0:e4f89df7a7a5 6045 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_WU_t
cparata 0:e4f89df7a7a5 6046 * Output : Status of INT2_WU see LSM6DSL_ACC_GYRO_INT2_WU_t
cparata 0:e4f89df7a7a5 6047 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6048 *******************************************************************************/
cparata 0:e4f89df7a7a5 6049 status_t LSM6DSL_ACC_GYRO_R_WUEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_WU_t *value)
cparata 0:e4f89df7a7a5 6050 {
cparata 0:e4f89df7a7a5 6051 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 6052 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6053
cparata 0:e4f89df7a7a5 6054 *value &= LSM6DSL_ACC_GYRO_INT2_WU_MASK; //mask
cparata 0:e4f89df7a7a5 6055
cparata 0:e4f89df7a7a5 6056 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6057 }
cparata 0:e4f89df7a7a5 6058
cparata 0:e4f89df7a7a5 6059 /*******************************************************************************
cparata 0:e4f89df7a7a5 6060 * Function Name : LSM6DSL_ACC_GYRO_W_SingleTapOnInt2
cparata 0:e4f89df7a7a5 6061 * Description : Write INT2_SINGLE_TAP
cparata 0:e4f89df7a7a5 6062 * Input : LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t
cparata 0:e4f89df7a7a5 6063 * Output : None
cparata 0:e4f89df7a7a5 6064 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6065 *******************************************************************************/
cparata 0:e4f89df7a7a5 6066 status_t LSM6DSL_ACC_GYRO_W_SingleTapOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t newValue)
cparata 0:e4f89df7a7a5 6067 {
cparata 0:e4f89df7a7a5 6068 u8_t value;
cparata 0:e4f89df7a7a5 6069
cparata 0:e4f89df7a7a5 6070 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 6071 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6072
cparata 0:e4f89df7a7a5 6073 value &= ~LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_MASK;
cparata 0:e4f89df7a7a5 6074 value |= newValue;
cparata 0:e4f89df7a7a5 6075
cparata 0:e4f89df7a7a5 6076 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 6077 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6078
cparata 0:e4f89df7a7a5 6079 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6080 }
cparata 0:e4f89df7a7a5 6081
cparata 0:e4f89df7a7a5 6082 /*******************************************************************************
cparata 0:e4f89df7a7a5 6083 * Function Name : LSM6DSL_ACC_GYRO_R_SingleTapOnInt2
cparata 0:e4f89df7a7a5 6084 * Description : Read INT2_SINGLE_TAP
cparata 0:e4f89df7a7a5 6085 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t
cparata 0:e4f89df7a7a5 6086 * Output : Status of INT2_SINGLE_TAP see LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t
cparata 0:e4f89df7a7a5 6087 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6088 *******************************************************************************/
cparata 0:e4f89df7a7a5 6089 status_t LSM6DSL_ACC_GYRO_R_SingleTapOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t *value)
cparata 0:e4f89df7a7a5 6090 {
cparata 0:e4f89df7a7a5 6091 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 6092 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6093
cparata 0:e4f89df7a7a5 6094 *value &= LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_MASK; //mask
cparata 0:e4f89df7a7a5 6095
cparata 0:e4f89df7a7a5 6096 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6097 }
cparata 0:e4f89df7a7a5 6098
cparata 0:e4f89df7a7a5 6099 /*******************************************************************************
cparata 0:e4f89df7a7a5 6100 * Function Name : LSM6DSL_ACC_GYRO_W_SleepEvOnInt2
cparata 0:e4f89df7a7a5 6101 * Description : Write INT2_SLEEP
cparata 0:e4f89df7a7a5 6102 * Input : LSM6DSL_ACC_GYRO_INT2_SLEEP_t
cparata 0:e4f89df7a7a5 6103 * Output : None
cparata 0:e4f89df7a7a5 6104 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6105 *******************************************************************************/
cparata 0:e4f89df7a7a5 6106 status_t LSM6DSL_ACC_GYRO_W_SleepEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SLEEP_t newValue)
cparata 0:e4f89df7a7a5 6107 {
cparata 0:e4f89df7a7a5 6108 u8_t value;
cparata 0:e4f89df7a7a5 6109
cparata 0:e4f89df7a7a5 6110 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 6111 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6112
cparata 0:e4f89df7a7a5 6113 value &= ~LSM6DSL_ACC_GYRO_INT2_SLEEP_MASK;
cparata 0:e4f89df7a7a5 6114 value |= newValue;
cparata 0:e4f89df7a7a5 6115
cparata 0:e4f89df7a7a5 6116 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:e4f89df7a7a5 6117 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6118
cparata 0:e4f89df7a7a5 6119 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6120 }
cparata 0:e4f89df7a7a5 6121
cparata 0:e4f89df7a7a5 6122 /*******************************************************************************
cparata 0:e4f89df7a7a5 6123 * Function Name : LSM6DSL_ACC_GYRO_R_SleepEvOnInt2
cparata 0:e4f89df7a7a5 6124 * Description : Read INT2_SLEEP
cparata 0:e4f89df7a7a5 6125 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_SLEEP_t
cparata 0:e4f89df7a7a5 6126 * Output : Status of INT2_SLEEP see LSM6DSL_ACC_GYRO_INT2_SLEEP_t
cparata 0:e4f89df7a7a5 6127 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6128 *******************************************************************************/
cparata 0:e4f89df7a7a5 6129 status_t LSM6DSL_ACC_GYRO_R_SleepEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SLEEP_t *value)
cparata 0:e4f89df7a7a5 6130 {
cparata 0:e4f89df7a7a5 6131 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:e4f89df7a7a5 6132 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6133
cparata 0:e4f89df7a7a5 6134 *value &= LSM6DSL_ACC_GYRO_INT2_SLEEP_MASK; //mask
cparata 0:e4f89df7a7a5 6135
cparata 0:e4f89df7a7a5 6136 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6137 }
cparata 0:e4f89df7a7a5 6138
cparata 0:e4f89df7a7a5 6139 /*******************************************************************************
cparata 0:e4f89df7a7a5 6140 * Function Name : status_t LSM6DSL_ACC_GYRO_Get_GetFIFOData(u8_t *buff)
cparata 0:e4f89df7a7a5 6141 * Description : Read GetFIFOData output register
cparata 0:e4f89df7a7a5 6142 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 6143 * Output : GetFIFOData buffer u8_t
cparata 0:e4f89df7a7a5 6144 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6145 *******************************************************************************/
cparata 0:e4f89df7a7a5 6146 status_t LSM6DSL_ACC_GYRO_Get_GetFIFOData(void *handle, u8_t *buff)
cparata 0:e4f89df7a7a5 6147 {
cparata 0:e4f89df7a7a5 6148 u8_t i, j, k;
cparata 0:e4f89df7a7a5 6149 u8_t numberOfByteForDimension;
cparata 0:e4f89df7a7a5 6150
cparata 0:e4f89df7a7a5 6151 numberOfByteForDimension=2/1;
cparata 0:e4f89df7a7a5 6152
cparata 0:e4f89df7a7a5 6153 k=0;
cparata 0:e4f89df7a7a5 6154 for (i=0; i<1;i++ )
cparata 0:e4f89df7a7a5 6155 {
cparata 0:e4f89df7a7a5 6156 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:e4f89df7a7a5 6157 {
cparata 0:e4f89df7a7a5 6158 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_DATA_OUT_L+k, &buff[k], 1))
cparata 0:e4f89df7a7a5 6159 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6160 k++;
cparata 0:e4f89df7a7a5 6161 }
cparata 0:e4f89df7a7a5 6162 }
cparata 0:e4f89df7a7a5 6163
cparata 0:e4f89df7a7a5 6164 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6165 }
cparata 0:e4f89df7a7a5 6166
cparata 0:e4f89df7a7a5 6167 /*******************************************************************************
cparata 0:e4f89df7a7a5 6168 * Function Name : status_t LSM6DSL_ACC_GYRO_Get_GetTimestamp(u8_t *buff)
cparata 0:e4f89df7a7a5 6169 * Description : Read GetTimestamp output register
cparata 0:e4f89df7a7a5 6170 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 6171 * Output : GetTimestamp buffer u8_t
cparata 0:e4f89df7a7a5 6172 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6173 *******************************************************************************/
cparata 0:e4f89df7a7a5 6174 status_t LSM6DSL_ACC_GYRO_Get_GetTimestamp(void *handle, u8_t *buff)
cparata 0:e4f89df7a7a5 6175 {
cparata 0:e4f89df7a7a5 6176 u8_t i, j, k;
cparata 0:e4f89df7a7a5 6177 u8_t numberOfByteForDimension;
cparata 0:e4f89df7a7a5 6178
cparata 0:e4f89df7a7a5 6179 numberOfByteForDimension=3/1;
cparata 0:e4f89df7a7a5 6180
cparata 0:e4f89df7a7a5 6181 k=0;
cparata 0:e4f89df7a7a5 6182 for (i=0; i<1;i++ )
cparata 0:e4f89df7a7a5 6183 {
cparata 0:e4f89df7a7a5 6184 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:e4f89df7a7a5 6185 {
cparata 0:e4f89df7a7a5 6186 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TIMESTAMP0_REG+k, &buff[k], 1))
cparata 0:e4f89df7a7a5 6187 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6188 k++;
cparata 0:e4f89df7a7a5 6189 }
cparata 0:e4f89df7a7a5 6190 }
cparata 0:e4f89df7a7a5 6191
cparata 0:e4f89df7a7a5 6192 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6193 }
cparata 0:e4f89df7a7a5 6194
cparata 0:e4f89df7a7a5 6195 /*******************************************************************************
cparata 0:e4f89df7a7a5 6196 * Function Name : status_t LSM6DSL_ACC_GYRO_Get_GetStepCounter(u8_t *buff)
cparata 0:e4f89df7a7a5 6197 * Description : Read GetStepCounter output register
cparata 0:e4f89df7a7a5 6198 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 6199 * Output : GetStepCounter buffer u8_t
cparata 0:e4f89df7a7a5 6200 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6201 *******************************************************************************/
cparata 0:e4f89df7a7a5 6202 status_t LSM6DSL_ACC_GYRO_Get_GetStepCounter(void *handle, u8_t *buff)
cparata 0:e4f89df7a7a5 6203 {
cparata 0:e4f89df7a7a5 6204 u8_t i, j, k;
cparata 0:e4f89df7a7a5 6205 u8_t numberOfByteForDimension;
cparata 0:e4f89df7a7a5 6206
cparata 0:e4f89df7a7a5 6207 numberOfByteForDimension=2/1;
cparata 0:e4f89df7a7a5 6208
cparata 0:e4f89df7a7a5 6209 k=0;
cparata 0:e4f89df7a7a5 6210 for (i=0; i<1;i++ )
cparata 0:e4f89df7a7a5 6211 {
cparata 0:e4f89df7a7a5 6212 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:e4f89df7a7a5 6213 {
cparata 0:e4f89df7a7a5 6214 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STEP_COUNTER_L+k, &buff[k], 1))
cparata 0:e4f89df7a7a5 6215 return MEMS_ERROR;
cparata 0:e4f89df7a7a5 6216 k++;
cparata 0:e4f89df7a7a5 6217 }
cparata 0:e4f89df7a7a5 6218 }
cparata 0:e4f89df7a7a5 6219
cparata 0:e4f89df7a7a5 6220 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6221 }
cparata 0:e4f89df7a7a5 6222
cparata 0:e4f89df7a7a5 6223 /*******************************************************************************
cparata 0:e4f89df7a7a5 6224 * Function Name : LSM6DSL_ACC_GYRO_W_PedoThreshold(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 6225 * Description : Set accelerometer threshold for pedometer
cparata 0:e4f89df7a7a5 6226 * Input : pointer to [u8_t]
cparata 0:e4f89df7a7a5 6227 * Output : None
cparata 0:e4f89df7a7a5 6228 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:e4f89df7a7a5 6229 *******************************************************************************/
cparata 0:e4f89df7a7a5 6230 status_t LSM6DSL_ACC_GYRO_W_PedoThreshold(void *handle, u8_t newValue)
cparata 0:e4f89df7a7a5 6231 {
cparata 0:e4f89df7a7a5 6232 u8_t value;
cparata 0:e4f89df7a7a5 6233
cparata 0:e4f89df7a7a5 6234 /* Open Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6235 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:e4f89df7a7a5 6236
cparata 0:e4f89df7a7a5 6237 /* read current value */
cparata 0:e4f89df7a7a5 6238 LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CONFIG_PEDO_THS_MIN, &value, 1);
cparata 0:e4f89df7a7a5 6239
cparata 0:e4f89df7a7a5 6240 value &= ~0x1F;
cparata 0:e4f89df7a7a5 6241 value |= (newValue & 0x1F);
cparata 0:e4f89df7a7a5 6242
cparata 0:e4f89df7a7a5 6243 /* write new value */
cparata 0:e4f89df7a7a5 6244 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CONFIG_PEDO_THS_MIN, &value, 1);
cparata 0:e4f89df7a7a5 6245
cparata 0:e4f89df7a7a5 6246 /* Close Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6247 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:e4f89df7a7a5 6248
cparata 0:e4f89df7a7a5 6249 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6250 }
cparata 0:e4f89df7a7a5 6251
cparata 0:e4f89df7a7a5 6252 /************** Use Sensor Hub *******************/
cparata 0:e4f89df7a7a5 6253 /*
cparata 0:e4f89df7a7a5 6254 * Program the nine Soft Iron Matrix coefficients.
cparata 0:e4f89df7a7a5 6255 * The SI_Matrix buffer must provide coefficients
cparata 0:e4f89df7a7a5 6256 * in xx, xy, xz, yx, yy, yz, zx, zy, zz order.
cparata 0:e4f89df7a7a5 6257 */
cparata 0:e4f89df7a7a5 6258 status_t LSM6DSL_ACC_GYRO_SH_init_SI_Matrix(void *handle, u8_t *SI_matrix)
cparata 0:e4f89df7a7a5 6259 {
cparata 0:e4f89df7a7a5 6260 /* Open Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6261 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:e4f89df7a7a5 6262
cparata 0:e4f89df7a7a5 6263 /* Write the Soft Iron Matrix coefficients */
cparata 0:e4f89df7a7a5 6264 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MAG_SI_XX, SI_matrix, 9);
cparata 0:e4f89df7a7a5 6265
cparata 0:e4f89df7a7a5 6266 /* Close Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6267 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:e4f89df7a7a5 6268
cparata 0:e4f89df7a7a5 6269 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6270 }
cparata 0:e4f89df7a7a5 6271
cparata 0:e4f89df7a7a5 6272 /* Read a remote device through I2C Sensor Hub Slave 0 */
cparata 0:e4f89df7a7a5 6273 status_t LSM6DSL_ACC_GYRO_SH0_Program(void *handle, u8_t SlvAddr, u8_t Reg, u8_t len)
cparata 0:e4f89df7a7a5 6274 {
cparata 0:e4f89df7a7a5 6275 /* Open Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6276 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:e4f89df7a7a5 6277
cparata 0:e4f89df7a7a5 6278 /* Write remote device I2C slave address */
cparata 0:e4f89df7a7a5 6279 SlvAddr |= 0x1; /* Raise the read op bit */
cparata 0:e4f89df7a7a5 6280 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_ADD, &SlvAddr, 1);
cparata 0:e4f89df7a7a5 6281
cparata 0:e4f89df7a7a5 6282 /* Write remote device I2C subaddress */
cparata 0:e4f89df7a7a5 6283 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_SUBADD, &Reg, 1);
cparata 0:e4f89df7a7a5 6284
cparata 0:e4f89df7a7a5 6285 /* Write number of bytes to read [SLAVE0_CONFIG - 04h ]*/
cparata 0:e4f89df7a7a5 6286 u8_t sl0_cfg = 0;
cparata 0:e4f89df7a7a5 6287 sl0_cfg |= 0x00; //00 bit [7-6] : no decimation
cparata 0:e4f89df7a7a5 6288 sl0_cfg |= 0x00; //00 bit [5-4] : one sensor
cparata 0:e4f89df7a7a5 6289 sl0_cfg |= 0x00; // 0 bit [3] : source mode read disabled
cparata 0:e4f89df7a7a5 6290 sl0_cfg |= len & 0x07; // bit [2-0] : number of bytes
cparata 0:e4f89df7a7a5 6291
cparata 0:e4f89df7a7a5 6292 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLAVE0_CONFIG, &sl0_cfg, 1);
cparata 0:e4f89df7a7a5 6293
cparata 0:e4f89df7a7a5 6294 /* Close Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6295 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:e4f89df7a7a5 6296
cparata 0:e4f89df7a7a5 6297 /* Enable FUNC */
cparata 0:e4f89df7a7a5 6298 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_ENABLED);
cparata 0:e4f89df7a7a5 6299
cparata 0:e4f89df7a7a5 6300 /* MASTER_EN */
cparata 0:e4f89df7a7a5 6301 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_ENABLED);
cparata 0:e4f89df7a7a5 6302
cparata 0:e4f89df7a7a5 6303 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6304 }
cparata 0:e4f89df7a7a5 6305
cparata 0:e4f89df7a7a5 6306 /* Read a remote device through I2C Sensor Hub Slave 0 */
cparata 0:e4f89df7a7a5 6307 status_t LSM6DSL_ACC_GYRO_SH0_ReadMem(void *handle, u8_t SlvAddr, u8_t Reg, u8_t *Bufp, u8_t len, u8_t stop)
cparata 0:e4f89df7a7a5 6308 {
cparata 0:e4f89df7a7a5 6309 LSM6DSL_ACC_GYRO_SENS_HUB_END_t op_cmpl = LSM6DSL_ACC_GYRO_SENS_HUB_END_STILL_ONGOING;
cparata 0:e4f89df7a7a5 6310 LSM6DSL_ACC_GYRO_XLDA_t op_update = LSM6DSL_ACC_GYRO_XLDA_NO_DATA_AVAIL;
cparata 0:e4f89df7a7a5 6311 u8_t dummy[6];
cparata 0:e4f89df7a7a5 6312
cparata 0:e4f89df7a7a5 6313 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN);
cparata 0:e4f89df7a7a5 6314
cparata 0:e4f89df7a7a5 6315 LSM6DSL_ACC_GYRO_SH0_Program(handle, SlvAddr, Reg, len);
cparata 0:e4f89df7a7a5 6316
cparata 0:e4f89df7a7a5 6317 /* Syncronize the SH with internal trigger (xl) */
cparata 0:e4f89df7a7a5 6318 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_104Hz);
cparata 0:e4f89df7a7a5 6319
cparata 0:e4f89df7a7a5 6320 /* Wait until operation is not completed */
cparata 0:e4f89df7a7a5 6321 LSM6DSL_ACC_GYRO_GetRawAccData(handle, dummy);
cparata 0:e4f89df7a7a5 6322 do {
cparata 0:e4f89df7a7a5 6323 LSM6DSL_ACC_GYRO_R_XLDA(handle, &op_update);
cparata 0:e4f89df7a7a5 6324 } while(op_update != LSM6DSL_ACC_GYRO_XLDA_DATA_AVAIL);
cparata 0:e4f89df7a7a5 6325 do {
cparata 0:e4f89df7a7a5 6326 LSM6DSL_ACC_GYRO_R_SENS_HUB_END(handle, &op_cmpl);
cparata 0:e4f89df7a7a5 6327 } while(op_cmpl != LSM6DSL_ACC_GYRO_SENS_HUB_END_OP_COMPLETED);
cparata 0:e4f89df7a7a5 6328
cparata 0:e4f89df7a7a5 6329
cparata 0:e4f89df7a7a5 6330 /* Read the result */
cparata 0:e4f89df7a7a5 6331 LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSORHUB1_REG, Bufp, len);
cparata 0:e4f89df7a7a5 6332
cparata 0:e4f89df7a7a5 6333 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN);
cparata 0:e4f89df7a7a5 6334
cparata 0:e4f89df7a7a5 6335 if (stop) {
cparata 0:e4f89df7a7a5 6336 /* Stop everything */
cparata 0:e4f89df7a7a5 6337 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_DISABLED);
cparata 0:e4f89df7a7a5 6338 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_DISABLED);
cparata 0:e4f89df7a7a5 6339 }
cparata 0:e4f89df7a7a5 6340
cparata 0:e4f89df7a7a5 6341 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6342 }
cparata 0:e4f89df7a7a5 6343
cparata 0:e4f89df7a7a5 6344 /* Write a remote device through I2C Sensor Hub Slave 0 */
cparata 0:e4f89df7a7a5 6345 status_t LSM6DSL_ACC_GYRO_SH0_WriteByte(void *handle, u8_t SlvAddr, u8_t Reg, u8_t Bufp)
cparata 0:e4f89df7a7a5 6346 {
cparata 0:e4f89df7a7a5 6347 LSM6DSL_ACC_GYRO_SENS_HUB_END_t op_cmpl = LSM6DSL_ACC_GYRO_SENS_HUB_END_STILL_ONGOING;
cparata 0:e4f89df7a7a5 6348 LSM6DSL_ACC_GYRO_XLDA_t op_update = LSM6DSL_ACC_GYRO_XLDA_NO_DATA_AVAIL;
cparata 0:e4f89df7a7a5 6349 u8_t dummy[6];
cparata 0:e4f89df7a7a5 6350
cparata 0:e4f89df7a7a5 6351 /* Open Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6352 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:e4f89df7a7a5 6353
cparata 0:e4f89df7a7a5 6354 /* Write remote device I2C slave address */
cparata 0:e4f89df7a7a5 6355 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_ADD, &SlvAddr, 1);
cparata 0:e4f89df7a7a5 6356
cparata 0:e4f89df7a7a5 6357 /* Write remote device I2C subaddress */
cparata 0:e4f89df7a7a5 6358 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_SUBADD, &Reg, 1);
cparata 0:e4f89df7a7a5 6359
cparata 0:e4f89df7a7a5 6360 /* Write the data */
cparata 0:e4f89df7a7a5 6361 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_DATAWRITE_SRC_MODE_SUB_SLV0, &Bufp, 1);
cparata 0:e4f89df7a7a5 6362
cparata 0:e4f89df7a7a5 6363 /* Close Embedded Function Register page*/
cparata 0:e4f89df7a7a5 6364 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:e4f89df7a7a5 6365
cparata 0:e4f89df7a7a5 6366 /* Enable FUNC */
cparata 0:e4f89df7a7a5 6367 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_ENABLED);
cparata 0:e4f89df7a7a5 6368
cparata 0:e4f89df7a7a5 6369 /* Enable PULL_UP_EN and MASTER_EN */
cparata 0:e4f89df7a7a5 6370 //LSM6DSL_ACC_GYRO_W_PULL_UP_EN(handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_ENABLED);
cparata 0:e4f89df7a7a5 6371 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_ENABLED);
cparata 0:e4f89df7a7a5 6372
cparata 0:e4f89df7a7a5 6373 /* Syncronize the SH with internal trigger (xl) */
cparata 0:e4f89df7a7a5 6374 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_104Hz);
cparata 0:e4f89df7a7a5 6375
cparata 0:e4f89df7a7a5 6376 /* Wait until operation is not completed */
cparata 0:e4f89df7a7a5 6377 LSM6DSL_ACC_GYRO_GetRawAccData(handle, dummy);
cparata 0:e4f89df7a7a5 6378 do {
cparata 0:e4f89df7a7a5 6379 LSM6DSL_ACC_GYRO_R_XLDA(handle, &op_update);
cparata 0:e4f89df7a7a5 6380 } while(op_update != LSM6DSL_ACC_GYRO_XLDA_DATA_AVAIL);
cparata 0:e4f89df7a7a5 6381 do {
cparata 0:e4f89df7a7a5 6382 LSM6DSL_ACC_GYRO_R_SENS_HUB_END(handle, &op_cmpl);
cparata 0:e4f89df7a7a5 6383 } while(op_cmpl != LSM6DSL_ACC_GYRO_SENS_HUB_END_OP_COMPLETED);
cparata 0:e4f89df7a7a5 6384
cparata 0:e4f89df7a7a5 6385 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN);
cparata 0:e4f89df7a7a5 6386
cparata 0:e4f89df7a7a5 6387 /* Stop everything */
cparata 0:e4f89df7a7a5 6388 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_DISABLED);
cparata 0:e4f89df7a7a5 6389 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_DISABLED);
cparata 0:e4f89df7a7a5 6390
cparata 0:e4f89df7a7a5 6391
cparata 0:e4f89df7a7a5 6392 return MEMS_SUCCESS;
cparata 0:e4f89df7a7a5 6393 }