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

Dependencies:   X_NUCLEO_IKS01A2 mbed

Fork of FreeFall_IKS01A2 by ST Expansion SW Team

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

Main function is to show how to detect the free fall event using the sensor expansion board and send a notification using UART to a connected PC or Desktop and display it on terminal applications like TeraTerm.
After connection has been established:
- the user can try to leave falling the board and then view the notification using an hyper terminal. When the free fall is detected, the LED is switched on for a while.
- the user button can be used to enable/disable the free fall detection feature.

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

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cparata 0:6a670fda63c2 1 /**
cparata 0:6a670fda63c2 2 ******************************************************************************
cparata 0:6a670fda63c2 3 * @file LSM6DSL_ACC_GYRO_driver.c
cparata 0:6a670fda63c2 4 * @author MEMS Application Team
cparata 0:6a670fda63c2 5 * @version V1.5
cparata 0:6a670fda63c2 6 * @date 17-May-2016
cparata 0:6a670fda63c2 7 * @brief LSM6DSL driver file
cparata 0:6a670fda63c2 8 ******************************************************************************
cparata 0:6a670fda63c2 9 * @attention
cparata 0:6a670fda63c2 10 *
cparata 0:6a670fda63c2 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
cparata 0:6a670fda63c2 12 *
cparata 0:6a670fda63c2 13 * Redistribution and use in source and binary forms, with or without modification,
cparata 0:6a670fda63c2 14 * are permitted provided that the following conditions are met:
cparata 0:6a670fda63c2 15 * 1. Redistributions of source code must retain the above copyright notice,
cparata 0:6a670fda63c2 16 * this list of conditions and the following disclaimer.
cparata 0:6a670fda63c2 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
cparata 0:6a670fda63c2 18 * this list of conditions and the following disclaimer in the documentation
cparata 0:6a670fda63c2 19 * and/or other materials provided with the distribution.
cparata 0:6a670fda63c2 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
cparata 0:6a670fda63c2 21 * may be used to endorse or promote products derived from this software
cparata 0:6a670fda63c2 22 * without specific prior written permission.
cparata 0:6a670fda63c2 23 *
cparata 0:6a670fda63c2 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
cparata 0:6a670fda63c2 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
cparata 0:6a670fda63c2 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
cparata 0:6a670fda63c2 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
cparata 0:6a670fda63c2 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
cparata 0:6a670fda63c2 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
cparata 0:6a670fda63c2 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
cparata 0:6a670fda63c2 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
cparata 0:6a670fda63c2 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
cparata 0:6a670fda63c2 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cparata 0:6a670fda63c2 34 *
cparata 0:6a670fda63c2 35 ******************************************************************************
cparata 0:6a670fda63c2 36 */
cparata 0:6a670fda63c2 37
cparata 0:6a670fda63c2 38 /* Includes ------------------------------------------------------------------*/
cparata 0:6a670fda63c2 39 #include "LSM6DSL_ACC_GYRO_driver.h"
cparata 0:6a670fda63c2 40
cparata 0:6a670fda63c2 41 /* Imported function prototypes ----------------------------------------------*/
cparata 0:6a670fda63c2 42 extern uint8_t LSM6DSL_IO_Write(void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite);
cparata 0:6a670fda63c2 43 extern uint8_t LSM6DSL_IO_Read(void *handle, uint8_t ReadAddr, uint8_t *pBuffer, uint16_t nBytesToRead);
cparata 0:6a670fda63c2 44
cparata 0:6a670fda63c2 45 /* Private typedef -----------------------------------------------------------*/
cparata 0:6a670fda63c2 46
cparata 0:6a670fda63c2 47 /* Private define ------------------------------------------------------------*/
cparata 0:6a670fda63c2 48
cparata 0:6a670fda63c2 49 /* Private macro -------------------------------------------------------------*/
cparata 0:6a670fda63c2 50
cparata 0:6a670fda63c2 51 /* Private variables ---------------------------------------------------------*/
cparata 0:6a670fda63c2 52
cparata 0:6a670fda63c2 53 /* Private functions ---------------------------------------------------------*/
cparata 0:6a670fda63c2 54
cparata 0:6a670fda63c2 55 /* Exported functions ---------------------------------------------------------*/
cparata 0:6a670fda63c2 56
cparata 0:6a670fda63c2 57 /************** Generic Function *******************/
cparata 0:6a670fda63c2 58
cparata 0:6a670fda63c2 59 /*******************************************************************************
cparata 0:6a670fda63c2 60 * Function Name : LSM6DSL_ACC_GYRO_ReadReg
cparata 0:6a670fda63c2 61 * Description : Generic Reading function. It must be fullfilled with either
cparata 0:6a670fda63c2 62 * : I2C or SPI reading functions
cparata 0:6a670fda63c2 63 * Input : Register Address, length of buffer
cparata 0:6a670fda63c2 64 * Output : Data REad
cparata 0:6a670fda63c2 65 * Return : None
cparata 0:6a670fda63c2 66 *******************************************************************************/
cparata 0:6a670fda63c2 67 status_t LSM6DSL_ACC_GYRO_ReadReg(void *handle, u8_t Reg, u8_t* Data, u16_t len)
cparata 0:6a670fda63c2 68 {
cparata 0:6a670fda63c2 69 if (LSM6DSL_IO_Read(handle, Reg, Data, len))
cparata 0:6a670fda63c2 70 {
cparata 0:6a670fda63c2 71 return MEMS_ERROR;
cparata 0:6a670fda63c2 72 }
cparata 0:6a670fda63c2 73 else
cparata 0:6a670fda63c2 74 {
cparata 0:6a670fda63c2 75 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 76 }
cparata 0:6a670fda63c2 77 }
cparata 0:6a670fda63c2 78
cparata 0:6a670fda63c2 79 /*******************************************************************************
cparata 0:6a670fda63c2 80 * Function Name : LSM6DSL_ACC_GYRO_WriteReg
cparata 0:6a670fda63c2 81 * Description : Generic Writing function. It must be fullfilled with either
cparata 0:6a670fda63c2 82 * : I2C or SPI writing function
cparata 0:6a670fda63c2 83 * Input : Register Address, Data to be written, length of buffer
cparata 0:6a670fda63c2 84 * Output : None
cparata 0:6a670fda63c2 85 * Return : None
cparata 0:6a670fda63c2 86 *******************************************************************************/
cparata 0:6a670fda63c2 87 status_t LSM6DSL_ACC_GYRO_WriteReg(void *handle, u8_t Reg, u8_t *Data, u16_t len)
cparata 0:6a670fda63c2 88 {
cparata 0:6a670fda63c2 89 if (LSM6DSL_IO_Write(handle, Reg, Data, len))
cparata 0:6a670fda63c2 90 {
cparata 0:6a670fda63c2 91 return MEMS_ERROR;
cparata 0:6a670fda63c2 92 }
cparata 0:6a670fda63c2 93 else
cparata 0:6a670fda63c2 94 {
cparata 0:6a670fda63c2 95 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 96 }
cparata 0:6a670fda63c2 97 }
cparata 0:6a670fda63c2 98
cparata 0:6a670fda63c2 99 /**************** Base Function *******************/
cparata 0:6a670fda63c2 100
cparata 0:6a670fda63c2 101 /*******************************************************************************
cparata 0:6a670fda63c2 102 * Function Name : LSM6DSL_ACC_GYRO_R_WHO_AM_I
cparata 0:6a670fda63c2 103 * Description : Read WHO_AM_I_BIT
cparata 0:6a670fda63c2 104 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 105 * Output : Status of WHO_AM_I_BIT
cparata 0:6a670fda63c2 106 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 107 *******************************************************************************/
cparata 0:6a670fda63c2 108 status_t LSM6DSL_ACC_GYRO_R_WHO_AM_I(void *handle, u8_t *value)
cparata 0:6a670fda63c2 109 {
cparata 0:6a670fda63c2 110 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WHO_AM_I_REG, (u8_t *)value, 1))
cparata 0:6a670fda63c2 111 return MEMS_ERROR;
cparata 0:6a670fda63c2 112
cparata 0:6a670fda63c2 113 *value &= LSM6DSL_ACC_GYRO_WHO_AM_I_BIT_MASK; //coerce
cparata 0:6a670fda63c2 114 *value = *value >> LSM6DSL_ACC_GYRO_WHO_AM_I_BIT_POSITION; //mask
cparata 0:6a670fda63c2 115
cparata 0:6a670fda63c2 116 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 117 }
cparata 0:6a670fda63c2 118
cparata 0:6a670fda63c2 119 /*******************************************************************************
cparata 0:6a670fda63c2 120 * Function Name : LSM6DSL_ACC_GYRO_W_BDU
cparata 0:6a670fda63c2 121 * Description : Write BDU
cparata 0:6a670fda63c2 122 * Input : LSM6DSL_ACC_GYRO_BDU_t
cparata 0:6a670fda63c2 123 * Output : None
cparata 0:6a670fda63c2 124 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 125 *******************************************************************************/
cparata 0:6a670fda63c2 126 status_t LSM6DSL_ACC_GYRO_W_BDU(void *handle, LSM6DSL_ACC_GYRO_BDU_t newValue)
cparata 0:6a670fda63c2 127 {
cparata 0:6a670fda63c2 128 u8_t value;
cparata 0:6a670fda63c2 129
cparata 0:6a670fda63c2 130 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 131 return MEMS_ERROR;
cparata 0:6a670fda63c2 132
cparata 0:6a670fda63c2 133 value &= ~LSM6DSL_ACC_GYRO_BDU_MASK;
cparata 0:6a670fda63c2 134 value |= newValue;
cparata 0:6a670fda63c2 135
cparata 0:6a670fda63c2 136 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 137 return MEMS_ERROR;
cparata 0:6a670fda63c2 138
cparata 0:6a670fda63c2 139 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 140 }
cparata 0:6a670fda63c2 141
cparata 0:6a670fda63c2 142 /*******************************************************************************
cparata 0:6a670fda63c2 143 * Function Name : LSM6DSL_ACC_GYRO_R_BDU
cparata 0:6a670fda63c2 144 * Description : Read BDU
cparata 0:6a670fda63c2 145 * Input : Pointer to LSM6DSL_ACC_GYRO_BDU_t
cparata 0:6a670fda63c2 146 * Output : Status of BDU see LSM6DSL_ACC_GYRO_BDU_t
cparata 0:6a670fda63c2 147 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 148 *******************************************************************************/
cparata 0:6a670fda63c2 149 status_t LSM6DSL_ACC_GYRO_R_BDU(void *handle, LSM6DSL_ACC_GYRO_BDU_t *value)
cparata 0:6a670fda63c2 150 {
cparata 0:6a670fda63c2 151 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 152 return MEMS_ERROR;
cparata 0:6a670fda63c2 153
cparata 0:6a670fda63c2 154 *value &= LSM6DSL_ACC_GYRO_BDU_MASK; //mask
cparata 0:6a670fda63c2 155
cparata 0:6a670fda63c2 156 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 157 }
cparata 0:6a670fda63c2 158
cparata 0:6a670fda63c2 159 /*******************************************************************************
cparata 0:6a670fda63c2 160 * Function Name : LSM6DSL_ACC_GYRO_W_FS_XL
cparata 0:6a670fda63c2 161 * Description : Write FS_XL
cparata 0:6a670fda63c2 162 * Input : LSM6DSL_ACC_GYRO_FS_XL_t
cparata 0:6a670fda63c2 163 * Output : None
cparata 0:6a670fda63c2 164 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 165 *******************************************************************************/
cparata 0:6a670fda63c2 166 status_t LSM6DSL_ACC_GYRO_W_FS_XL(void *handle, LSM6DSL_ACC_GYRO_FS_XL_t newValue)
cparata 0:6a670fda63c2 167 {
cparata 0:6a670fda63c2 168 u8_t value;
cparata 0:6a670fda63c2 169
cparata 0:6a670fda63c2 170 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1))
cparata 0:6a670fda63c2 171 return MEMS_ERROR;
cparata 0:6a670fda63c2 172
cparata 0:6a670fda63c2 173 value &= ~LSM6DSL_ACC_GYRO_FS_XL_MASK;
cparata 0:6a670fda63c2 174 value |= newValue;
cparata 0:6a670fda63c2 175
cparata 0:6a670fda63c2 176 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1) )
cparata 0:6a670fda63c2 177 return MEMS_ERROR;
cparata 0:6a670fda63c2 178
cparata 0:6a670fda63c2 179 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 180 }
cparata 0:6a670fda63c2 181
cparata 0:6a670fda63c2 182 /*******************************************************************************
cparata 0:6a670fda63c2 183 * Function Name : LSM6DSL_ACC_GYRO_R_FS_XL
cparata 0:6a670fda63c2 184 * Description : Read FS_XL
cparata 0:6a670fda63c2 185 * Input : Pointer to LSM6DSL_ACC_GYRO_FS_XL_t
cparata 0:6a670fda63c2 186 * Output : Status of FS_XL see LSM6DSL_ACC_GYRO_FS_XL_t
cparata 0:6a670fda63c2 187 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 188 *******************************************************************************/
cparata 0:6a670fda63c2 189 status_t LSM6DSL_ACC_GYRO_R_FS_XL(void *handle, LSM6DSL_ACC_GYRO_FS_XL_t *value)
cparata 0:6a670fda63c2 190 {
cparata 0:6a670fda63c2 191 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 192 return MEMS_ERROR;
cparata 0:6a670fda63c2 193
cparata 0:6a670fda63c2 194 *value &= LSM6DSL_ACC_GYRO_FS_XL_MASK; //mask
cparata 0:6a670fda63c2 195
cparata 0:6a670fda63c2 196 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 197 }
cparata 0:6a670fda63c2 198
cparata 0:6a670fda63c2 199 /*******************************************************************************
cparata 0:6a670fda63c2 200 * Function Name : status_t LSM6DSL_ACC_GYRO_GetRawAccData(u8_t *buff)
cparata 0:6a670fda63c2 201 * Description : Read GetAccData output register
cparata 0:6a670fda63c2 202 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 203 * Output : GetAccData buffer u8_t
cparata 0:6a670fda63c2 204 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 205 *******************************************************************************/
cparata 0:6a670fda63c2 206 status_t LSM6DSL_ACC_GYRO_GetRawAccData(void *handle, u8_t *buff)
cparata 0:6a670fda63c2 207 {
cparata 0:6a670fda63c2 208 u8_t i, j, k;
cparata 0:6a670fda63c2 209 u8_t numberOfByteForDimension;
cparata 0:6a670fda63c2 210
cparata 0:6a670fda63c2 211 numberOfByteForDimension=6/3;
cparata 0:6a670fda63c2 212
cparata 0:6a670fda63c2 213 k=0;
cparata 0:6a670fda63c2 214 for (i=0; i<3;i++ )
cparata 0:6a670fda63c2 215 {
cparata 0:6a670fda63c2 216 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:6a670fda63c2 217 {
cparata 0:6a670fda63c2 218 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_OUTX_L_XL+k, &buff[k], 1))
cparata 0:6a670fda63c2 219 return MEMS_ERROR;
cparata 0:6a670fda63c2 220 k++;
cparata 0:6a670fda63c2 221 }
cparata 0:6a670fda63c2 222 }
cparata 0:6a670fda63c2 223
cparata 0:6a670fda63c2 224 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 225 }
cparata 0:6a670fda63c2 226
cparata 0:6a670fda63c2 227 /*******************************************************************************
cparata 0:6a670fda63c2 228 * Function Name : status_t LSM6DSL_ACC_Get_Acceleration(void *handle, int *buff, u8_t from_fifo)
cparata 0:6a670fda63c2 229 * Description : Read GetAccData output register
cparata 0:6a670fda63c2 230 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 231 * Output : values are expressed in mg
cparata 0:6a670fda63c2 232 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 233 *******************************************************************************/
cparata 0:6a670fda63c2 234 /*
cparata 0:6a670fda63c2 235 * Following is the table of sensitivity values for each case.
cparata 0:6a670fda63c2 236 * Values are expressed in ug/digit.
cparata 0:6a670fda63c2 237 */
cparata 0:6a670fda63c2 238 static const long long LSM6DSL_ACC_Sensitivity_List[4] = {
cparata 0:6a670fda63c2 239 61, /* FS @2g */
cparata 0:6a670fda63c2 240 122, /* FS @4g */
cparata 0:6a670fda63c2 241 244, /* FS @8g */
cparata 0:6a670fda63c2 242 488, /* FS @16g */
cparata 0:6a670fda63c2 243 };
cparata 0:6a670fda63c2 244 status_t LSM6DSL_ACC_Get_Acceleration(void *handle, int *buff, u8_t from_fifo)
cparata 0:6a670fda63c2 245 {
cparata 0:6a670fda63c2 246 LSM6DSL_ACC_GYRO_FS_XL_t fs;
cparata 0:6a670fda63c2 247 long long sensitivity = 0;
cparata 0:6a670fda63c2 248 Type3Axis16bit_U raw_data_tmp;
cparata 0:6a670fda63c2 249
cparata 0:6a670fda63c2 250 /* Read out current odr, fs, hf setting */
cparata 0:6a670fda63c2 251 LSM6DSL_ACC_GYRO_R_FS_XL(handle, &fs);
cparata 0:6a670fda63c2 252
cparata 0:6a670fda63c2 253 /* Determine the sensitivity according to fs */
cparata 0:6a670fda63c2 254 switch(fs) {
cparata 0:6a670fda63c2 255 case LSM6DSL_ACC_GYRO_FS_XL_2g:
cparata 0:6a670fda63c2 256 sensitivity = LSM6DSL_ACC_Sensitivity_List[0];
cparata 0:6a670fda63c2 257 break;
cparata 0:6a670fda63c2 258
cparata 0:6a670fda63c2 259 case LSM6DSL_ACC_GYRO_FS_XL_4g:
cparata 0:6a670fda63c2 260 sensitivity = LSM6DSL_ACC_Sensitivity_List[1];
cparata 0:6a670fda63c2 261 break;
cparata 0:6a670fda63c2 262
cparata 0:6a670fda63c2 263 case LSM6DSL_ACC_GYRO_FS_XL_8g:
cparata 0:6a670fda63c2 264 sensitivity = LSM6DSL_ACC_Sensitivity_List[2];
cparata 0:6a670fda63c2 265 break;
cparata 0:6a670fda63c2 266
cparata 0:6a670fda63c2 267 case LSM6DSL_ACC_GYRO_FS_XL_16g:
cparata 0:6a670fda63c2 268 sensitivity = LSM6DSL_ACC_Sensitivity_List[3];
cparata 0:6a670fda63c2 269 break;
cparata 0:6a670fda63c2 270 }
cparata 0:6a670fda63c2 271
cparata 0:6a670fda63c2 272 /* Read out raw accelerometer samples */
cparata 0:6a670fda63c2 273 if (from_fifo) {
cparata 0:6a670fda63c2 274 u8_t i;
cparata 0:6a670fda63c2 275
cparata 0:6a670fda63c2 276 /* read all 3 axis from FIFO */
cparata 0:6a670fda63c2 277 for(i = 0; i < 3; i++)
cparata 0:6a670fda63c2 278 LSM6DSL_ACC_GYRO_Get_GetFIFOData(handle, raw_data_tmp.u8bit + 2*i);
cparata 0:6a670fda63c2 279 } else
cparata 0:6a670fda63c2 280 LSM6DSL_ACC_GYRO_GetRawAccData(handle, raw_data_tmp.u8bit);
cparata 0:6a670fda63c2 281
cparata 0:6a670fda63c2 282 /* Apply proper shift and sensitivity */
cparata 0:6a670fda63c2 283 buff[0] = (raw_data_tmp.i16bit[0] * sensitivity + 500)/1000;
cparata 0:6a670fda63c2 284 buff[1] = (raw_data_tmp.i16bit[1] * sensitivity + 500)/1000;
cparata 0:6a670fda63c2 285 buff[2] = (raw_data_tmp.i16bit[2] * sensitivity + 500)/1000;
cparata 0:6a670fda63c2 286
cparata 0:6a670fda63c2 287 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 288 }
cparata 0:6a670fda63c2 289
cparata 0:6a670fda63c2 290 /*******************************************************************************
cparata 0:6a670fda63c2 291 * Function Name : LSM6DSL_ACC_GYRO_W_ODR_XL
cparata 0:6a670fda63c2 292 * Description : Write ODR_XL
cparata 0:6a670fda63c2 293 * Input : LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:6a670fda63c2 294 * Output : None
cparata 0:6a670fda63c2 295 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 296 *******************************************************************************/
cparata 0:6a670fda63c2 297 status_t LSM6DSL_ACC_GYRO_W_ODR_XL(void *handle, LSM6DSL_ACC_GYRO_ODR_XL_t newValue)
cparata 0:6a670fda63c2 298 {
cparata 0:6a670fda63c2 299 u8_t value;
cparata 0:6a670fda63c2 300
cparata 0:6a670fda63c2 301 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1))
cparata 0:6a670fda63c2 302 return MEMS_ERROR;
cparata 0:6a670fda63c2 303
cparata 0:6a670fda63c2 304 value &= ~LSM6DSL_ACC_GYRO_ODR_XL_MASK;
cparata 0:6a670fda63c2 305 value |= newValue;
cparata 0:6a670fda63c2 306
cparata 0:6a670fda63c2 307 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1) )
cparata 0:6a670fda63c2 308 return MEMS_ERROR;
cparata 0:6a670fda63c2 309
cparata 0:6a670fda63c2 310 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 311 }
cparata 0:6a670fda63c2 312
cparata 0:6a670fda63c2 313 /*******************************************************************************
cparata 0:6a670fda63c2 314 * Function Name : LSM6DSL_ACC_GYRO_R_ODR_XL
cparata 0:6a670fda63c2 315 * Description : Read ODR_XL
cparata 0:6a670fda63c2 316 * Input : Pointer to LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:6a670fda63c2 317 * Output : Status of ODR_XL see LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:6a670fda63c2 318 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 319 *******************************************************************************/
cparata 0:6a670fda63c2 320 status_t LSM6DSL_ACC_GYRO_R_ODR_XL(void *handle, LSM6DSL_ACC_GYRO_ODR_XL_t *value)
cparata 0:6a670fda63c2 321 {
cparata 0:6a670fda63c2 322 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 323 return MEMS_ERROR;
cparata 0:6a670fda63c2 324
cparata 0:6a670fda63c2 325 *value &= LSM6DSL_ACC_GYRO_ODR_XL_MASK; //mask
cparata 0:6a670fda63c2 326
cparata 0:6a670fda63c2 327 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 328 }
cparata 0:6a670fda63c2 329
cparata 0:6a670fda63c2 330 /*******************************************************************************
cparata 0:6a670fda63c2 331 * Function Name : LSM6DSL_ACC_GYRO_translate_ODR_XL
cparata 0:6a670fda63c2 332 * Description : Read ODR_XL
cparata 0:6a670fda63c2 333 * Input : LSM6DSL_ACC_GYRO_ODR_XL_t
cparata 0:6a670fda63c2 334 * Output : The ODR value in Hz
cparata 0:6a670fda63c2 335 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 336 *******************************************************************************/
cparata 0:6a670fda63c2 337 status_t LSM6DSL_ACC_GYRO_translate_ODR_XL(LSM6DSL_ACC_GYRO_ODR_XL_t value, u16_t *odr_hz_val)
cparata 0:6a670fda63c2 338 {
cparata 0:6a670fda63c2 339 switch(value) {
cparata 0:6a670fda63c2 340 case LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN:
cparata 0:6a670fda63c2 341 *odr_hz_val = 0;
cparata 0:6a670fda63c2 342 break;
cparata 0:6a670fda63c2 343
cparata 0:6a670fda63c2 344 case LSM6DSL_ACC_GYRO_ODR_XL_13Hz:
cparata 0:6a670fda63c2 345 *odr_hz_val = 13;
cparata 0:6a670fda63c2 346 break;
cparata 0:6a670fda63c2 347
cparata 0:6a670fda63c2 348 case LSM6DSL_ACC_GYRO_ODR_XL_26Hz:
cparata 0:6a670fda63c2 349 *odr_hz_val = 26;
cparata 0:6a670fda63c2 350 break;
cparata 0:6a670fda63c2 351
cparata 0:6a670fda63c2 352 case LSM6DSL_ACC_GYRO_ODR_XL_52Hz:
cparata 0:6a670fda63c2 353 *odr_hz_val = 52;
cparata 0:6a670fda63c2 354 break;
cparata 0:6a670fda63c2 355
cparata 0:6a670fda63c2 356 case LSM6DSL_ACC_GYRO_ODR_XL_104Hz:
cparata 0:6a670fda63c2 357 *odr_hz_val = 104;
cparata 0:6a670fda63c2 358 break;
cparata 0:6a670fda63c2 359
cparata 0:6a670fda63c2 360 case LSM6DSL_ACC_GYRO_ODR_XL_208Hz:
cparata 0:6a670fda63c2 361 *odr_hz_val = 208;
cparata 0:6a670fda63c2 362 break;
cparata 0:6a670fda63c2 363
cparata 0:6a670fda63c2 364 case LSM6DSL_ACC_GYRO_ODR_XL_416Hz:
cparata 0:6a670fda63c2 365 *odr_hz_val = 416;
cparata 0:6a670fda63c2 366 break;
cparata 0:6a670fda63c2 367
cparata 0:6a670fda63c2 368 case LSM6DSL_ACC_GYRO_ODR_XL_833Hz:
cparata 0:6a670fda63c2 369 *odr_hz_val = 833;
cparata 0:6a670fda63c2 370 break;
cparata 0:6a670fda63c2 371
cparata 0:6a670fda63c2 372 case LSM6DSL_ACC_GYRO_ODR_XL_1660Hz:
cparata 0:6a670fda63c2 373 *odr_hz_val = 1660;
cparata 0:6a670fda63c2 374 break;
cparata 0:6a670fda63c2 375
cparata 0:6a670fda63c2 376 default:
cparata 0:6a670fda63c2 377 return MEMS_ERROR;
cparata 0:6a670fda63c2 378 }
cparata 0:6a670fda63c2 379
cparata 0:6a670fda63c2 380 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 381 }
cparata 0:6a670fda63c2 382
cparata 0:6a670fda63c2 383 /*******************************************************************************
cparata 0:6a670fda63c2 384 * Function Name : LSM6DSL_ACC_GYRO_W_FS_G
cparata 0:6a670fda63c2 385 * Description : Write FS_G
cparata 0:6a670fda63c2 386 * Input : LSM6DSL_ACC_GYRO_FS_G_t
cparata 0:6a670fda63c2 387 * Output : None
cparata 0:6a670fda63c2 388 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 389 *******************************************************************************/
cparata 0:6a670fda63c2 390 status_t LSM6DSL_ACC_GYRO_W_FS_G(void *handle, LSM6DSL_ACC_GYRO_FS_G_t newValue)
cparata 0:6a670fda63c2 391 {
cparata 0:6a670fda63c2 392 u8_t value;
cparata 0:6a670fda63c2 393
cparata 0:6a670fda63c2 394 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1))
cparata 0:6a670fda63c2 395 return MEMS_ERROR;
cparata 0:6a670fda63c2 396
cparata 0:6a670fda63c2 397 value &= ~LSM6DSL_ACC_GYRO_FS_G_MASK;
cparata 0:6a670fda63c2 398 value |= newValue;
cparata 0:6a670fda63c2 399
cparata 0:6a670fda63c2 400 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1) )
cparata 0:6a670fda63c2 401 return MEMS_ERROR;
cparata 0:6a670fda63c2 402
cparata 0:6a670fda63c2 403 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 404 }
cparata 0:6a670fda63c2 405
cparata 0:6a670fda63c2 406 /*******************************************************************************
cparata 0:6a670fda63c2 407 * Function Name : LSM6DSL_ACC_GYRO_R_FS_G
cparata 0:6a670fda63c2 408 * Description : Read FS_G
cparata 0:6a670fda63c2 409 * Input : Pointer to LSM6DSL_ACC_GYRO_FS_G_t
cparata 0:6a670fda63c2 410 * Output : Status of FS_G see LSM6DSL_ACC_GYRO_FS_G_t
cparata 0:6a670fda63c2 411 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 412 *******************************************************************************/
cparata 0:6a670fda63c2 413 status_t LSM6DSL_ACC_GYRO_R_FS_G(void *handle, LSM6DSL_ACC_GYRO_FS_G_t *value)
cparata 0:6a670fda63c2 414 {
cparata 0:6a670fda63c2 415 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 416 return MEMS_ERROR;
cparata 0:6a670fda63c2 417
cparata 0:6a670fda63c2 418 *value &= LSM6DSL_ACC_GYRO_FS_G_MASK; //mask
cparata 0:6a670fda63c2 419
cparata 0:6a670fda63c2 420 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 421 }
cparata 0:6a670fda63c2 422
cparata 0:6a670fda63c2 423 /*******************************************************************************
cparata 0:6a670fda63c2 424 * Function Name : status_t LSM6DSL_ACC_GYRO_GetRawGyroData(u8_t *buff)
cparata 0:6a670fda63c2 425 * Description : Read GetGyroData output register
cparata 0:6a670fda63c2 426 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 427 * Output : GetGyroData buffer u8_t
cparata 0:6a670fda63c2 428 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 429 *******************************************************************************/
cparata 0:6a670fda63c2 430 status_t LSM6DSL_ACC_GYRO_GetRawGyroData(void *handle, u8_t *buff)
cparata 0:6a670fda63c2 431 {
cparata 0:6a670fda63c2 432 u8_t i, j, k;
cparata 0:6a670fda63c2 433 u8_t numberOfByteForDimension;
cparata 0:6a670fda63c2 434
cparata 0:6a670fda63c2 435 numberOfByteForDimension=6/3;
cparata 0:6a670fda63c2 436
cparata 0:6a670fda63c2 437 k=0;
cparata 0:6a670fda63c2 438 for (i=0; i<3;i++ )
cparata 0:6a670fda63c2 439 {
cparata 0:6a670fda63c2 440 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:6a670fda63c2 441 {
cparata 0:6a670fda63c2 442 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_OUTX_L_G+k, &buff[k], 1))
cparata 0:6a670fda63c2 443 return MEMS_ERROR;
cparata 0:6a670fda63c2 444 k++;
cparata 0:6a670fda63c2 445 }
cparata 0:6a670fda63c2 446 }
cparata 0:6a670fda63c2 447
cparata 0:6a670fda63c2 448 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 449 }
cparata 0:6a670fda63c2 450
cparata 0:6a670fda63c2 451 /*******************************************************************************
cparata 0:6a670fda63c2 452 * Function Name : status_t LSM6DSL_ACC_Get_AngularRate(u8_t *buff)
cparata 0:6a670fda63c2 453 * Description : Read GetGyroData output register
cparata 0:6a670fda63c2 454 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 455 * Output : Returned values are espressed in mdps
cparata 0:6a670fda63c2 456 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 457 *******************************************************************************/
cparata 0:6a670fda63c2 458 /*
cparata 0:6a670fda63c2 459 * Following is the table of sensitivity values for each case.
cparata 0:6a670fda63c2 460 * Values are espressed in udps/digit.
cparata 0:6a670fda63c2 461 */
cparata 0:6a670fda63c2 462 static const long long LSM6DSL_GYRO_Sensitivity_List[5] = {
cparata 0:6a670fda63c2 463 4375, /* FS @125 */
cparata 0:6a670fda63c2 464 8750, /* FS @245 */
cparata 0:6a670fda63c2 465 17500, /* FS @500 */
cparata 0:6a670fda63c2 466 35000, /* FS @1000 */
cparata 0:6a670fda63c2 467 70000, /* FS @2000 */
cparata 0:6a670fda63c2 468 };
cparata 0:6a670fda63c2 469 status_t LSM6DSL_ACC_Get_AngularRate(void *handle, int *buff, u8_t from_fifo)
cparata 0:6a670fda63c2 470 {
cparata 0:6a670fda63c2 471 LSM6DSL_ACC_GYRO_FS_125_t fs_125;
cparata 0:6a670fda63c2 472 LSM6DSL_ACC_GYRO_FS_G_t fs;
cparata 0:6a670fda63c2 473 long long sensitivity = 0;
cparata 0:6a670fda63c2 474 Type3Axis16bit_U raw_data_tmp;
cparata 0:6a670fda63c2 475
cparata 0:6a670fda63c2 476 /* Read out current odr, fs, hf setting */
cparata 0:6a670fda63c2 477 LSM6DSL_ACC_GYRO_R_FS_125(handle, &fs_125);
cparata 0:6a670fda63c2 478 if (fs_125 == LSM6DSL_ACC_GYRO_FS_125_ENABLED) {
cparata 0:6a670fda63c2 479 sensitivity = LSM6DSL_GYRO_Sensitivity_List[0];
cparata 0:6a670fda63c2 480 } else {
cparata 0:6a670fda63c2 481 LSM6DSL_ACC_GYRO_R_FS_G(handle, &fs);
cparata 0:6a670fda63c2 482
cparata 0:6a670fda63c2 483 /* Determine the sensitivity according to fs */
cparata 0:6a670fda63c2 484 switch(fs) {
cparata 0:6a670fda63c2 485 case LSM6DSL_ACC_GYRO_FS_G_245dps:
cparata 0:6a670fda63c2 486 sensitivity = LSM6DSL_GYRO_Sensitivity_List[1];
cparata 0:6a670fda63c2 487 break;
cparata 0:6a670fda63c2 488
cparata 0:6a670fda63c2 489 case LSM6DSL_ACC_GYRO_FS_G_500dps:
cparata 0:6a670fda63c2 490 sensitivity = LSM6DSL_GYRO_Sensitivity_List[2];
cparata 0:6a670fda63c2 491 break;
cparata 0:6a670fda63c2 492
cparata 0:6a670fda63c2 493 case LSM6DSL_ACC_GYRO_FS_G_1000dps:
cparata 0:6a670fda63c2 494 sensitivity = LSM6DSL_GYRO_Sensitivity_List[3];
cparata 0:6a670fda63c2 495 break;
cparata 0:6a670fda63c2 496
cparata 0:6a670fda63c2 497 case LSM6DSL_ACC_GYRO_FS_G_2000dps:
cparata 0:6a670fda63c2 498 sensitivity = LSM6DSL_GYRO_Sensitivity_List[4];
cparata 0:6a670fda63c2 499 break;
cparata 0:6a670fda63c2 500 }
cparata 0:6a670fda63c2 501 }
cparata 0:6a670fda63c2 502
cparata 0:6a670fda63c2 503 /* Read out raw accelerometer samples */
cparata 0:6a670fda63c2 504 if (from_fifo) {
cparata 0:6a670fda63c2 505 u8_t i;
cparata 0:6a670fda63c2 506
cparata 0:6a670fda63c2 507 /* read all 3 axis from FIFO */
cparata 0:6a670fda63c2 508 for(i = 0; i < 3; i++)
cparata 0:6a670fda63c2 509 LSM6DSL_ACC_GYRO_Get_GetFIFOData(handle, raw_data_tmp.u8bit + 2*i);
cparata 0:6a670fda63c2 510 } else
cparata 0:6a670fda63c2 511 LSM6DSL_ACC_GYRO_GetRawGyroData(handle, raw_data_tmp.u8bit);
cparata 0:6a670fda63c2 512
cparata 0:6a670fda63c2 513 /* Apply proper shift and sensitivity */
cparata 0:6a670fda63c2 514 buff[0] = (raw_data_tmp.i16bit[0] * sensitivity + 500)/1000;
cparata 0:6a670fda63c2 515 buff[1] = (raw_data_tmp.i16bit[1] * sensitivity + 500)/1000;
cparata 0:6a670fda63c2 516 buff[2] = (raw_data_tmp.i16bit[2] * sensitivity + 500)/1000;
cparata 0:6a670fda63c2 517
cparata 0:6a670fda63c2 518 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 519 }
cparata 0:6a670fda63c2 520
cparata 0:6a670fda63c2 521 /*******************************************************************************
cparata 0:6a670fda63c2 522 * Function Name : LSM6DSL_ACC_GYRO_W_ODR_G
cparata 0:6a670fda63c2 523 * Description : Write ODR_G
cparata 0:6a670fda63c2 524 * Input : LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:6a670fda63c2 525 * Output : None
cparata 0:6a670fda63c2 526 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 527 *******************************************************************************/
cparata 0:6a670fda63c2 528 status_t LSM6DSL_ACC_GYRO_W_ODR_G(void *handle, LSM6DSL_ACC_GYRO_ODR_G_t newValue)
cparata 0:6a670fda63c2 529 {
cparata 0:6a670fda63c2 530 u8_t value;
cparata 0:6a670fda63c2 531
cparata 0:6a670fda63c2 532 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1))
cparata 0:6a670fda63c2 533 return MEMS_ERROR;
cparata 0:6a670fda63c2 534
cparata 0:6a670fda63c2 535 value &= ~LSM6DSL_ACC_GYRO_ODR_G_MASK;
cparata 0:6a670fda63c2 536 value |= newValue;
cparata 0:6a670fda63c2 537
cparata 0:6a670fda63c2 538 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1) )
cparata 0:6a670fda63c2 539 return MEMS_ERROR;
cparata 0:6a670fda63c2 540
cparata 0:6a670fda63c2 541 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 542 }
cparata 0:6a670fda63c2 543
cparata 0:6a670fda63c2 544 /*******************************************************************************
cparata 0:6a670fda63c2 545 * Function Name : LSM6DSL_ACC_GYRO_R_ODR_G
cparata 0:6a670fda63c2 546 * Description : Read ODR_G
cparata 0:6a670fda63c2 547 * Input : Pointer to LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:6a670fda63c2 548 * Output : Status of ODR_G see LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:6a670fda63c2 549 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 550 *******************************************************************************/
cparata 0:6a670fda63c2 551 status_t LSM6DSL_ACC_GYRO_R_ODR_G(void *handle, LSM6DSL_ACC_GYRO_ODR_G_t *value)
cparata 0:6a670fda63c2 552 {
cparata 0:6a670fda63c2 553 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 554 return MEMS_ERROR;
cparata 0:6a670fda63c2 555
cparata 0:6a670fda63c2 556 *value &= LSM6DSL_ACC_GYRO_ODR_G_MASK; //mask
cparata 0:6a670fda63c2 557
cparata 0:6a670fda63c2 558 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 559 }
cparata 0:6a670fda63c2 560
cparata 0:6a670fda63c2 561 /*******************************************************************************
cparata 0:6a670fda63c2 562 * Function Name : LSM6DSL_ACC_GYRO_translate_ODR_G
cparata 0:6a670fda63c2 563 * Description : Read ODR_G
cparata 0:6a670fda63c2 564 * Input : LSM6DSL_ACC_GYRO_ODR_G_t
cparata 0:6a670fda63c2 565 * Output : The ODR value in Hz
cparata 0:6a670fda63c2 566 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 567 *******************************************************************************/
cparata 0:6a670fda63c2 568 status_t LSM6DSL_ACC_GYRO_translate_ODR_G(LSM6DSL_ACC_GYRO_ODR_G_t value, u16_t *odr_hz_val)
cparata 0:6a670fda63c2 569 {
cparata 0:6a670fda63c2 570 switch(value) {
cparata 0:6a670fda63c2 571 case LSM6DSL_ACC_GYRO_ODR_G_POWER_DOWN:
cparata 0:6a670fda63c2 572 *odr_hz_val = 0;
cparata 0:6a670fda63c2 573 break;
cparata 0:6a670fda63c2 574
cparata 0:6a670fda63c2 575 case LSM6DSL_ACC_GYRO_ODR_G_13Hz:
cparata 0:6a670fda63c2 576 *odr_hz_val = 13;
cparata 0:6a670fda63c2 577 break;
cparata 0:6a670fda63c2 578
cparata 0:6a670fda63c2 579 case LSM6DSL_ACC_GYRO_ODR_G_26Hz:
cparata 0:6a670fda63c2 580 *odr_hz_val = 26;
cparata 0:6a670fda63c2 581 break;
cparata 0:6a670fda63c2 582
cparata 0:6a670fda63c2 583 case LSM6DSL_ACC_GYRO_ODR_G_52Hz:
cparata 0:6a670fda63c2 584 *odr_hz_val = 52;
cparata 0:6a670fda63c2 585 break;
cparata 0:6a670fda63c2 586
cparata 0:6a670fda63c2 587 case LSM6DSL_ACC_GYRO_ODR_G_104Hz:
cparata 0:6a670fda63c2 588 *odr_hz_val = 104;
cparata 0:6a670fda63c2 589 break;
cparata 0:6a670fda63c2 590
cparata 0:6a670fda63c2 591 case LSM6DSL_ACC_GYRO_ODR_G_208Hz:
cparata 0:6a670fda63c2 592 *odr_hz_val = 208;
cparata 0:6a670fda63c2 593 break;
cparata 0:6a670fda63c2 594
cparata 0:6a670fda63c2 595 case LSM6DSL_ACC_GYRO_ODR_G_416Hz:
cparata 0:6a670fda63c2 596 *odr_hz_val = 416;
cparata 0:6a670fda63c2 597 break;
cparata 0:6a670fda63c2 598
cparata 0:6a670fda63c2 599 case LSM6DSL_ACC_GYRO_ODR_G_833Hz:
cparata 0:6a670fda63c2 600 *odr_hz_val = 833;
cparata 0:6a670fda63c2 601 break;
cparata 0:6a670fda63c2 602
cparata 0:6a670fda63c2 603 case LSM6DSL_ACC_GYRO_ODR_G_1660Hz:
cparata 0:6a670fda63c2 604 *odr_hz_val = 1660;
cparata 0:6a670fda63c2 605 break;
cparata 0:6a670fda63c2 606
cparata 0:6a670fda63c2 607 default:
cparata 0:6a670fda63c2 608 return MEMS_ERROR;
cparata 0:6a670fda63c2 609 }
cparata 0:6a670fda63c2 610
cparata 0:6a670fda63c2 611 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 612 }
cparata 0:6a670fda63c2 613
cparata 0:6a670fda63c2 614 /*******************************************************************************
cparata 0:6a670fda63c2 615 * Function Name : LSM6DSL_ACC_GYRO_W_FS_125
cparata 0:6a670fda63c2 616 * Description : Write FS_125
cparata 0:6a670fda63c2 617 * Input : LSM6DSL_ACC_GYRO_FS_125_t
cparata 0:6a670fda63c2 618 * Output : None
cparata 0:6a670fda63c2 619 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 620 *******************************************************************************/
cparata 0:6a670fda63c2 621 status_t LSM6DSL_ACC_GYRO_W_FS_125(void *handle, LSM6DSL_ACC_GYRO_FS_125_t newValue)
cparata 0:6a670fda63c2 622 {
cparata 0:6a670fda63c2 623 u8_t value;
cparata 0:6a670fda63c2 624
cparata 0:6a670fda63c2 625 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1))
cparata 0:6a670fda63c2 626 return MEMS_ERROR;
cparata 0:6a670fda63c2 627
cparata 0:6a670fda63c2 628 value &= ~LSM6DSL_ACC_GYRO_FS_125_MASK;
cparata 0:6a670fda63c2 629 value |= newValue;
cparata 0:6a670fda63c2 630
cparata 0:6a670fda63c2 631 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, &value, 1) )
cparata 0:6a670fda63c2 632 return MEMS_ERROR;
cparata 0:6a670fda63c2 633
cparata 0:6a670fda63c2 634 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 635 }
cparata 0:6a670fda63c2 636
cparata 0:6a670fda63c2 637 /*******************************************************************************
cparata 0:6a670fda63c2 638 * Function Name : LSM6DSL_ACC_GYRO_R_FS_125
cparata 0:6a670fda63c2 639 * Description : Read FS_125
cparata 0:6a670fda63c2 640 * Input : Pointer to LSM6DSL_ACC_GYRO_FS_125_t
cparata 0:6a670fda63c2 641 * Output : Status of FS_125 see LSM6DSL_ACC_GYRO_FS_125_t
cparata 0:6a670fda63c2 642 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 643 *******************************************************************************/
cparata 0:6a670fda63c2 644 status_t LSM6DSL_ACC_GYRO_R_FS_125(void *handle, LSM6DSL_ACC_GYRO_FS_125_t *value)
cparata 0:6a670fda63c2 645 {
cparata 0:6a670fda63c2 646 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL2_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 647 return MEMS_ERROR;
cparata 0:6a670fda63c2 648
cparata 0:6a670fda63c2 649 *value &= LSM6DSL_ACC_GYRO_FS_125_MASK; //mask
cparata 0:6a670fda63c2 650
cparata 0:6a670fda63c2 651 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 652 }
cparata 0:6a670fda63c2 653
cparata 0:6a670fda63c2 654 /**************** Advanced Function *******************/
cparata 0:6a670fda63c2 655
cparata 0:6a670fda63c2 656 /*******************************************************************************
cparata 0:6a670fda63c2 657 * Function Name : LSM6DSL_ACC_GYRO_W_BW_SEL
cparata 0:6a670fda63c2 658 * Description : Write BW_SEL
cparata 0:6a670fda63c2 659 * Input : LSM6DSL_ACC_GYRO_BW_SEL_t
cparata 0:6a670fda63c2 660 * Output : None
cparata 0:6a670fda63c2 661 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 662 *******************************************************************************/
cparata 0:6a670fda63c2 663 status_t LSM6DSL_ACC_GYRO_W_BW_SEL(void *handle, LSM6DSL_ACC_GYRO_BW_SEL_t newValue)
cparata 0:6a670fda63c2 664 {
cparata 0:6a670fda63c2 665 u8_t value;
cparata 0:6a670fda63c2 666
cparata 0:6a670fda63c2 667 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1))
cparata 0:6a670fda63c2 668 return MEMS_ERROR;
cparata 0:6a670fda63c2 669
cparata 0:6a670fda63c2 670 value &= ~LSM6DSL_ACC_GYRO_BW_SEL_MASK;
cparata 0:6a670fda63c2 671 value |= newValue;
cparata 0:6a670fda63c2 672
cparata 0:6a670fda63c2 673 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, &value, 1) )
cparata 0:6a670fda63c2 674 return MEMS_ERROR;
cparata 0:6a670fda63c2 675
cparata 0:6a670fda63c2 676 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 677 }
cparata 0:6a670fda63c2 678
cparata 0:6a670fda63c2 679 /*******************************************************************************
cparata 0:6a670fda63c2 680 * Function Name : LSM6DSL_ACC_GYRO_R_BW_SEL
cparata 0:6a670fda63c2 681 * Description : Read BW_SEL
cparata 0:6a670fda63c2 682 * Input : Pointer to LSM6DSL_ACC_GYRO_BW_SEL_t
cparata 0:6a670fda63c2 683 * Output : Status of BW_SEL see LSM6DSL_ACC_GYRO_BW_SEL_t
cparata 0:6a670fda63c2 684 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 685 *******************************************************************************/
cparata 0:6a670fda63c2 686 status_t LSM6DSL_ACC_GYRO_R_BW_SEL(void *handle, LSM6DSL_ACC_GYRO_BW_SEL_t *value)
cparata 0:6a670fda63c2 687 {
cparata 0:6a670fda63c2 688 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL1_XL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 689 return MEMS_ERROR;
cparata 0:6a670fda63c2 690
cparata 0:6a670fda63c2 691 *value &= LSM6DSL_ACC_GYRO_BW_SEL_MASK; //mask
cparata 0:6a670fda63c2 692
cparata 0:6a670fda63c2 693 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 694 }
cparata 0:6a670fda63c2 695
cparata 0:6a670fda63c2 696 /*******************************************************************************
cparata 0:6a670fda63c2 697 * Function Name : LSM6DSL_ACC_GYRO_W_BLE
cparata 0:6a670fda63c2 698 * Description : Write BLE
cparata 0:6a670fda63c2 699 * Input : LSM6DSL_ACC_GYRO_BLE_t
cparata 0:6a670fda63c2 700 * Output : None
cparata 0:6a670fda63c2 701 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 702 *******************************************************************************/
cparata 0:6a670fda63c2 703 status_t LSM6DSL_ACC_GYRO_W_BLE(void *handle, LSM6DSL_ACC_GYRO_BLE_t newValue)
cparata 0:6a670fda63c2 704 {
cparata 0:6a670fda63c2 705 u8_t value;
cparata 0:6a670fda63c2 706
cparata 0:6a670fda63c2 707 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 708 return MEMS_ERROR;
cparata 0:6a670fda63c2 709
cparata 0:6a670fda63c2 710 value &= ~LSM6DSL_ACC_GYRO_BLE_MASK;
cparata 0:6a670fda63c2 711 value |= newValue;
cparata 0:6a670fda63c2 712
cparata 0:6a670fda63c2 713 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 714 return MEMS_ERROR;
cparata 0:6a670fda63c2 715
cparata 0:6a670fda63c2 716 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 717 }
cparata 0:6a670fda63c2 718
cparata 0:6a670fda63c2 719 /*******************************************************************************
cparata 0:6a670fda63c2 720 * Function Name : LSM6DSL_ACC_GYRO_R_BLE
cparata 0:6a670fda63c2 721 * Description : Read BLE
cparata 0:6a670fda63c2 722 * Input : Pointer to LSM6DSL_ACC_GYRO_BLE_t
cparata 0:6a670fda63c2 723 * Output : Status of BLE see LSM6DSL_ACC_GYRO_BLE_t
cparata 0:6a670fda63c2 724 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 725 *******************************************************************************/
cparata 0:6a670fda63c2 726 status_t LSM6DSL_ACC_GYRO_R_BLE(void *handle, LSM6DSL_ACC_GYRO_BLE_t *value)
cparata 0:6a670fda63c2 727 {
cparata 0:6a670fda63c2 728 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 729 return MEMS_ERROR;
cparata 0:6a670fda63c2 730
cparata 0:6a670fda63c2 731 *value &= LSM6DSL_ACC_GYRO_BLE_MASK; //mask
cparata 0:6a670fda63c2 732
cparata 0:6a670fda63c2 733 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 734 }
cparata 0:6a670fda63c2 735
cparata 0:6a670fda63c2 736 /*******************************************************************************
cparata 0:6a670fda63c2 737 * Function Name : LSM6DSL_ACC_GYRO_W_EmbeddedAccess
cparata 0:6a670fda63c2 738 * Description : Write EMB_ACC
cparata 0:6a670fda63c2 739 * Input : LSM6DSL_ACC_GYRO_EMB_ACC_t
cparata 0:6a670fda63c2 740 * Output : None
cparata 0:6a670fda63c2 741 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 742 *******************************************************************************/
cparata 0:6a670fda63c2 743 status_t LSM6DSL_ACC_GYRO_W_EmbeddedAccess(void *handle, LSM6DSL_ACC_GYRO_EMB_ACC_t newValue)
cparata 0:6a670fda63c2 744 {
cparata 0:6a670fda63c2 745 u8_t value;
cparata 0:6a670fda63c2 746
cparata 0:6a670fda63c2 747 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS, &value, 1) )
cparata 0:6a670fda63c2 748 return MEMS_ERROR;
cparata 0:6a670fda63c2 749
cparata 0:6a670fda63c2 750 value &= ~LSM6DSL_ACC_GYRO_EMB_ACC_MASK;
cparata 0:6a670fda63c2 751 value |= newValue;
cparata 0:6a670fda63c2 752
cparata 0:6a670fda63c2 753 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS, &value, 1) )
cparata 0:6a670fda63c2 754 return MEMS_ERROR;
cparata 0:6a670fda63c2 755
cparata 0:6a670fda63c2 756 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 757 }
cparata 0:6a670fda63c2 758
cparata 0:6a670fda63c2 759 /*******************************************************************************
cparata 0:6a670fda63c2 760 * Function Name : LSM6DSL_ACC_GYRO_R_EmbeddedAccess
cparata 0:6a670fda63c2 761 * Description : Read EMB_ACC
cparata 0:6a670fda63c2 762 * Input : Pointer to LSM6DSL_ACC_GYRO_EMB_ACC_t
cparata 0:6a670fda63c2 763 * Output : Status of EMB_ACC see LSM6DSL_ACC_GYRO_EMB_ACC_t
cparata 0:6a670fda63c2 764 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 765 *******************************************************************************/
cparata 0:6a670fda63c2 766 status_t LSM6DSL_ACC_GYRO_R_EmbeddedAccess(void *handle, LSM6DSL_ACC_GYRO_EMB_ACC_t *value)
cparata 0:6a670fda63c2 767 {
cparata 0:6a670fda63c2 768 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_CFG_ACCESS, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 769 return MEMS_ERROR;
cparata 0:6a670fda63c2 770
cparata 0:6a670fda63c2 771 *value &= LSM6DSL_ACC_GYRO_EMB_ACC_MASK; //mask
cparata 0:6a670fda63c2 772
cparata 0:6a670fda63c2 773 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 774 }
cparata 0:6a670fda63c2 775
cparata 0:6a670fda63c2 776 /*******************************************************************************
cparata 0:6a670fda63c2 777 * Function Name : LSM6DSL_ACC_GYRO_W_SYNC_RES_RATIO
cparata 0:6a670fda63c2 778 * Description : Write RR
cparata 0:6a670fda63c2 779 * Input : LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t
cparata 0:6a670fda63c2 780 * Output : None
cparata 0:6a670fda63c2 781 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 782 *******************************************************************************/
cparata 0:6a670fda63c2 783 status_t LSM6DSL_ACC_GYRO_W_SYNC_RES_RATIO(void *handle, LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t newValue)
cparata 0:6a670fda63c2 784 {
cparata 0:6a670fda63c2 785 u8_t value;
cparata 0:6a670fda63c2 786
cparata 0:6a670fda63c2 787 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO, &value, 1) )
cparata 0:6a670fda63c2 788 return MEMS_ERROR;
cparata 0:6a670fda63c2 789
cparata 0:6a670fda63c2 790 value &= ~LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_MASK;
cparata 0:6a670fda63c2 791 value |= newValue;
cparata 0:6a670fda63c2 792
cparata 0:6a670fda63c2 793 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO, &value, 1) )
cparata 0:6a670fda63c2 794 return MEMS_ERROR;
cparata 0:6a670fda63c2 795
cparata 0:6a670fda63c2 796 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 797 }
cparata 0:6a670fda63c2 798
cparata 0:6a670fda63c2 799 /*******************************************************************************
cparata 0:6a670fda63c2 800 * Function Name : LSM6DSL_ACC_GYRO_R_SYNC_RES_RATIO
cparata 0:6a670fda63c2 801 * Description : Read RR
cparata 0:6a670fda63c2 802 * Input : Pointer to LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t
cparata 0:6a670fda63c2 803 * Output : Status of RR see LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t
cparata 0:6a670fda63c2 804 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 805 *******************************************************************************/
cparata 0:6a670fda63c2 806 status_t LSM6DSL_ACC_GYRO_R_SYNC_RES_RATIO(void *handle, LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_t *value)
cparata 0:6a670fda63c2 807 {
cparata 0:6a670fda63c2 808 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_RES_RATIO, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 809 return MEMS_ERROR;
cparata 0:6a670fda63c2 810
cparata 0:6a670fda63c2 811 *value &= LSM6DSL_ACC_GYRO_SYNC_RES_RATIO_MASK; //mask
cparata 0:6a670fda63c2 812
cparata 0:6a670fda63c2 813 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 814 }
cparata 0:6a670fda63c2 815
cparata 0:6a670fda63c2 816 /*******************************************************************************
cparata 0:6a670fda63c2 817 * Function Name : LSM6DSL_ACC_GYRO_W_Stamping_Time_Frame
cparata 0:6a670fda63c2 818 * Description : Write TPH
cparata 0:6a670fda63c2 819 * Input : u8_t
cparata 0:6a670fda63c2 820 * Output : None
cparata 0:6a670fda63c2 821 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 822 *******************************************************************************/
cparata 0:6a670fda63c2 823 status_t LSM6DSL_ACC_GYRO_W_Stamping_Time_Frame(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 824 {
cparata 0:6a670fda63c2 825 u8_t value;
cparata 0:6a670fda63c2 826
cparata 0:6a670fda63c2 827 newValue = newValue << LSM6DSL_ACC_GYRO_TPH_POSITION; //mask
cparata 0:6a670fda63c2 828 newValue &= LSM6DSL_ACC_GYRO_TPH_MASK; //coerce
cparata 0:6a670fda63c2 829
cparata 0:6a670fda63c2 830 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME, &value, 1) )
cparata 0:6a670fda63c2 831 return MEMS_ERROR;
cparata 0:6a670fda63c2 832
cparata 0:6a670fda63c2 833 value &= (u8_t)~LSM6DSL_ACC_GYRO_TPH_MASK;
cparata 0:6a670fda63c2 834 value |= newValue;
cparata 0:6a670fda63c2 835
cparata 0:6a670fda63c2 836 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME, &value, 1) )
cparata 0:6a670fda63c2 837 return MEMS_ERROR;
cparata 0:6a670fda63c2 838
cparata 0:6a670fda63c2 839 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 840 }
cparata 0:6a670fda63c2 841
cparata 0:6a670fda63c2 842 /*******************************************************************************
cparata 0:6a670fda63c2 843 * Function Name : LSM6DSL_ACC_GYRO_R_Stamping_Time_Frame
cparata 0:6a670fda63c2 844 * Description : Read TPH
cparata 0:6a670fda63c2 845 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 846 * Output : Status of TPH
cparata 0:6a670fda63c2 847 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 848 *******************************************************************************/
cparata 0:6a670fda63c2 849 status_t LSM6DSL_ACC_GYRO_R_Stamping_Time_Frame(void *handle, u8_t *value)
cparata 0:6a670fda63c2 850 {
cparata 0:6a670fda63c2 851 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSOR_SYNC_TIME, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 852 return MEMS_ERROR;
cparata 0:6a670fda63c2 853
cparata 0:6a670fda63c2 854 *value &= LSM6DSL_ACC_GYRO_TPH_MASK; //coerce
cparata 0:6a670fda63c2 855 *value = *value >> LSM6DSL_ACC_GYRO_TPH_POSITION; //mask
cparata 0:6a670fda63c2 856
cparata 0:6a670fda63c2 857 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 858 }
cparata 0:6a670fda63c2 859
cparata 0:6a670fda63c2 860 /*******************************************************************************
cparata 0:6a670fda63c2 861 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_Watermark
cparata 0:6a670fda63c2 862 * Description : Write WTM_FIFO
cparata 0:6a670fda63c2 863 * Input : u16_t
cparata 0:6a670fda63c2 864 * Output : None
cparata 0:6a670fda63c2 865 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 866 *******************************************************************************/
cparata 0:6a670fda63c2 867 status_t LSM6DSL_ACC_GYRO_W_FIFO_Watermark(void *handle, u16_t newValue)
cparata 0:6a670fda63c2 868 {
cparata 0:6a670fda63c2 869 u8_t valueH, valueL;
cparata 0:6a670fda63c2 870 u8_t value;
cparata 0:6a670fda63c2 871
cparata 0:6a670fda63c2 872 valueL = newValue & 0xFF;
cparata 0:6a670fda63c2 873 valueH = (newValue >> 8) & 0xFF;
cparata 0:6a670fda63c2 874
cparata 0:6a670fda63c2 875 /* Low part goes in FIFO_CTRL1 */
cparata 0:6a670fda63c2 876 valueL = valueL << LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_POSITION; //mask
cparata 0:6a670fda63c2 877 valueL &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_MASK; //coerce
cparata 0:6a670fda63c2 878
cparata 0:6a670fda63c2 879 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL1, &value, 1) )
cparata 0:6a670fda63c2 880 return MEMS_ERROR;
cparata 0:6a670fda63c2 881
cparata 0:6a670fda63c2 882 value &= (u8_t)~LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_MASK;
cparata 0:6a670fda63c2 883 value |= valueL;
cparata 0:6a670fda63c2 884
cparata 0:6a670fda63c2 885 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL1, &value, 1) )
cparata 0:6a670fda63c2 886 return MEMS_ERROR;
cparata 0:6a670fda63c2 887
cparata 0:6a670fda63c2 888 /* High part goes in FIFO_CTRL2 */
cparata 0:6a670fda63c2 889 valueH = valueH << LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_POSITION; //mask
cparata 0:6a670fda63c2 890 valueH &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_MASK; //coerce
cparata 0:6a670fda63c2 891
cparata 0:6a670fda63c2 892 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 893 return MEMS_ERROR;
cparata 0:6a670fda63c2 894
cparata 0:6a670fda63c2 895 value &= ~LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_MASK;
cparata 0:6a670fda63c2 896 value |= valueH;
cparata 0:6a670fda63c2 897
cparata 0:6a670fda63c2 898 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 899 return MEMS_ERROR;
cparata 0:6a670fda63c2 900
cparata 0:6a670fda63c2 901 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 902 }
cparata 0:6a670fda63c2 903
cparata 0:6a670fda63c2 904 /*******************************************************************************
cparata 0:6a670fda63c2 905 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_Watermark
cparata 0:6a670fda63c2 906 * Description : Read WTM_FIFO
cparata 0:6a670fda63c2 907 * Input : Pointer to u16_t
cparata 0:6a670fda63c2 908 * Output : Status of WTM_FIFO
cparata 0:6a670fda63c2 909 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 910 *******************************************************************************/
cparata 0:6a670fda63c2 911 status_t LSM6DSL_ACC_GYRO_R_FIFO_Watermark(void *handle, u16_t *value)
cparata 0:6a670fda63c2 912 {
cparata 0:6a670fda63c2 913 u8_t valueH, valueL;
cparata 0:6a670fda63c2 914
cparata 0:6a670fda63c2 915 /* Low part from FIFO_CTRL1 */
cparata 0:6a670fda63c2 916 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL1, (u8_t *)&valueL, 1) )
cparata 0:6a670fda63c2 917 return MEMS_ERROR;
cparata 0:6a670fda63c2 918
cparata 0:6a670fda63c2 919 valueL &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_MASK; //coerce
cparata 0:6a670fda63c2 920 valueL = valueL >> LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL1_POSITION; //mask
cparata 0:6a670fda63c2 921
cparata 0:6a670fda63c2 922 /* High part from FIFO_CTRL2 */
cparata 0:6a670fda63c2 923 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)&valueH, 1) )
cparata 0:6a670fda63c2 924 return MEMS_ERROR;
cparata 0:6a670fda63c2 925
cparata 0:6a670fda63c2 926 valueH &= LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_MASK; //coerce
cparata 0:6a670fda63c2 927 valueH = valueH >> LSM6DSL_ACC_GYRO_WTM_FIFO_CTRL2_POSITION; //mask
cparata 0:6a670fda63c2 928
cparata 0:6a670fda63c2 929 *value = ((valueH << 8) & 0xFF00) | valueL;
cparata 0:6a670fda63c2 930
cparata 0:6a670fda63c2 931 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 932 }
cparata 0:6a670fda63c2 933
cparata 0:6a670fda63c2 934 /*******************************************************************************
cparata 0:6a670fda63c2 935 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_TEMP
cparata 0:6a670fda63c2 936 * Description : Write FIFO_TEMP_EN
cparata 0:6a670fda63c2 937 * Input : LSM6DSL_ACC_GYRO_FIFO_TEMP_t
cparata 0:6a670fda63c2 938 * Output : None
cparata 0:6a670fda63c2 939 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 940 *******************************************************************************/
cparata 0:6a670fda63c2 941 status_t LSM6DSL_ACC_GYRO_W_FIFO_TEMP(void *handle, LSM6DSL_ACC_GYRO_FIFO_TEMP_t newValue)
cparata 0:6a670fda63c2 942 {
cparata 0:6a670fda63c2 943 u8_t value;
cparata 0:6a670fda63c2 944
cparata 0:6a670fda63c2 945 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 946 return MEMS_ERROR;
cparata 0:6a670fda63c2 947
cparata 0:6a670fda63c2 948 value &= ~LSM6DSL_ACC_GYRO_FIFO_TEMP_MASK;
cparata 0:6a670fda63c2 949 value |= newValue;
cparata 0:6a670fda63c2 950
cparata 0:6a670fda63c2 951 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 952 return MEMS_ERROR;
cparata 0:6a670fda63c2 953
cparata 0:6a670fda63c2 954 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 955 }
cparata 0:6a670fda63c2 956
cparata 0:6a670fda63c2 957 /*******************************************************************************
cparata 0:6a670fda63c2 958 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_TEMP
cparata 0:6a670fda63c2 959 * Description : Read FIFO_TEMP_EN
cparata 0:6a670fda63c2 960 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_TEMP_t
cparata 0:6a670fda63c2 961 * Output : Status of FIFO_TEMP_EN see LSM6DSL_ACC_GYRO_FIFO_TEMP_t
cparata 0:6a670fda63c2 962 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 963 *******************************************************************************/
cparata 0:6a670fda63c2 964 status_t LSM6DSL_ACC_GYRO_R_FIFO_TEMP(void *handle, LSM6DSL_ACC_GYRO_FIFO_TEMP_t *value)
cparata 0:6a670fda63c2 965 {
cparata 0:6a670fda63c2 966 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 967 return MEMS_ERROR;
cparata 0:6a670fda63c2 968
cparata 0:6a670fda63c2 969 *value &= LSM6DSL_ACC_GYRO_FIFO_TEMP_MASK; //mask
cparata 0:6a670fda63c2 970
cparata 0:6a670fda63c2 971 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 972 }
cparata 0:6a670fda63c2 973
cparata 0:6a670fda63c2 974 /*******************************************************************************
cparata 0:6a670fda63c2 975 * Function Name : LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_Write_En
cparata 0:6a670fda63c2 976 * Description : Write TIM_PEDO_FIFO_DRDY
cparata 0:6a670fda63c2 977 * Input : LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t
cparata 0:6a670fda63c2 978 * Output : None
cparata 0:6a670fda63c2 979 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 980 *******************************************************************************/
cparata 0:6a670fda63c2 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:6a670fda63c2 982 {
cparata 0:6a670fda63c2 983 u8_t value;
cparata 0:6a670fda63c2 984
cparata 0:6a670fda63c2 985 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 986 return MEMS_ERROR;
cparata 0:6a670fda63c2 987
cparata 0:6a670fda63c2 988 value &= ~LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_MASK;
cparata 0:6a670fda63c2 989 value |= newValue;
cparata 0:6a670fda63c2 990
cparata 0:6a670fda63c2 991 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 992 return MEMS_ERROR;
cparata 0:6a670fda63c2 993
cparata 0:6a670fda63c2 994 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 995 }
cparata 0:6a670fda63c2 996
cparata 0:6a670fda63c2 997 /*******************************************************************************
cparata 0:6a670fda63c2 998 * Function Name : LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_Write_En
cparata 0:6a670fda63c2 999 * Description : Read TIM_PEDO_FIFO_DRDY
cparata 0:6a670fda63c2 1000 * Input : Pointer to LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t
cparata 0:6a670fda63c2 1001 * Output : Status of TIM_PEDO_FIFO_DRDY see LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_t
cparata 0:6a670fda63c2 1002 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1003 *******************************************************************************/
cparata 0:6a670fda63c2 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:6a670fda63c2 1005 {
cparata 0:6a670fda63c2 1006 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 1007 return MEMS_ERROR;
cparata 0:6a670fda63c2 1008
cparata 0:6a670fda63c2 1009 *value &= LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_DRDY_MASK; //mask
cparata 0:6a670fda63c2 1010
cparata 0:6a670fda63c2 1011 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1012 }
cparata 0:6a670fda63c2 1013
cparata 0:6a670fda63c2 1014 /*******************************************************************************
cparata 0:6a670fda63c2 1015 * Function Name : LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_En
cparata 0:6a670fda63c2 1016 * Description : Write TIM_PEDO_FIFO_EN
cparata 0:6a670fda63c2 1017 * Input : LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t
cparata 0:6a670fda63c2 1018 * Output : None
cparata 0:6a670fda63c2 1019 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1020 *******************************************************************************/
cparata 0:6a670fda63c2 1021 status_t LSM6DSL_ACC_GYRO_W_TIM_PEDO_FIFO_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t newValue)
cparata 0:6a670fda63c2 1022 {
cparata 0:6a670fda63c2 1023 u8_t value;
cparata 0:6a670fda63c2 1024
cparata 0:6a670fda63c2 1025 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 1026 return MEMS_ERROR;
cparata 0:6a670fda63c2 1027
cparata 0:6a670fda63c2 1028 value &= ~LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_MASK;
cparata 0:6a670fda63c2 1029 value |= newValue;
cparata 0:6a670fda63c2 1030
cparata 0:6a670fda63c2 1031 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, &value, 1) )
cparata 0:6a670fda63c2 1032 return MEMS_ERROR;
cparata 0:6a670fda63c2 1033
cparata 0:6a670fda63c2 1034 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1035 }
cparata 0:6a670fda63c2 1036
cparata 0:6a670fda63c2 1037 /*******************************************************************************
cparata 0:6a670fda63c2 1038 * Function Name : LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_En
cparata 0:6a670fda63c2 1039 * Description : Read TIM_PEDO_FIFO_EN
cparata 0:6a670fda63c2 1040 * Input : Pointer to LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t
cparata 0:6a670fda63c2 1041 * Output : Status of TIM_PEDO_FIFO_EN see LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t
cparata 0:6a670fda63c2 1042 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1043 *******************************************************************************/
cparata 0:6a670fda63c2 1044 status_t LSM6DSL_ACC_GYRO_R_TIM_PEDO_FIFO_En(void *handle, LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_t *value)
cparata 0:6a670fda63c2 1045 {
cparata 0:6a670fda63c2 1046 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 1047 return MEMS_ERROR;
cparata 0:6a670fda63c2 1048
cparata 0:6a670fda63c2 1049 *value &= LSM6DSL_ACC_GYRO_TIM_PEDO_FIFO_EN_MASK; //mask
cparata 0:6a670fda63c2 1050
cparata 0:6a670fda63c2 1051 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1052 }
cparata 0:6a670fda63c2 1053 /*******************************************************************************
cparata 0:6a670fda63c2 1054 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL
cparata 0:6a670fda63c2 1055 * Description : Write DEC_FIFO_XL
cparata 0:6a670fda63c2 1056 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t
cparata 0:6a670fda63c2 1057 * Output : None
cparata 0:6a670fda63c2 1058 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1059 *******************************************************************************/
cparata 0:6a670fda63c2 1060 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t newValue)
cparata 0:6a670fda63c2 1061 {
cparata 0:6a670fda63c2 1062 u8_t value;
cparata 0:6a670fda63c2 1063
cparata 0:6a670fda63c2 1064 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1) )
cparata 0:6a670fda63c2 1065 return MEMS_ERROR;
cparata 0:6a670fda63c2 1066
cparata 0:6a670fda63c2 1067 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_XL_MASK;
cparata 0:6a670fda63c2 1068 value |= newValue;
cparata 0:6a670fda63c2 1069
cparata 0:6a670fda63c2 1070 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1) )
cparata 0:6a670fda63c2 1071 return MEMS_ERROR;
cparata 0:6a670fda63c2 1072
cparata 0:6a670fda63c2 1073 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1074 }
cparata 0:6a670fda63c2 1075
cparata 0:6a670fda63c2 1076 /*******************************************************************************
cparata 0:6a670fda63c2 1077 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL_val
cparata 0:6a670fda63c2 1078 * Description : Write DEC_FIFO_XL
cparata 0:6a670fda63c2 1079 * Input : u16_t
cparata 0:6a670fda63c2 1080 * Output : Program XL decimation value from unsigned short
cparata 0:6a670fda63c2 1081 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1082 *******************************************************************************/
cparata 0:6a670fda63c2 1083 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL_val(void *handle, u16_t newValue)
cparata 0:6a670fda63c2 1084 {
cparata 0:6a670fda63c2 1085 switch(newValue) {
cparata 0:6a670fda63c2 1086 case 0:
cparata 0:6a670fda63c2 1087 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DATA_NOT_IN_FIFO);
cparata 0:6a670fda63c2 1088 break;
cparata 0:6a670fda63c2 1089
cparata 0:6a670fda63c2 1090 case 1:
cparata 0:6a670fda63c2 1091 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_NO_DECIMATION);
cparata 0:6a670fda63c2 1092 break;
cparata 0:6a670fda63c2 1093
cparata 0:6a670fda63c2 1094 case 2:
cparata 0:6a670fda63c2 1095 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_2);
cparata 0:6a670fda63c2 1096 break;
cparata 0:6a670fda63c2 1097
cparata 0:6a670fda63c2 1098 case 3:
cparata 0:6a670fda63c2 1099 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_3);
cparata 0:6a670fda63c2 1100 break;
cparata 0:6a670fda63c2 1101
cparata 0:6a670fda63c2 1102 case 4:
cparata 0:6a670fda63c2 1103 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_4);
cparata 0:6a670fda63c2 1104 break;
cparata 0:6a670fda63c2 1105
cparata 0:6a670fda63c2 1106 case 8:
cparata 0:6a670fda63c2 1107 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_8);
cparata 0:6a670fda63c2 1108 break;
cparata 0:6a670fda63c2 1109
cparata 0:6a670fda63c2 1110 case 16:
cparata 0:6a670fda63c2 1111 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_16);
cparata 0:6a670fda63c2 1112 break;
cparata 0:6a670fda63c2 1113
cparata 0:6a670fda63c2 1114 case 32:
cparata 0:6a670fda63c2 1115 LSM6DSL_ACC_GYRO_W_DEC_FIFO_XL(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_DECIMATION_BY_32);
cparata 0:6a670fda63c2 1116 break;
cparata 0:6a670fda63c2 1117
cparata 0:6a670fda63c2 1118 default:
cparata 0:6a670fda63c2 1119 return MEMS_ERROR;
cparata 0:6a670fda63c2 1120 }
cparata 0:6a670fda63c2 1121
cparata 0:6a670fda63c2 1122 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1123 }
cparata 0:6a670fda63c2 1124
cparata 0:6a670fda63c2 1125 /*******************************************************************************
cparata 0:6a670fda63c2 1126 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_XL
cparata 0:6a670fda63c2 1127 * Description : Read DEC_FIFO_XL
cparata 0:6a670fda63c2 1128 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t
cparata 0:6a670fda63c2 1129 * Output : Status of DEC_FIFO_XL see LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t
cparata 0:6a670fda63c2 1130 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1131 *******************************************************************************/
cparata 0:6a670fda63c2 1132 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_XL(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_XL_t *value)
cparata 0:6a670fda63c2 1133 {
cparata 0:6a670fda63c2 1134 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 1135 return MEMS_ERROR;
cparata 0:6a670fda63c2 1136
cparata 0:6a670fda63c2 1137 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_XL_MASK; //mask
cparata 0:6a670fda63c2 1138
cparata 0:6a670fda63c2 1139 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1140 }
cparata 0:6a670fda63c2 1141
cparata 0:6a670fda63c2 1142 /*******************************************************************************
cparata 0:6a670fda63c2 1143 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_G
cparata 0:6a670fda63c2 1144 * Description : Write DEC_FIFO_G
cparata 0:6a670fda63c2 1145 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_G_t
cparata 0:6a670fda63c2 1146 * Output : None
cparata 0:6a670fda63c2 1147 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1148 *******************************************************************************/
cparata 0:6a670fda63c2 1149 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_t newValue)
cparata 0:6a670fda63c2 1150 {
cparata 0:6a670fda63c2 1151 u8_t value;
cparata 0:6a670fda63c2 1152
cparata 0:6a670fda63c2 1153 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1))
cparata 0:6a670fda63c2 1154 return MEMS_ERROR;
cparata 0:6a670fda63c2 1155
cparata 0:6a670fda63c2 1156 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_G_MASK;
cparata 0:6a670fda63c2 1157 value |= newValue;
cparata 0:6a670fda63c2 1158
cparata 0:6a670fda63c2 1159 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, &value, 1) )
cparata 0:6a670fda63c2 1160 return MEMS_ERROR;
cparata 0:6a670fda63c2 1161
cparata 0:6a670fda63c2 1162 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1163 }
cparata 0:6a670fda63c2 1164
cparata 0:6a670fda63c2 1165 /*******************************************************************************
cparata 0:6a670fda63c2 1166 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_G_val
cparata 0:6a670fda63c2 1167 * Description : Write DEC_FIFO_G
cparata 0:6a670fda63c2 1168 * Input : u16_t
cparata 0:6a670fda63c2 1169 * Output : Program G decimation value from unsigned short
cparata 0:6a670fda63c2 1170 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1171 *******************************************************************************/
cparata 0:6a670fda63c2 1172 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_G_val(void *handle, u16_t newValue)
cparata 0:6a670fda63c2 1173 {
cparata 0:6a670fda63c2 1174 switch(newValue) {
cparata 0:6a670fda63c2 1175 case 0:
cparata 0:6a670fda63c2 1176 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DATA_NOT_IN_FIFO);
cparata 0:6a670fda63c2 1177 break;
cparata 0:6a670fda63c2 1178
cparata 0:6a670fda63c2 1179 case 1:
cparata 0:6a670fda63c2 1180 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_NO_DECIMATION);
cparata 0:6a670fda63c2 1181 break;
cparata 0:6a670fda63c2 1182
cparata 0:6a670fda63c2 1183 case 2:
cparata 0:6a670fda63c2 1184 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_2);
cparata 0:6a670fda63c2 1185 break;
cparata 0:6a670fda63c2 1186
cparata 0:6a670fda63c2 1187 case 3:
cparata 0:6a670fda63c2 1188 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_3);
cparata 0:6a670fda63c2 1189 break;
cparata 0:6a670fda63c2 1190
cparata 0:6a670fda63c2 1191 case 4:
cparata 0:6a670fda63c2 1192 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_4);
cparata 0:6a670fda63c2 1193 break;
cparata 0:6a670fda63c2 1194
cparata 0:6a670fda63c2 1195 case 8:
cparata 0:6a670fda63c2 1196 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_8);
cparata 0:6a670fda63c2 1197 break;
cparata 0:6a670fda63c2 1198
cparata 0:6a670fda63c2 1199 case 16:
cparata 0:6a670fda63c2 1200 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_16);
cparata 0:6a670fda63c2 1201 break;
cparata 0:6a670fda63c2 1202
cparata 0:6a670fda63c2 1203 case 32:
cparata 0:6a670fda63c2 1204 LSM6DSL_ACC_GYRO_W_DEC_FIFO_G(handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_DECIMATION_BY_32);
cparata 0:6a670fda63c2 1205 break;
cparata 0:6a670fda63c2 1206
cparata 0:6a670fda63c2 1207 default:
cparata 0:6a670fda63c2 1208 return MEMS_ERROR;
cparata 0:6a670fda63c2 1209 }
cparata 0:6a670fda63c2 1210
cparata 0:6a670fda63c2 1211 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1212 }
cparata 0:6a670fda63c2 1213
cparata 0:6a670fda63c2 1214 /*******************************************************************************
cparata 0:6a670fda63c2 1215 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_G
cparata 0:6a670fda63c2 1216 * Description : Read DEC_FIFO_G
cparata 0:6a670fda63c2 1217 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_G_t
cparata 0:6a670fda63c2 1218 * Output : Status of DEC_FIFO_G see LSM6DSL_ACC_GYRO_DEC_FIFO_G_t
cparata 0:6a670fda63c2 1219 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1220 *******************************************************************************/
cparata 0:6a670fda63c2 1221 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_G(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_G_t *value)
cparata 0:6a670fda63c2 1222 {
cparata 0:6a670fda63c2 1223 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL3, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1224 return MEMS_ERROR;
cparata 0:6a670fda63c2 1225
cparata 0:6a670fda63c2 1226 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_G_MASK; //mask
cparata 0:6a670fda63c2 1227
cparata 0:6a670fda63c2 1228 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1229 }
cparata 0:6a670fda63c2 1230
cparata 0:6a670fda63c2 1231 /*******************************************************************************
cparata 0:6a670fda63c2 1232 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS3
cparata 0:6a670fda63c2 1233 * Description : Write DEC_DS3_FIFO
cparata 0:6a670fda63c2 1234 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t
cparata 0:6a670fda63c2 1235 * Output : None
cparata 0:6a670fda63c2 1236 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1237 *******************************************************************************/
cparata 0:6a670fda63c2 1238 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS3(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t newValue)
cparata 0:6a670fda63c2 1239 {
cparata 0:6a670fda63c2 1240 u8_t value;
cparata 0:6a670fda63c2 1241
cparata 0:6a670fda63c2 1242 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:6a670fda63c2 1243 return MEMS_ERROR;
cparata 0:6a670fda63c2 1244
cparata 0:6a670fda63c2 1245 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_MASK;
cparata 0:6a670fda63c2 1246 value |= newValue;
cparata 0:6a670fda63c2 1247
cparata 0:6a670fda63c2 1248 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:6a670fda63c2 1249 return MEMS_ERROR;
cparata 0:6a670fda63c2 1250
cparata 0:6a670fda63c2 1251 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1252 }
cparata 0:6a670fda63c2 1253
cparata 0:6a670fda63c2 1254 /*******************************************************************************
cparata 0:6a670fda63c2 1255 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS3
cparata 0:6a670fda63c2 1256 * Description : Read DEC_DS3_FIFO
cparata 0:6a670fda63c2 1257 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t
cparata 0:6a670fda63c2 1258 * Output : Status of DEC_DS3_FIFO see LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t
cparata 0:6a670fda63c2 1259 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1260 *******************************************************************************/
cparata 0:6a670fda63c2 1261 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS3(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_t *value)
cparata 0:6a670fda63c2 1262 {
cparata 0:6a670fda63c2 1263 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1264 return MEMS_ERROR;
cparata 0:6a670fda63c2 1265
cparata 0:6a670fda63c2 1266 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_DS3_MASK; //mask
cparata 0:6a670fda63c2 1267
cparata 0:6a670fda63c2 1268 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1269 }
cparata 0:6a670fda63c2 1270
cparata 0:6a670fda63c2 1271 /*******************************************************************************
cparata 0:6a670fda63c2 1272 * Function Name : LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS4
cparata 0:6a670fda63c2 1273 * Description : Write DEC_DS4_FIFO
cparata 0:6a670fda63c2 1274 * Input : LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t
cparata 0:6a670fda63c2 1275 * Output : None
cparata 0:6a670fda63c2 1276 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1277 *******************************************************************************/
cparata 0:6a670fda63c2 1278 status_t LSM6DSL_ACC_GYRO_W_DEC_FIFO_DS4(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t newValue)
cparata 0:6a670fda63c2 1279 {
cparata 0:6a670fda63c2 1280 u8_t value;
cparata 0:6a670fda63c2 1281
cparata 0:6a670fda63c2 1282 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:6a670fda63c2 1283 return MEMS_ERROR;
cparata 0:6a670fda63c2 1284
cparata 0:6a670fda63c2 1285 value &= ~LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_MASK;
cparata 0:6a670fda63c2 1286 value |= newValue;
cparata 0:6a670fda63c2 1287
cparata 0:6a670fda63c2 1288 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:6a670fda63c2 1289 return MEMS_ERROR;
cparata 0:6a670fda63c2 1290
cparata 0:6a670fda63c2 1291 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1292 }
cparata 0:6a670fda63c2 1293
cparata 0:6a670fda63c2 1294 /*******************************************************************************
cparata 0:6a670fda63c2 1295 * Function Name : LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS4
cparata 0:6a670fda63c2 1296 * Description : Read DEC_DS4_FIFO
cparata 0:6a670fda63c2 1297 * Input : Pointer to LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t
cparata 0:6a670fda63c2 1298 * Output : Status of DEC_DS4_FIFO see LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t
cparata 0:6a670fda63c2 1299 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1300 *******************************************************************************/
cparata 0:6a670fda63c2 1301 status_t LSM6DSL_ACC_GYRO_R_DEC_FIFO_DS4(void *handle, LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_t *value)
cparata 0:6a670fda63c2 1302 {
cparata 0:6a670fda63c2 1303 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1304 return MEMS_ERROR;
cparata 0:6a670fda63c2 1305
cparata 0:6a670fda63c2 1306 *value &= LSM6DSL_ACC_GYRO_DEC_FIFO_DS4_MASK; //mask
cparata 0:6a670fda63c2 1307
cparata 0:6a670fda63c2 1308 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1309 }
cparata 0:6a670fda63c2 1310
cparata 0:6a670fda63c2 1311 /*******************************************************************************
cparata 0:6a670fda63c2 1312 * Function Name : LSM6DSL_ACC_GYRO_W_HI_DATA_ONLY
cparata 0:6a670fda63c2 1313 * Description : Write HI_DATA_ONLY
cparata 0:6a670fda63c2 1314 * Input : LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t
cparata 0:6a670fda63c2 1315 * Output : None
cparata 0:6a670fda63c2 1316 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1317 *******************************************************************************/
cparata 0:6a670fda63c2 1318 status_t LSM6DSL_ACC_GYRO_W_HI_DATA_ONLY(void *handle, LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t newValue)
cparata 0:6a670fda63c2 1319 {
cparata 0:6a670fda63c2 1320 u8_t value;
cparata 0:6a670fda63c2 1321
cparata 0:6a670fda63c2 1322 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:6a670fda63c2 1323 return MEMS_ERROR;
cparata 0:6a670fda63c2 1324
cparata 0:6a670fda63c2 1325 value &= ~LSM6DSL_ACC_GYRO_HI_DATA_ONLY_MASK;
cparata 0:6a670fda63c2 1326 value |= newValue;
cparata 0:6a670fda63c2 1327
cparata 0:6a670fda63c2 1328 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:6a670fda63c2 1329 return MEMS_ERROR;
cparata 0:6a670fda63c2 1330
cparata 0:6a670fda63c2 1331 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1332 }
cparata 0:6a670fda63c2 1333
cparata 0:6a670fda63c2 1334 /*******************************************************************************
cparata 0:6a670fda63c2 1335 * Function Name : LSM6DSL_ACC_GYRO_R_HI_DATA_ONLY
cparata 0:6a670fda63c2 1336 * Description : Read HI_DATA_ONLY
cparata 0:6a670fda63c2 1337 * Input : Pointer to LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t
cparata 0:6a670fda63c2 1338 * Output : Status of HI_DATA_ONLY see LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t
cparata 0:6a670fda63c2 1339 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1340 *******************************************************************************/
cparata 0:6a670fda63c2 1341 status_t LSM6DSL_ACC_GYRO_R_HI_DATA_ONLY(void *handle, LSM6DSL_ACC_GYRO_HI_DATA_ONLY_t *value)
cparata 0:6a670fda63c2 1342 {
cparata 0:6a670fda63c2 1343 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1344 return MEMS_ERROR;
cparata 0:6a670fda63c2 1345
cparata 0:6a670fda63c2 1346 *value &= LSM6DSL_ACC_GYRO_HI_DATA_ONLY_MASK; //mask
cparata 0:6a670fda63c2 1347
cparata 0:6a670fda63c2 1348 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1349 }
cparata 0:6a670fda63c2 1350
cparata 0:6a670fda63c2 1351 /*******************************************************************************
cparata 0:6a670fda63c2 1352 * Function Name : LSM6DSL_ACC_GYRO_W_STOP_ON_FTH
cparata 0:6a670fda63c2 1353 * Description : Write STOP_ON_FTH
cparata 0:6a670fda63c2 1354 * Input : LSM6DSL_ACC_GYRO_STOP_ON_FTH_t
cparata 0:6a670fda63c2 1355 * Output : None
cparata 0:6a670fda63c2 1356 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1357 *******************************************************************************/
cparata 0:6a670fda63c2 1358 status_t LSM6DSL_ACC_GYRO_W_STOP_ON_FTH(void *handle, LSM6DSL_ACC_GYRO_STOP_ON_FTH_t newValue)
cparata 0:6a670fda63c2 1359 {
cparata 0:6a670fda63c2 1360 u8_t value;
cparata 0:6a670fda63c2 1361
cparata 0:6a670fda63c2 1362 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1))
cparata 0:6a670fda63c2 1363 return MEMS_ERROR;
cparata 0:6a670fda63c2 1364
cparata 0:6a670fda63c2 1365 value &= ~LSM6DSL_ACC_GYRO_STOP_ON_FTH_MASK;
cparata 0:6a670fda63c2 1366 value |= newValue;
cparata 0:6a670fda63c2 1367
cparata 0:6a670fda63c2 1368 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, &value, 1) )
cparata 0:6a670fda63c2 1369 return MEMS_ERROR;
cparata 0:6a670fda63c2 1370
cparata 0:6a670fda63c2 1371 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1372 }
cparata 0:6a670fda63c2 1373
cparata 0:6a670fda63c2 1374 /*******************************************************************************
cparata 0:6a670fda63c2 1375 * Function Name : LSM6DSL_ACC_GYRO_R_STOP_ON_FTH
cparata 0:6a670fda63c2 1376 * Description : Read STOP_ON_FTH
cparata 0:6a670fda63c2 1377 * Input : Pointer to LSM6DSL_ACC_GYRO_STOP_ON_FTH_t
cparata 0:6a670fda63c2 1378 * Output : Status of STOP_ON_FTH see LSM6DSL_ACC_GYRO_STOP_ON_FTH_t
cparata 0:6a670fda63c2 1379 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1380 *******************************************************************************/
cparata 0:6a670fda63c2 1381 status_t LSM6DSL_ACC_GYRO_R_STOP_ON_FTH(void *handle, LSM6DSL_ACC_GYRO_STOP_ON_FTH_t *value)
cparata 0:6a670fda63c2 1382 {
cparata 0:6a670fda63c2 1383 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL4, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1384 return MEMS_ERROR;
cparata 0:6a670fda63c2 1385
cparata 0:6a670fda63c2 1386 *value &= LSM6DSL_ACC_GYRO_STOP_ON_FTH_MASK; //mask
cparata 0:6a670fda63c2 1387
cparata 0:6a670fda63c2 1388 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1389 }
cparata 0:6a670fda63c2 1390
cparata 0:6a670fda63c2 1391 /*******************************************************************************
cparata 0:6a670fda63c2 1392 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_MODE
cparata 0:6a670fda63c2 1393 * Description : Write FIFO_MODE
cparata 0:6a670fda63c2 1394 * Input : LSM6DSL_ACC_GYRO_FIFO_MODE_t
cparata 0:6a670fda63c2 1395 * Output : None
cparata 0:6a670fda63c2 1396 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1397 *******************************************************************************/
cparata 0:6a670fda63c2 1398 status_t LSM6DSL_ACC_GYRO_W_FIFO_MODE(void *handle, LSM6DSL_ACC_GYRO_FIFO_MODE_t newValue)
cparata 0:6a670fda63c2 1399 {
cparata 0:6a670fda63c2 1400 u8_t value;
cparata 0:6a670fda63c2 1401
cparata 0:6a670fda63c2 1402 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1))
cparata 0:6a670fda63c2 1403 return MEMS_ERROR;
cparata 0:6a670fda63c2 1404
cparata 0:6a670fda63c2 1405 value &= ~LSM6DSL_ACC_GYRO_FIFO_MODE_MASK;
cparata 0:6a670fda63c2 1406 value |= newValue;
cparata 0:6a670fda63c2 1407
cparata 0:6a670fda63c2 1408 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1) )
cparata 0:6a670fda63c2 1409 return MEMS_ERROR;
cparata 0:6a670fda63c2 1410
cparata 0:6a670fda63c2 1411 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1412 }
cparata 0:6a670fda63c2 1413
cparata 0:6a670fda63c2 1414 /*******************************************************************************
cparata 0:6a670fda63c2 1415 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_MODE
cparata 0:6a670fda63c2 1416 * Description : Read FIFO_MODE
cparata 0:6a670fda63c2 1417 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_MODE_t
cparata 0:6a670fda63c2 1418 * Output : Status of FIFO_MODE see LSM6DSL_ACC_GYRO_FIFO_MODE_t
cparata 0:6a670fda63c2 1419 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1420 *******************************************************************************/
cparata 0:6a670fda63c2 1421 status_t LSM6DSL_ACC_GYRO_R_FIFO_MODE(void *handle, LSM6DSL_ACC_GYRO_FIFO_MODE_t *value)
cparata 0:6a670fda63c2 1422 {
cparata 0:6a670fda63c2 1423 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1424 return MEMS_ERROR;
cparata 0:6a670fda63c2 1425
cparata 0:6a670fda63c2 1426 *value &= LSM6DSL_ACC_GYRO_FIFO_MODE_MASK; //mask
cparata 0:6a670fda63c2 1427
cparata 0:6a670fda63c2 1428 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1429 }
cparata 0:6a670fda63c2 1430
cparata 0:6a670fda63c2 1431 /*******************************************************************************
cparata 0:6a670fda63c2 1432 * Function Name : LSM6DSL_ACC_GYRO_W_ODR_FIFO
cparata 0:6a670fda63c2 1433 * Description : Write ODR_FIFO
cparata 0:6a670fda63c2 1434 * Input : LSM6DSL_ACC_GYRO_ODR_FIFO_t
cparata 0:6a670fda63c2 1435 * Output : None
cparata 0:6a670fda63c2 1436 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1437 *******************************************************************************/
cparata 0:6a670fda63c2 1438 status_t LSM6DSL_ACC_GYRO_W_ODR_FIFO(void *handle, LSM6DSL_ACC_GYRO_ODR_FIFO_t newValue)
cparata 0:6a670fda63c2 1439 {
cparata 0:6a670fda63c2 1440 u8_t value;
cparata 0:6a670fda63c2 1441
cparata 0:6a670fda63c2 1442 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1))
cparata 0:6a670fda63c2 1443 return MEMS_ERROR;
cparata 0:6a670fda63c2 1444
cparata 0:6a670fda63c2 1445 value &= ~LSM6DSL_ACC_GYRO_ODR_FIFO_MASK;
cparata 0:6a670fda63c2 1446 value |= newValue;
cparata 0:6a670fda63c2 1447
cparata 0:6a670fda63c2 1448 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, &value, 1) )
cparata 0:6a670fda63c2 1449 return MEMS_ERROR;
cparata 0:6a670fda63c2 1450
cparata 0:6a670fda63c2 1451 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1452 }
cparata 0:6a670fda63c2 1453
cparata 0:6a670fda63c2 1454 /*******************************************************************************
cparata 0:6a670fda63c2 1455 * Function Name : LSM6DSL_ACC_GYRO_R_ODR_FIFO
cparata 0:6a670fda63c2 1456 * Description : Read ODR_FIFO
cparata 0:6a670fda63c2 1457 * Input : Pointer to LSM6DSL_ACC_GYRO_ODR_FIFO_t
cparata 0:6a670fda63c2 1458 * Output : Status of ODR_FIFO see LSM6DSL_ACC_GYRO_ODR_FIFO_t
cparata 0:6a670fda63c2 1459 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1460 *******************************************************************************/
cparata 0:6a670fda63c2 1461 status_t LSM6DSL_ACC_GYRO_R_ODR_FIFO(void *handle, LSM6DSL_ACC_GYRO_ODR_FIFO_t *value)
cparata 0:6a670fda63c2 1462 {
cparata 0:6a670fda63c2 1463 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_CTRL5, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1464 return MEMS_ERROR;
cparata 0:6a670fda63c2 1465
cparata 0:6a670fda63c2 1466 *value &= LSM6DSL_ACC_GYRO_ODR_FIFO_MASK; //mask
cparata 0:6a670fda63c2 1467
cparata 0:6a670fda63c2 1468 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1469 }
cparata 0:6a670fda63c2 1470
cparata 0:6a670fda63c2 1471 /*******************************************************************************
cparata 0:6a670fda63c2 1472 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_PULSE
cparata 0:6a670fda63c2 1473 * Description : Write DRDY_PULSE
cparata 0:6a670fda63c2 1474 * Input : LSM6DSL_ACC_GYRO_DRDY_PULSE_t
cparata 0:6a670fda63c2 1475 * Output : None
cparata 0:6a670fda63c2 1476 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1477 *******************************************************************************/
cparata 0:6a670fda63c2 1478 status_t LSM6DSL_ACC_GYRO_W_DRDY_PULSE(void *handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_t newValue)
cparata 0:6a670fda63c2 1479 {
cparata 0:6a670fda63c2 1480 u8_t value;
cparata 0:6a670fda63c2 1481
cparata 0:6a670fda63c2 1482 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G, &value, 1))
cparata 0:6a670fda63c2 1483 return MEMS_ERROR;
cparata 0:6a670fda63c2 1484
cparata 0:6a670fda63c2 1485 value &= ~LSM6DSL_ACC_GYRO_DRDY_PULSE_MASK;
cparata 0:6a670fda63c2 1486 value |= newValue;
cparata 0:6a670fda63c2 1487
cparata 0:6a670fda63c2 1488 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G, &value, 1) )
cparata 0:6a670fda63c2 1489 return MEMS_ERROR;
cparata 0:6a670fda63c2 1490
cparata 0:6a670fda63c2 1491 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1492 }
cparata 0:6a670fda63c2 1493
cparata 0:6a670fda63c2 1494 /*******************************************************************************
cparata 0:6a670fda63c2 1495 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_PULSE
cparata 0:6a670fda63c2 1496 * Description : Read DRDY_PULSE
cparata 0:6a670fda63c2 1497 * Input : Pointer to LSM6DSL_ACC_GYRO_DRDY_PULSE_t
cparata 0:6a670fda63c2 1498 * Output : Status of DRDY_PULSE see LSM6DSL_ACC_GYRO_DRDY_PULSE_t
cparata 0:6a670fda63c2 1499 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1500 *******************************************************************************/
cparata 0:6a670fda63c2 1501 status_t LSM6DSL_ACC_GYRO_R_DRDY_PULSE(void *handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_t *value)
cparata 0:6a670fda63c2 1502 {
cparata 0:6a670fda63c2 1503 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_DRDY_PULSE_CFG_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1504 return MEMS_ERROR;
cparata 0:6a670fda63c2 1505
cparata 0:6a670fda63c2 1506 *value &= LSM6DSL_ACC_GYRO_DRDY_PULSE_MASK; //mask
cparata 0:6a670fda63c2 1507
cparata 0:6a670fda63c2 1508 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1509 }
cparata 0:6a670fda63c2 1510
cparata 0:6a670fda63c2 1511 /*******************************************************************************
cparata 0:6a670fda63c2 1512 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT1
cparata 0:6a670fda63c2 1513 * Description : Write INT1_DRDY_XL
cparata 0:6a670fda63c2 1514 * Input : LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t
cparata 0:6a670fda63c2 1515 * Output : None
cparata 0:6a670fda63c2 1516 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1517 *******************************************************************************/
cparata 0:6a670fda63c2 1518 status_t LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t newValue)
cparata 0:6a670fda63c2 1519 {
cparata 0:6a670fda63c2 1520 u8_t value;
cparata 0:6a670fda63c2 1521
cparata 0:6a670fda63c2 1522 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1523 return MEMS_ERROR;
cparata 0:6a670fda63c2 1524
cparata 0:6a670fda63c2 1525 value &= ~LSM6DSL_ACC_GYRO_INT1_DRDY_XL_MASK;
cparata 0:6a670fda63c2 1526 value |= newValue;
cparata 0:6a670fda63c2 1527
cparata 0:6a670fda63c2 1528 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1529 return MEMS_ERROR;
cparata 0:6a670fda63c2 1530
cparata 0:6a670fda63c2 1531 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1532 }
cparata 0:6a670fda63c2 1533
cparata 0:6a670fda63c2 1534 /*******************************************************************************
cparata 0:6a670fda63c2 1535 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT1
cparata 0:6a670fda63c2 1536 * Description : Read INT1_DRDY_XL
cparata 0:6a670fda63c2 1537 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t
cparata 0:6a670fda63c2 1538 * Output : Status of INT1_DRDY_XL see LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t
cparata 0:6a670fda63c2 1539 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1540 *******************************************************************************/
cparata 0:6a670fda63c2 1541 status_t LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_XL_t *value)
cparata 0:6a670fda63c2 1542 {
cparata 0:6a670fda63c2 1543 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1544 return MEMS_ERROR;
cparata 0:6a670fda63c2 1545
cparata 0:6a670fda63c2 1546 *value &= LSM6DSL_ACC_GYRO_INT1_DRDY_XL_MASK; //mask
cparata 0:6a670fda63c2 1547
cparata 0:6a670fda63c2 1548 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1549 }
cparata 0:6a670fda63c2 1550
cparata 0:6a670fda63c2 1551 /*******************************************************************************
cparata 0:6a670fda63c2 1552 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT1
cparata 0:6a670fda63c2 1553 * Description : Write INT1_DRDY_G
cparata 0:6a670fda63c2 1554 * Input : LSM6DSL_ACC_GYRO_INT1_DRDY_G_t
cparata 0:6a670fda63c2 1555 * Output : None
cparata 0:6a670fda63c2 1556 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1557 *******************************************************************************/
cparata 0:6a670fda63c2 1558 status_t LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_G_t newValue)
cparata 0:6a670fda63c2 1559 {
cparata 0:6a670fda63c2 1560 u8_t value;
cparata 0:6a670fda63c2 1561
cparata 0:6a670fda63c2 1562 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1563 return MEMS_ERROR;
cparata 0:6a670fda63c2 1564
cparata 0:6a670fda63c2 1565 value &= ~LSM6DSL_ACC_GYRO_INT1_DRDY_G_MASK;
cparata 0:6a670fda63c2 1566 value |= newValue;
cparata 0:6a670fda63c2 1567
cparata 0:6a670fda63c2 1568 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1569 return MEMS_ERROR;
cparata 0:6a670fda63c2 1570
cparata 0:6a670fda63c2 1571 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1572 }
cparata 0:6a670fda63c2 1573
cparata 0:6a670fda63c2 1574 /*******************************************************************************
cparata 0:6a670fda63c2 1575 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT1
cparata 0:6a670fda63c2 1576 * Description : Read INT1_DRDY_G
cparata 0:6a670fda63c2 1577 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_DRDY_G_t
cparata 0:6a670fda63c2 1578 * Output : Status of INT1_DRDY_G see LSM6DSL_ACC_GYRO_INT1_DRDY_G_t
cparata 0:6a670fda63c2 1579 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1580 *******************************************************************************/
cparata 0:6a670fda63c2 1581 status_t LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_DRDY_G_t *value)
cparata 0:6a670fda63c2 1582 {
cparata 0:6a670fda63c2 1583 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1584 return MEMS_ERROR;
cparata 0:6a670fda63c2 1585
cparata 0:6a670fda63c2 1586 *value &= LSM6DSL_ACC_GYRO_INT1_DRDY_G_MASK; //mask
cparata 0:6a670fda63c2 1587
cparata 0:6a670fda63c2 1588 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1589 }
cparata 0:6a670fda63c2 1590
cparata 0:6a670fda63c2 1591 /*******************************************************************************
cparata 0:6a670fda63c2 1592 * Function Name : LSM6DSL_ACC_GYRO_W_BOOT_on_INT1
cparata 0:6a670fda63c2 1593 * Description : Write INT1_BOOT
cparata 0:6a670fda63c2 1594 * Input : LSM6DSL_ACC_GYRO_INT1_BOOT_t
cparata 0:6a670fda63c2 1595 * Output : None
cparata 0:6a670fda63c2 1596 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1597 *******************************************************************************/
cparata 0:6a670fda63c2 1598 status_t LSM6DSL_ACC_GYRO_W_BOOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_BOOT_t newValue)
cparata 0:6a670fda63c2 1599 {
cparata 0:6a670fda63c2 1600 u8_t value;
cparata 0:6a670fda63c2 1601
cparata 0:6a670fda63c2 1602 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1603 return MEMS_ERROR;
cparata 0:6a670fda63c2 1604
cparata 0:6a670fda63c2 1605 value &= ~LSM6DSL_ACC_GYRO_INT1_BOOT_MASK;
cparata 0:6a670fda63c2 1606 value |= newValue;
cparata 0:6a670fda63c2 1607
cparata 0:6a670fda63c2 1608 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1609 return MEMS_ERROR;
cparata 0:6a670fda63c2 1610
cparata 0:6a670fda63c2 1611 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1612 }
cparata 0:6a670fda63c2 1613
cparata 0:6a670fda63c2 1614 /*******************************************************************************
cparata 0:6a670fda63c2 1615 * Function Name : LSM6DSL_ACC_GYRO_R_BOOT_on_INT1
cparata 0:6a670fda63c2 1616 * Description : Read INT1_BOOT
cparata 0:6a670fda63c2 1617 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_BOOT_t
cparata 0:6a670fda63c2 1618 * Output : Status of INT1_BOOT see LSM6DSL_ACC_GYRO_INT1_BOOT_t
cparata 0:6a670fda63c2 1619 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1620 *******************************************************************************/
cparata 0:6a670fda63c2 1621 status_t LSM6DSL_ACC_GYRO_R_BOOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_BOOT_t *value)
cparata 0:6a670fda63c2 1622 {
cparata 0:6a670fda63c2 1623 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1624 return MEMS_ERROR;
cparata 0:6a670fda63c2 1625
cparata 0:6a670fda63c2 1626 *value &= LSM6DSL_ACC_GYRO_INT1_BOOT_MASK; //mask
cparata 0:6a670fda63c2 1627
cparata 0:6a670fda63c2 1628 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1629 }
cparata 0:6a670fda63c2 1630
cparata 0:6a670fda63c2 1631 /*******************************************************************************
cparata 0:6a670fda63c2 1632 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT1
cparata 0:6a670fda63c2 1633 * Description : Write INT1_FTH
cparata 0:6a670fda63c2 1634 * Input : LSM6DSL_ACC_GYRO_INT1_FTH_t
cparata 0:6a670fda63c2 1635 * Output : None
cparata 0:6a670fda63c2 1636 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1637 *******************************************************************************/
cparata 0:6a670fda63c2 1638 status_t LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FTH_t newValue)
cparata 0:6a670fda63c2 1639 {
cparata 0:6a670fda63c2 1640 u8_t value;
cparata 0:6a670fda63c2 1641
cparata 0:6a670fda63c2 1642 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1643 return MEMS_ERROR;
cparata 0:6a670fda63c2 1644
cparata 0:6a670fda63c2 1645 value &= ~LSM6DSL_ACC_GYRO_INT1_FTH_MASK;
cparata 0:6a670fda63c2 1646 value |= newValue;
cparata 0:6a670fda63c2 1647
cparata 0:6a670fda63c2 1648 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1649 return MEMS_ERROR;
cparata 0:6a670fda63c2 1650
cparata 0:6a670fda63c2 1651 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1652 }
cparata 0:6a670fda63c2 1653
cparata 0:6a670fda63c2 1654 /*******************************************************************************
cparata 0:6a670fda63c2 1655 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT1
cparata 0:6a670fda63c2 1656 * Description : Read INT1_FTH
cparata 0:6a670fda63c2 1657 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_FTH_t
cparata 0:6a670fda63c2 1658 * Output : Status of INT1_FTH see LSM6DSL_ACC_GYRO_INT1_FTH_t
cparata 0:6a670fda63c2 1659 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1660 *******************************************************************************/
cparata 0:6a670fda63c2 1661 status_t LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FTH_t *value)
cparata 0:6a670fda63c2 1662 {
cparata 0:6a670fda63c2 1663 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1664 return MEMS_ERROR;
cparata 0:6a670fda63c2 1665
cparata 0:6a670fda63c2 1666 *value &= LSM6DSL_ACC_GYRO_INT1_FTH_MASK; //mask
cparata 0:6a670fda63c2 1667
cparata 0:6a670fda63c2 1668 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1669 }
cparata 0:6a670fda63c2 1670
cparata 0:6a670fda63c2 1671 /*******************************************************************************
cparata 0:6a670fda63c2 1672 * Function Name : LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT1
cparata 0:6a670fda63c2 1673 * Description : Write INT1_OVR
cparata 0:6a670fda63c2 1674 * Input : LSM6DSL_ACC_GYRO_INT1_OVR_t
cparata 0:6a670fda63c2 1675 * Output : None
cparata 0:6a670fda63c2 1676 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1677 *******************************************************************************/
cparata 0:6a670fda63c2 1678 status_t LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_OVR_t newValue)
cparata 0:6a670fda63c2 1679 {
cparata 0:6a670fda63c2 1680 u8_t value;
cparata 0:6a670fda63c2 1681
cparata 0:6a670fda63c2 1682 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1683 return MEMS_ERROR;
cparata 0:6a670fda63c2 1684
cparata 0:6a670fda63c2 1685 value &= ~LSM6DSL_ACC_GYRO_INT1_OVR_MASK;
cparata 0:6a670fda63c2 1686 value |= newValue;
cparata 0:6a670fda63c2 1687
cparata 0:6a670fda63c2 1688 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1689 return MEMS_ERROR;
cparata 0:6a670fda63c2 1690
cparata 0:6a670fda63c2 1691 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1692 }
cparata 0:6a670fda63c2 1693
cparata 0:6a670fda63c2 1694 /*******************************************************************************
cparata 0:6a670fda63c2 1695 * Function Name : LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT1
cparata 0:6a670fda63c2 1696 * Description : Read INT1_OVR
cparata 0:6a670fda63c2 1697 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_OVR_t
cparata 0:6a670fda63c2 1698 * Output : Status of INT1_OVR see LSM6DSL_ACC_GYRO_INT1_OVR_t
cparata 0:6a670fda63c2 1699 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1700 *******************************************************************************/
cparata 0:6a670fda63c2 1701 status_t LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_OVR_t *value)
cparata 0:6a670fda63c2 1702 {
cparata 0:6a670fda63c2 1703 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1704 return MEMS_ERROR;
cparata 0:6a670fda63c2 1705
cparata 0:6a670fda63c2 1706 *value &= LSM6DSL_ACC_GYRO_INT1_OVR_MASK; //mask
cparata 0:6a670fda63c2 1707
cparata 0:6a670fda63c2 1708 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1709 }
cparata 0:6a670fda63c2 1710
cparata 0:6a670fda63c2 1711 /*******************************************************************************
cparata 0:6a670fda63c2 1712 * Function Name : LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT1
cparata 0:6a670fda63c2 1713 * Description : Write INT1_FULL_FLAG
cparata 0:6a670fda63c2 1714 * Input : LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t
cparata 0:6a670fda63c2 1715 * Output : None
cparata 0:6a670fda63c2 1716 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1717 *******************************************************************************/
cparata 0:6a670fda63c2 1718 status_t LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t newValue)
cparata 0:6a670fda63c2 1719 {
cparata 0:6a670fda63c2 1720 u8_t value;
cparata 0:6a670fda63c2 1721
cparata 0:6a670fda63c2 1722 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1723 return MEMS_ERROR;
cparata 0:6a670fda63c2 1724
cparata 0:6a670fda63c2 1725 value &= ~LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_MASK;
cparata 0:6a670fda63c2 1726 value |= newValue;
cparata 0:6a670fda63c2 1727
cparata 0:6a670fda63c2 1728 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1729 return MEMS_ERROR;
cparata 0:6a670fda63c2 1730
cparata 0:6a670fda63c2 1731 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1732 }
cparata 0:6a670fda63c2 1733
cparata 0:6a670fda63c2 1734 /*******************************************************************************
cparata 0:6a670fda63c2 1735 * Function Name : LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT1
cparata 0:6a670fda63c2 1736 * Description : Read INT1_FULL_FLAG
cparata 0:6a670fda63c2 1737 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t
cparata 0:6a670fda63c2 1738 * Output : Status of INT1_FULL_FLAG see LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t
cparata 0:6a670fda63c2 1739 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1740 *******************************************************************************/
cparata 0:6a670fda63c2 1741 status_t LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_t *value)
cparata 0:6a670fda63c2 1742 {
cparata 0:6a670fda63c2 1743 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1744 return MEMS_ERROR;
cparata 0:6a670fda63c2 1745
cparata 0:6a670fda63c2 1746 *value &= LSM6DSL_ACC_GYRO_INT1_FULL_FLAG_MASK; //mask
cparata 0:6a670fda63c2 1747
cparata 0:6a670fda63c2 1748 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1749 }
cparata 0:6a670fda63c2 1750
cparata 0:6a670fda63c2 1751 /*******************************************************************************
cparata 0:6a670fda63c2 1752 * Function Name : LSM6DSL_ACC_GYRO_W_SIGN_MOT_on_INT1
cparata 0:6a670fda63c2 1753 * Description : Write INT1_SIGN_MOT
cparata 0:6a670fda63c2 1754 * Input : LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t
cparata 0:6a670fda63c2 1755 * Output : None
cparata 0:6a670fda63c2 1756 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1757 *******************************************************************************/
cparata 0:6a670fda63c2 1758 status_t LSM6DSL_ACC_GYRO_W_SIGN_MOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t newValue)
cparata 0:6a670fda63c2 1759 {
cparata 0:6a670fda63c2 1760 u8_t value;
cparata 0:6a670fda63c2 1761
cparata 0:6a670fda63c2 1762 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1763 return MEMS_ERROR;
cparata 0:6a670fda63c2 1764
cparata 0:6a670fda63c2 1765 value &= ~LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_MASK;
cparata 0:6a670fda63c2 1766 value |= newValue;
cparata 0:6a670fda63c2 1767
cparata 0:6a670fda63c2 1768 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1769 return MEMS_ERROR;
cparata 0:6a670fda63c2 1770
cparata 0:6a670fda63c2 1771 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1772 }
cparata 0:6a670fda63c2 1773
cparata 0:6a670fda63c2 1774 /*******************************************************************************
cparata 0:6a670fda63c2 1775 * Function Name : LSM6DSL_ACC_GYRO_R_SIGN_MOT_on_INT1
cparata 0:6a670fda63c2 1776 * Description : Read INT1_SIGN_MOT
cparata 0:6a670fda63c2 1777 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t
cparata 0:6a670fda63c2 1778 * Output : Status of INT1_SIGN_MOT see LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t
cparata 0:6a670fda63c2 1779 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1780 *******************************************************************************/
cparata 0:6a670fda63c2 1781 status_t LSM6DSL_ACC_GYRO_R_SIGN_MOT_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_t *value)
cparata 0:6a670fda63c2 1782 {
cparata 0:6a670fda63c2 1783 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1784 return MEMS_ERROR;
cparata 0:6a670fda63c2 1785
cparata 0:6a670fda63c2 1786 *value &= LSM6DSL_ACC_GYRO_INT1_SIGN_MOT_MASK; //mask
cparata 0:6a670fda63c2 1787
cparata 0:6a670fda63c2 1788 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1789 }
cparata 0:6a670fda63c2 1790
cparata 0:6a670fda63c2 1791 /*******************************************************************************
cparata 0:6a670fda63c2 1792 * Function Name : LSM6DSL_ACC_GYRO_W_STEP_DET_on_INT1
cparata 0:6a670fda63c2 1793 * Description : Write INT1_PEDO
cparata 0:6a670fda63c2 1794 * Input : LSM6DSL_ACC_GYRO_INT1_PEDO_t
cparata 0:6a670fda63c2 1795 * Output : None
cparata 0:6a670fda63c2 1796 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1797 *******************************************************************************/
cparata 0:6a670fda63c2 1798 status_t LSM6DSL_ACC_GYRO_W_STEP_DET_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_PEDO_t newValue)
cparata 0:6a670fda63c2 1799 {
cparata 0:6a670fda63c2 1800 u8_t value;
cparata 0:6a670fda63c2 1801
cparata 0:6a670fda63c2 1802 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1))
cparata 0:6a670fda63c2 1803 return MEMS_ERROR;
cparata 0:6a670fda63c2 1804
cparata 0:6a670fda63c2 1805 value &= ~LSM6DSL_ACC_GYRO_INT1_PEDO_MASK;
cparata 0:6a670fda63c2 1806 value |= newValue;
cparata 0:6a670fda63c2 1807
cparata 0:6a670fda63c2 1808 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1809 return MEMS_ERROR;
cparata 0:6a670fda63c2 1810
cparata 0:6a670fda63c2 1811 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1812 }
cparata 0:6a670fda63c2 1813
cparata 0:6a670fda63c2 1814 /*******************************************************************************
cparata 0:6a670fda63c2 1815 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_DET_on_INT1
cparata 0:6a670fda63c2 1816 * Description : Read INT1_PEDO
cparata 0:6a670fda63c2 1817 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_PEDO_t
cparata 0:6a670fda63c2 1818 * Output : Status of INT1_PEDO see LSM6DSL_ACC_GYRO_INT1_PEDO_t
cparata 0:6a670fda63c2 1819 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1820 *******************************************************************************/
cparata 0:6a670fda63c2 1821 status_t LSM6DSL_ACC_GYRO_R_STEP_DET_on_INT1(void *handle, LSM6DSL_ACC_GYRO_INT1_PEDO_t *value)
cparata 0:6a670fda63c2 1822 {
cparata 0:6a670fda63c2 1823 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT1_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1824 return MEMS_ERROR;
cparata 0:6a670fda63c2 1825
cparata 0:6a670fda63c2 1826 *value &= LSM6DSL_ACC_GYRO_INT1_PEDO_MASK; //mask
cparata 0:6a670fda63c2 1827
cparata 0:6a670fda63c2 1828 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1829 }
cparata 0:6a670fda63c2 1830
cparata 0:6a670fda63c2 1831 /*******************************************************************************
cparata 0:6a670fda63c2 1832 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT2
cparata 0:6a670fda63c2 1833 * Description : Write INT2_DRDY_XL
cparata 0:6a670fda63c2 1834 * Input : LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t
cparata 0:6a670fda63c2 1835 * Output : None
cparata 0:6a670fda63c2 1836 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1837 *******************************************************************************/
cparata 0:6a670fda63c2 1838 status_t LSM6DSL_ACC_GYRO_W_DRDY_XL_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t newValue)
cparata 0:6a670fda63c2 1839 {
cparata 0:6a670fda63c2 1840 u8_t value;
cparata 0:6a670fda63c2 1841
cparata 0:6a670fda63c2 1842 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 1843 return MEMS_ERROR;
cparata 0:6a670fda63c2 1844
cparata 0:6a670fda63c2 1845 value &= ~LSM6DSL_ACC_GYRO_INT2_DRDY_XL_MASK;
cparata 0:6a670fda63c2 1846 value |= newValue;
cparata 0:6a670fda63c2 1847
cparata 0:6a670fda63c2 1848 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1849 return MEMS_ERROR;
cparata 0:6a670fda63c2 1850
cparata 0:6a670fda63c2 1851 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1852 }
cparata 0:6a670fda63c2 1853
cparata 0:6a670fda63c2 1854 /*******************************************************************************
cparata 0:6a670fda63c2 1855 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT2
cparata 0:6a670fda63c2 1856 * Description : Read INT2_DRDY_XL
cparata 0:6a670fda63c2 1857 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t
cparata 0:6a670fda63c2 1858 * Output : Status of INT2_DRDY_XL see LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t
cparata 0:6a670fda63c2 1859 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1860 *******************************************************************************/
cparata 0:6a670fda63c2 1861 status_t LSM6DSL_ACC_GYRO_R_DRDY_XL_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_XL_t *value)
cparata 0:6a670fda63c2 1862 {
cparata 0:6a670fda63c2 1863 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1864 return MEMS_ERROR;
cparata 0:6a670fda63c2 1865
cparata 0:6a670fda63c2 1866 *value &= LSM6DSL_ACC_GYRO_INT2_DRDY_XL_MASK; //mask
cparata 0:6a670fda63c2 1867
cparata 0:6a670fda63c2 1868 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1869 }
cparata 0:6a670fda63c2 1870
cparata 0:6a670fda63c2 1871 /*******************************************************************************
cparata 0:6a670fda63c2 1872 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT2
cparata 0:6a670fda63c2 1873 * Description : Write INT2_DRDY_G
cparata 0:6a670fda63c2 1874 * Input : LSM6DSL_ACC_GYRO_INT2_DRDY_G_t
cparata 0:6a670fda63c2 1875 * Output : None
cparata 0:6a670fda63c2 1876 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1877 *******************************************************************************/
cparata 0:6a670fda63c2 1878 status_t LSM6DSL_ACC_GYRO_W_DRDY_G_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_G_t newValue)
cparata 0:6a670fda63c2 1879 {
cparata 0:6a670fda63c2 1880 u8_t value;
cparata 0:6a670fda63c2 1881
cparata 0:6a670fda63c2 1882 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 1883 return MEMS_ERROR;
cparata 0:6a670fda63c2 1884
cparata 0:6a670fda63c2 1885 value &= ~LSM6DSL_ACC_GYRO_INT2_DRDY_G_MASK;
cparata 0:6a670fda63c2 1886 value |= newValue;
cparata 0:6a670fda63c2 1887
cparata 0:6a670fda63c2 1888 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1889 return MEMS_ERROR;
cparata 0:6a670fda63c2 1890
cparata 0:6a670fda63c2 1891 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1892 }
cparata 0:6a670fda63c2 1893
cparata 0:6a670fda63c2 1894 /*******************************************************************************
cparata 0:6a670fda63c2 1895 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT2
cparata 0:6a670fda63c2 1896 * Description : Read INT2_DRDY_G
cparata 0:6a670fda63c2 1897 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_DRDY_G_t
cparata 0:6a670fda63c2 1898 * Output : Status of INT2_DRDY_G see LSM6DSL_ACC_GYRO_INT2_DRDY_G_t
cparata 0:6a670fda63c2 1899 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1900 *******************************************************************************/
cparata 0:6a670fda63c2 1901 status_t LSM6DSL_ACC_GYRO_R_DRDY_G_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_G_t *value)
cparata 0:6a670fda63c2 1902 {
cparata 0:6a670fda63c2 1903 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1904 return MEMS_ERROR;
cparata 0:6a670fda63c2 1905
cparata 0:6a670fda63c2 1906 *value &= LSM6DSL_ACC_GYRO_INT2_DRDY_G_MASK; //mask
cparata 0:6a670fda63c2 1907
cparata 0:6a670fda63c2 1908 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1909 }
cparata 0:6a670fda63c2 1910
cparata 0:6a670fda63c2 1911 /*******************************************************************************
cparata 0:6a670fda63c2 1912 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_TEMP_on_INT2
cparata 0:6a670fda63c2 1913 * Description : Write INT2_DRDY_TEMP
cparata 0:6a670fda63c2 1914 * Input : LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t
cparata 0:6a670fda63c2 1915 * Output : None
cparata 0:6a670fda63c2 1916 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1917 *******************************************************************************/
cparata 0:6a670fda63c2 1918 status_t LSM6DSL_ACC_GYRO_W_DRDY_TEMP_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t newValue)
cparata 0:6a670fda63c2 1919 {
cparata 0:6a670fda63c2 1920 u8_t value;
cparata 0:6a670fda63c2 1921
cparata 0:6a670fda63c2 1922 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 1923 return MEMS_ERROR;
cparata 0:6a670fda63c2 1924
cparata 0:6a670fda63c2 1925 value &= ~LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_MASK;
cparata 0:6a670fda63c2 1926 value |= newValue;
cparata 0:6a670fda63c2 1927
cparata 0:6a670fda63c2 1928 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1929 return MEMS_ERROR;
cparata 0:6a670fda63c2 1930
cparata 0:6a670fda63c2 1931 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1932 }
cparata 0:6a670fda63c2 1933
cparata 0:6a670fda63c2 1934 /*******************************************************************************
cparata 0:6a670fda63c2 1935 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_TEMP_on_INT2
cparata 0:6a670fda63c2 1936 * Description : Read INT2_DRDY_TEMP
cparata 0:6a670fda63c2 1937 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t
cparata 0:6a670fda63c2 1938 * Output : Status of INT2_DRDY_TEMP see LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t
cparata 0:6a670fda63c2 1939 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1940 *******************************************************************************/
cparata 0:6a670fda63c2 1941 status_t LSM6DSL_ACC_GYRO_R_DRDY_TEMP_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_t *value)
cparata 0:6a670fda63c2 1942 {
cparata 0:6a670fda63c2 1943 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1944 return MEMS_ERROR;
cparata 0:6a670fda63c2 1945
cparata 0:6a670fda63c2 1946 *value &= LSM6DSL_ACC_GYRO_INT2_DRDY_TEMP_MASK; //mask
cparata 0:6a670fda63c2 1947
cparata 0:6a670fda63c2 1948 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1949 }
cparata 0:6a670fda63c2 1950
cparata 0:6a670fda63c2 1951 /*******************************************************************************
cparata 0:6a670fda63c2 1952 * Function Name : LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT2
cparata 0:6a670fda63c2 1953 * Description : Write INT2_FTH
cparata 0:6a670fda63c2 1954 * Input : LSM6DSL_ACC_GYRO_INT2_FTH_t
cparata 0:6a670fda63c2 1955 * Output : None
cparata 0:6a670fda63c2 1956 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1957 *******************************************************************************/
cparata 0:6a670fda63c2 1958 status_t LSM6DSL_ACC_GYRO_W_FIFO_TSHLD_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FTH_t newValue)
cparata 0:6a670fda63c2 1959 {
cparata 0:6a670fda63c2 1960 u8_t value;
cparata 0:6a670fda63c2 1961
cparata 0:6a670fda63c2 1962 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 1963 return MEMS_ERROR;
cparata 0:6a670fda63c2 1964
cparata 0:6a670fda63c2 1965 value &= ~LSM6DSL_ACC_GYRO_INT2_FTH_MASK;
cparata 0:6a670fda63c2 1966 value |= newValue;
cparata 0:6a670fda63c2 1967
cparata 0:6a670fda63c2 1968 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 1969 return MEMS_ERROR;
cparata 0:6a670fda63c2 1970
cparata 0:6a670fda63c2 1971 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1972 }
cparata 0:6a670fda63c2 1973
cparata 0:6a670fda63c2 1974 /*******************************************************************************
cparata 0:6a670fda63c2 1975 * Function Name : LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT2
cparata 0:6a670fda63c2 1976 * Description : Read INT2_FTH
cparata 0:6a670fda63c2 1977 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_FTH_t
cparata 0:6a670fda63c2 1978 * Output : Status of INT2_FTH see LSM6DSL_ACC_GYRO_INT2_FTH_t
cparata 0:6a670fda63c2 1979 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1980 *******************************************************************************/
cparata 0:6a670fda63c2 1981 status_t LSM6DSL_ACC_GYRO_R_FIFO_TSHLD_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FTH_t *value)
cparata 0:6a670fda63c2 1982 {
cparata 0:6a670fda63c2 1983 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 1984 return MEMS_ERROR;
cparata 0:6a670fda63c2 1985
cparata 0:6a670fda63c2 1986 *value &= LSM6DSL_ACC_GYRO_INT2_FTH_MASK; //mask
cparata 0:6a670fda63c2 1987
cparata 0:6a670fda63c2 1988 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 1989 }
cparata 0:6a670fda63c2 1990
cparata 0:6a670fda63c2 1991 /*******************************************************************************
cparata 0:6a670fda63c2 1992 * Function Name : LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT2
cparata 0:6a670fda63c2 1993 * Description : Write INT2_OVR
cparata 0:6a670fda63c2 1994 * Input : LSM6DSL_ACC_GYRO_INT2_OVR_t
cparata 0:6a670fda63c2 1995 * Output : None
cparata 0:6a670fda63c2 1996 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 1997 *******************************************************************************/
cparata 0:6a670fda63c2 1998 status_t LSM6DSL_ACC_GYRO_W_OVERRUN_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_OVR_t newValue)
cparata 0:6a670fda63c2 1999 {
cparata 0:6a670fda63c2 2000 u8_t value;
cparata 0:6a670fda63c2 2001
cparata 0:6a670fda63c2 2002 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 2003 return MEMS_ERROR;
cparata 0:6a670fda63c2 2004
cparata 0:6a670fda63c2 2005 value &= ~LSM6DSL_ACC_GYRO_INT2_OVR_MASK;
cparata 0:6a670fda63c2 2006 value |= newValue;
cparata 0:6a670fda63c2 2007
cparata 0:6a670fda63c2 2008 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 2009 return MEMS_ERROR;
cparata 0:6a670fda63c2 2010
cparata 0:6a670fda63c2 2011 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2012 }
cparata 0:6a670fda63c2 2013
cparata 0:6a670fda63c2 2014 /*******************************************************************************
cparata 0:6a670fda63c2 2015 * Function Name : LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT2
cparata 0:6a670fda63c2 2016 * Description : Read INT2_OVR
cparata 0:6a670fda63c2 2017 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_OVR_t
cparata 0:6a670fda63c2 2018 * Output : Status of INT2_OVR see LSM6DSL_ACC_GYRO_INT2_OVR_t
cparata 0:6a670fda63c2 2019 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2020 *******************************************************************************/
cparata 0:6a670fda63c2 2021 status_t LSM6DSL_ACC_GYRO_R_OVERRUN_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_OVR_t *value)
cparata 0:6a670fda63c2 2022 {
cparata 0:6a670fda63c2 2023 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2024 return MEMS_ERROR;
cparata 0:6a670fda63c2 2025
cparata 0:6a670fda63c2 2026 *value &= LSM6DSL_ACC_GYRO_INT2_OVR_MASK; //mask
cparata 0:6a670fda63c2 2027
cparata 0:6a670fda63c2 2028 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2029 }
cparata 0:6a670fda63c2 2030
cparata 0:6a670fda63c2 2031 /*******************************************************************************
cparata 0:6a670fda63c2 2032 * Function Name : LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT2
cparata 0:6a670fda63c2 2033 * Description : Write INT2_FULL_FLAG
cparata 0:6a670fda63c2 2034 * Input : LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t
cparata 0:6a670fda63c2 2035 * Output : None
cparata 0:6a670fda63c2 2036 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2037 *******************************************************************************/
cparata 0:6a670fda63c2 2038 status_t LSM6DSL_ACC_GYRO_W_FULL_FLAG_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t newValue)
cparata 0:6a670fda63c2 2039 {
cparata 0:6a670fda63c2 2040 u8_t value;
cparata 0:6a670fda63c2 2041
cparata 0:6a670fda63c2 2042 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 2043 return MEMS_ERROR;
cparata 0:6a670fda63c2 2044
cparata 0:6a670fda63c2 2045 value &= ~LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_MASK;
cparata 0:6a670fda63c2 2046 value |= newValue;
cparata 0:6a670fda63c2 2047
cparata 0:6a670fda63c2 2048 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 2049 return MEMS_ERROR;
cparata 0:6a670fda63c2 2050
cparata 0:6a670fda63c2 2051 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2052 }
cparata 0:6a670fda63c2 2053
cparata 0:6a670fda63c2 2054 /*******************************************************************************
cparata 0:6a670fda63c2 2055 * Function Name : LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT2
cparata 0:6a670fda63c2 2056 * Description : Read INT2_FULL_FLAG
cparata 0:6a670fda63c2 2057 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t
cparata 0:6a670fda63c2 2058 * Output : Status of INT2_FULL_FLAG see LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t
cparata 0:6a670fda63c2 2059 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2060 *******************************************************************************/
cparata 0:6a670fda63c2 2061 status_t LSM6DSL_ACC_GYRO_R_FULL_FLAG_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_t *value)
cparata 0:6a670fda63c2 2062 {
cparata 0:6a670fda63c2 2063 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2064 return MEMS_ERROR;
cparata 0:6a670fda63c2 2065
cparata 0:6a670fda63c2 2066 *value &= LSM6DSL_ACC_GYRO_INT2_FULL_FLAG_MASK; //mask
cparata 0:6a670fda63c2 2067
cparata 0:6a670fda63c2 2068 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2069 }
cparata 0:6a670fda63c2 2070
cparata 0:6a670fda63c2 2071 /*******************************************************************************
cparata 0:6a670fda63c2 2072 * Function Name : LSM6DSL_ACC_GYRO_W_STEP_COUNT_OV_on_INT2
cparata 0:6a670fda63c2 2073 * Description : Write INT2_STEP_COUNT_OV
cparata 0:6a670fda63c2 2074 * Input : LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t
cparata 0:6a670fda63c2 2075 * Output : None
cparata 0:6a670fda63c2 2076 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2077 *******************************************************************************/
cparata 0:6a670fda63c2 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:6a670fda63c2 2079 {
cparata 0:6a670fda63c2 2080 u8_t value;
cparata 0:6a670fda63c2 2081
cparata 0:6a670fda63c2 2082 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 2083 return MEMS_ERROR;
cparata 0:6a670fda63c2 2084
cparata 0:6a670fda63c2 2085 value &= ~LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_MASK;
cparata 0:6a670fda63c2 2086 value |= newValue;
cparata 0:6a670fda63c2 2087
cparata 0:6a670fda63c2 2088 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 2089 return MEMS_ERROR;
cparata 0:6a670fda63c2 2090
cparata 0:6a670fda63c2 2091 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2092 }
cparata 0:6a670fda63c2 2093
cparata 0:6a670fda63c2 2094 /*******************************************************************************
cparata 0:6a670fda63c2 2095 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_COUNT_OV_on_INT2
cparata 0:6a670fda63c2 2096 * Description : Read INT2_STEP_COUNT_OV
cparata 0:6a670fda63c2 2097 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t
cparata 0:6a670fda63c2 2098 * Output : Status of INT2_STEP_COUNT_OV see LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_t
cparata 0:6a670fda63c2 2099 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2100 *******************************************************************************/
cparata 0:6a670fda63c2 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:6a670fda63c2 2102 {
cparata 0:6a670fda63c2 2103 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2104 return MEMS_ERROR;
cparata 0:6a670fda63c2 2105
cparata 0:6a670fda63c2 2106 *value &= LSM6DSL_ACC_GYRO_INT2_STEP_COUNT_OV_MASK; //mask
cparata 0:6a670fda63c2 2107
cparata 0:6a670fda63c2 2108 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2109 }
cparata 0:6a670fda63c2 2110
cparata 0:6a670fda63c2 2111 /*******************************************************************************
cparata 0:6a670fda63c2 2112 * Function Name : LSM6DSL_ACC_GYRO_W_STEP_DELTA_on_INT2
cparata 0:6a670fda63c2 2113 * Description : Write INT2_STEP_DELTA
cparata 0:6a670fda63c2 2114 * Input : LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t
cparata 0:6a670fda63c2 2115 * Output : None
cparata 0:6a670fda63c2 2116 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2117 *******************************************************************************/
cparata 0:6a670fda63c2 2118 status_t LSM6DSL_ACC_GYRO_W_STEP_DELTA_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t newValue)
cparata 0:6a670fda63c2 2119 {
cparata 0:6a670fda63c2 2120 u8_t value;
cparata 0:6a670fda63c2 2121
cparata 0:6a670fda63c2 2122 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1))
cparata 0:6a670fda63c2 2123 return MEMS_ERROR;
cparata 0:6a670fda63c2 2124
cparata 0:6a670fda63c2 2125 value &= ~LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_MASK;
cparata 0:6a670fda63c2 2126 value |= newValue;
cparata 0:6a670fda63c2 2127
cparata 0:6a670fda63c2 2128 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, &value, 1) )
cparata 0:6a670fda63c2 2129 return MEMS_ERROR;
cparata 0:6a670fda63c2 2130
cparata 0:6a670fda63c2 2131 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2132 }
cparata 0:6a670fda63c2 2133
cparata 0:6a670fda63c2 2134 /*******************************************************************************
cparata 0:6a670fda63c2 2135 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_DELTA_on_INT2
cparata 0:6a670fda63c2 2136 * Description : Read INT2_STEP_DELTA
cparata 0:6a670fda63c2 2137 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t
cparata 0:6a670fda63c2 2138 * Output : Status of INT2_STEP_DELTA see LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t
cparata 0:6a670fda63c2 2139 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2140 *******************************************************************************/
cparata 0:6a670fda63c2 2141 status_t LSM6DSL_ACC_GYRO_R_STEP_DELTA_on_INT2(void *handle, LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_t *value)
cparata 0:6a670fda63c2 2142 {
cparata 0:6a670fda63c2 2143 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT2_CTRL, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2144 return MEMS_ERROR;
cparata 0:6a670fda63c2 2145
cparata 0:6a670fda63c2 2146 *value &= LSM6DSL_ACC_GYRO_INT2_STEP_DELTA_MASK; //mask
cparata 0:6a670fda63c2 2147
cparata 0:6a670fda63c2 2148 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2149 }
cparata 0:6a670fda63c2 2150
cparata 0:6a670fda63c2 2151 /*******************************************************************************
cparata 0:6a670fda63c2 2152 * Function Name : LSM6DSL_ACC_GYRO_W_SW_RESET
cparata 0:6a670fda63c2 2153 * Description : Write SW_RESET
cparata 0:6a670fda63c2 2154 * Input : LSM6DSL_ACC_GYRO_SW_RESET_t
cparata 0:6a670fda63c2 2155 * Output : None
cparata 0:6a670fda63c2 2156 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2157 *******************************************************************************/
cparata 0:6a670fda63c2 2158 status_t LSM6DSL_ACC_GYRO_W_SW_RESET(void *handle, LSM6DSL_ACC_GYRO_SW_RESET_t newValue)
cparata 0:6a670fda63c2 2159 {
cparata 0:6a670fda63c2 2160 u8_t value;
cparata 0:6a670fda63c2 2161
cparata 0:6a670fda63c2 2162 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 2163 return MEMS_ERROR;
cparata 0:6a670fda63c2 2164
cparata 0:6a670fda63c2 2165 value &= ~LSM6DSL_ACC_GYRO_SW_RESET_MASK;
cparata 0:6a670fda63c2 2166 value |= newValue;
cparata 0:6a670fda63c2 2167
cparata 0:6a670fda63c2 2168 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 2169 return MEMS_ERROR;
cparata 0:6a670fda63c2 2170
cparata 0:6a670fda63c2 2171 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2172 }
cparata 0:6a670fda63c2 2173
cparata 0:6a670fda63c2 2174 /*******************************************************************************
cparata 0:6a670fda63c2 2175 * Function Name : LSM6DSL_ACC_GYRO_R_SW_RESET
cparata 0:6a670fda63c2 2176 * Description : Read SW_RESET
cparata 0:6a670fda63c2 2177 * Input : Pointer to LSM6DSL_ACC_GYRO_SW_RESET_t
cparata 0:6a670fda63c2 2178 * Output : Status of SW_RESET see LSM6DSL_ACC_GYRO_SW_RESET_t
cparata 0:6a670fda63c2 2179 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2180 *******************************************************************************/
cparata 0:6a670fda63c2 2181 status_t LSM6DSL_ACC_GYRO_R_SW_RESET(void *handle, LSM6DSL_ACC_GYRO_SW_RESET_t *value)
cparata 0:6a670fda63c2 2182 {
cparata 0:6a670fda63c2 2183 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2184 return MEMS_ERROR;
cparata 0:6a670fda63c2 2185
cparata 0:6a670fda63c2 2186 *value &= LSM6DSL_ACC_GYRO_SW_RESET_MASK; //mask
cparata 0:6a670fda63c2 2187
cparata 0:6a670fda63c2 2188 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2189 }
cparata 0:6a670fda63c2 2190
cparata 0:6a670fda63c2 2191 /*******************************************************************************
cparata 0:6a670fda63c2 2192 * Function Name : LSM6DSL_ACC_GYRO_W_IF_Addr_Incr
cparata 0:6a670fda63c2 2193 * Description : Write IF_INC
cparata 0:6a670fda63c2 2194 * Input : LSM6DSL_ACC_GYRO_IF_INC_t
cparata 0:6a670fda63c2 2195 * Output : None
cparata 0:6a670fda63c2 2196 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2197 *******************************************************************************/
cparata 0:6a670fda63c2 2198 status_t LSM6DSL_ACC_GYRO_W_IF_Addr_Incr(void *handle, LSM6DSL_ACC_GYRO_IF_INC_t newValue)
cparata 0:6a670fda63c2 2199 {
cparata 0:6a670fda63c2 2200 u8_t value;
cparata 0:6a670fda63c2 2201
cparata 0:6a670fda63c2 2202 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 2203 return MEMS_ERROR;
cparata 0:6a670fda63c2 2204
cparata 0:6a670fda63c2 2205 value &= ~LSM6DSL_ACC_GYRO_IF_INC_MASK;
cparata 0:6a670fda63c2 2206 value |= newValue;
cparata 0:6a670fda63c2 2207
cparata 0:6a670fda63c2 2208 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 2209 return MEMS_ERROR;
cparata 0:6a670fda63c2 2210
cparata 0:6a670fda63c2 2211 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2212 }
cparata 0:6a670fda63c2 2213
cparata 0:6a670fda63c2 2214 /*******************************************************************************
cparata 0:6a670fda63c2 2215 * Function Name : LSM6DSL_ACC_GYRO_R_IF_Addr_Incr
cparata 0:6a670fda63c2 2216 * Description : Read IF_INC
cparata 0:6a670fda63c2 2217 * Input : Pointer to LSM6DSL_ACC_GYRO_IF_INC_t
cparata 0:6a670fda63c2 2218 * Output : Status of IF_INC see LSM6DSL_ACC_GYRO_IF_INC_t
cparata 0:6a670fda63c2 2219 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2220 *******************************************************************************/
cparata 0:6a670fda63c2 2221 status_t LSM6DSL_ACC_GYRO_R_IF_Addr_Incr(void *handle, LSM6DSL_ACC_GYRO_IF_INC_t *value)
cparata 0:6a670fda63c2 2222 {
cparata 0:6a670fda63c2 2223 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 2224 return MEMS_ERROR;
cparata 0:6a670fda63c2 2225
cparata 0:6a670fda63c2 2226 *value &= LSM6DSL_ACC_GYRO_IF_INC_MASK; //mask
cparata 0:6a670fda63c2 2227
cparata 0:6a670fda63c2 2228 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2229 }
cparata 0:6a670fda63c2 2230
cparata 0:6a670fda63c2 2231 /*******************************************************************************
cparata 0:6a670fda63c2 2232 * Function Name : LSM6DSL_ACC_GYRO_W_SPI_Mode
cparata 0:6a670fda63c2 2233 * Description : Write SIM
cparata 0:6a670fda63c2 2234 * Input : LSM6DSL_ACC_GYRO_SIM_t
cparata 0:6a670fda63c2 2235 * Output : None
cparata 0:6a670fda63c2 2236 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2237 *******************************************************************************/
cparata 0:6a670fda63c2 2238 status_t LSM6DSL_ACC_GYRO_W_SPI_Mode(void *handle, LSM6DSL_ACC_GYRO_SIM_t newValue)
cparata 0:6a670fda63c2 2239 {
cparata 0:6a670fda63c2 2240 u8_t value;
cparata 0:6a670fda63c2 2241
cparata 0:6a670fda63c2 2242 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 2243 return MEMS_ERROR;
cparata 0:6a670fda63c2 2244
cparata 0:6a670fda63c2 2245 value &= ~LSM6DSL_ACC_GYRO_SIM_MASK;
cparata 0:6a670fda63c2 2246 value |= newValue;
cparata 0:6a670fda63c2 2247
cparata 0:6a670fda63c2 2248 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 2249 return MEMS_ERROR;
cparata 0:6a670fda63c2 2250
cparata 0:6a670fda63c2 2251 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2252 }
cparata 0:6a670fda63c2 2253
cparata 0:6a670fda63c2 2254 /*******************************************************************************
cparata 0:6a670fda63c2 2255 * Function Name : LSM6DSL_ACC_GYRO_R_SPI_Mode
cparata 0:6a670fda63c2 2256 * Description : Read SIM
cparata 0:6a670fda63c2 2257 * Input : Pointer to LSM6DSL_ACC_GYRO_SIM_t
cparata 0:6a670fda63c2 2258 * Output : Status of SIM see LSM6DSL_ACC_GYRO_SIM_t
cparata 0:6a670fda63c2 2259 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2260 *******************************************************************************/
cparata 0:6a670fda63c2 2261 status_t LSM6DSL_ACC_GYRO_R_SPI_Mode(void *handle, LSM6DSL_ACC_GYRO_SIM_t *value)
cparata 0:6a670fda63c2 2262 {
cparata 0:6a670fda63c2 2263 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2264 return MEMS_ERROR;
cparata 0:6a670fda63c2 2265
cparata 0:6a670fda63c2 2266 *value &= LSM6DSL_ACC_GYRO_SIM_MASK; //mask
cparata 0:6a670fda63c2 2267
cparata 0:6a670fda63c2 2268 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2269 }
cparata 0:6a670fda63c2 2270
cparata 0:6a670fda63c2 2271 /*******************************************************************************
cparata 0:6a670fda63c2 2272 * Function Name : LSM6DSL_ACC_GYRO_W_PadSel
cparata 0:6a670fda63c2 2273 * Description : Write PP_OD
cparata 0:6a670fda63c2 2274 * Input : LSM6DSL_ACC_GYRO_PP_OD_t
cparata 0:6a670fda63c2 2275 * Output : None
cparata 0:6a670fda63c2 2276 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2277 *******************************************************************************/
cparata 0:6a670fda63c2 2278 status_t LSM6DSL_ACC_GYRO_W_PadSel(void *handle, LSM6DSL_ACC_GYRO_PP_OD_t newValue)
cparata 0:6a670fda63c2 2279 {
cparata 0:6a670fda63c2 2280 u8_t value;
cparata 0:6a670fda63c2 2281
cparata 0:6a670fda63c2 2282 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 2283 return MEMS_ERROR;
cparata 0:6a670fda63c2 2284
cparata 0:6a670fda63c2 2285 value &= ~LSM6DSL_ACC_GYRO_PP_OD_MASK;
cparata 0:6a670fda63c2 2286 value |= newValue;
cparata 0:6a670fda63c2 2287
cparata 0:6a670fda63c2 2288 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 2289 return MEMS_ERROR;
cparata 0:6a670fda63c2 2290
cparata 0:6a670fda63c2 2291 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2292 }
cparata 0:6a670fda63c2 2293
cparata 0:6a670fda63c2 2294 /*******************************************************************************
cparata 0:6a670fda63c2 2295 * Function Name : LSM6DSL_ACC_GYRO_R_PadSel
cparata 0:6a670fda63c2 2296 * Description : Read PP_OD
cparata 0:6a670fda63c2 2297 * Input : Pointer to LSM6DSL_ACC_GYRO_PP_OD_t
cparata 0:6a670fda63c2 2298 * Output : Status of PP_OD see LSM6DSL_ACC_GYRO_PP_OD_t
cparata 0:6a670fda63c2 2299 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2300 *******************************************************************************/
cparata 0:6a670fda63c2 2301 status_t LSM6DSL_ACC_GYRO_R_PadSel(void *handle, LSM6DSL_ACC_GYRO_PP_OD_t *value)
cparata 0:6a670fda63c2 2302 {
cparata 0:6a670fda63c2 2303 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 2304 return MEMS_ERROR;
cparata 0:6a670fda63c2 2305
cparata 0:6a670fda63c2 2306 *value &= LSM6DSL_ACC_GYRO_PP_OD_MASK; //mask
cparata 0:6a670fda63c2 2307
cparata 0:6a670fda63c2 2308 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2309 }
cparata 0:6a670fda63c2 2310
cparata 0:6a670fda63c2 2311 /*******************************************************************************
cparata 0:6a670fda63c2 2312 * Function Name : LSM6DSL_ACC_GYRO_W_INT_ACT_LEVEL
cparata 0:6a670fda63c2 2313 * Description : Write INT_ACT_LEVEL
cparata 0:6a670fda63c2 2314 * Input : LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t
cparata 0:6a670fda63c2 2315 * Output : None
cparata 0:6a670fda63c2 2316 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2317 *******************************************************************************/
cparata 0:6a670fda63c2 2318 status_t LSM6DSL_ACC_GYRO_W_INT_ACT_LEVEL(void *handle, LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t newValue)
cparata 0:6a670fda63c2 2319 {
cparata 0:6a670fda63c2 2320 u8_t value;
cparata 0:6a670fda63c2 2321
cparata 0:6a670fda63c2 2322 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 2323 return MEMS_ERROR;
cparata 0:6a670fda63c2 2324
cparata 0:6a670fda63c2 2325 value &= ~LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_MASK;
cparata 0:6a670fda63c2 2326 value |= newValue;
cparata 0:6a670fda63c2 2327
cparata 0:6a670fda63c2 2328 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 2329 return MEMS_ERROR;
cparata 0:6a670fda63c2 2330
cparata 0:6a670fda63c2 2331 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2332 }
cparata 0:6a670fda63c2 2333
cparata 0:6a670fda63c2 2334 /*******************************************************************************
cparata 0:6a670fda63c2 2335 * Function Name : LSM6DSL_ACC_GYRO_R_INT_ACT_LEVEL
cparata 0:6a670fda63c2 2336 * Description : Read INT_ACT_LEVEL
cparata 0:6a670fda63c2 2337 * Input : Pointer to LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t
cparata 0:6a670fda63c2 2338 * Output : Status of INT_ACT_LEVEL see LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t
cparata 0:6a670fda63c2 2339 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2340 *******************************************************************************/
cparata 0:6a670fda63c2 2341 status_t LSM6DSL_ACC_GYRO_R_INT_ACT_LEVEL(void *handle, LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_t *value)
cparata 0:6a670fda63c2 2342 {
cparata 0:6a670fda63c2 2343 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2344 return MEMS_ERROR;
cparata 0:6a670fda63c2 2345
cparata 0:6a670fda63c2 2346 *value &= LSM6DSL_ACC_GYRO_INT_ACT_LEVEL_MASK; //mask
cparata 0:6a670fda63c2 2347
cparata 0:6a670fda63c2 2348 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2349 }
cparata 0:6a670fda63c2 2350
cparata 0:6a670fda63c2 2351 /*******************************************************************************
cparata 0:6a670fda63c2 2352 * Function Name : LSM6DSL_ACC_GYRO_W_BOOT
cparata 0:6a670fda63c2 2353 * Description : Write BOOT
cparata 0:6a670fda63c2 2354 * Input : LSM6DSL_ACC_GYRO_BOOT_t
cparata 0:6a670fda63c2 2355 * Output : None
cparata 0:6a670fda63c2 2356 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2357 *******************************************************************************/
cparata 0:6a670fda63c2 2358 status_t LSM6DSL_ACC_GYRO_W_BOOT(void *handle, LSM6DSL_ACC_GYRO_BOOT_t newValue)
cparata 0:6a670fda63c2 2359 {
cparata 0:6a670fda63c2 2360 u8_t value;
cparata 0:6a670fda63c2 2361
cparata 0:6a670fda63c2 2362 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1))
cparata 0:6a670fda63c2 2363 return MEMS_ERROR;
cparata 0:6a670fda63c2 2364
cparata 0:6a670fda63c2 2365 value &= ~LSM6DSL_ACC_GYRO_BOOT_MASK;
cparata 0:6a670fda63c2 2366 value |= newValue;
cparata 0:6a670fda63c2 2367
cparata 0:6a670fda63c2 2368 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, &value, 1) )
cparata 0:6a670fda63c2 2369 return MEMS_ERROR;
cparata 0:6a670fda63c2 2370
cparata 0:6a670fda63c2 2371 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2372 }
cparata 0:6a670fda63c2 2373
cparata 0:6a670fda63c2 2374 /*******************************************************************************
cparata 0:6a670fda63c2 2375 * Function Name : LSM6DSL_ACC_GYRO_R_BOOT
cparata 0:6a670fda63c2 2376 * Description : Read BOOT
cparata 0:6a670fda63c2 2377 * Input : Pointer to LSM6DSL_ACC_GYRO_BOOT_t
cparata 0:6a670fda63c2 2378 * Output : Status of BOOT see LSM6DSL_ACC_GYRO_BOOT_t
cparata 0:6a670fda63c2 2379 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2380 *******************************************************************************/
cparata 0:6a670fda63c2 2381 status_t LSM6DSL_ACC_GYRO_R_BOOT(void *handle, LSM6DSL_ACC_GYRO_BOOT_t *value)
cparata 0:6a670fda63c2 2382 {
cparata 0:6a670fda63c2 2383 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL3_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 2384 return MEMS_ERROR;
cparata 0:6a670fda63c2 2385
cparata 0:6a670fda63c2 2386 *value &= LSM6DSL_ACC_GYRO_BOOT_MASK; //mask
cparata 0:6a670fda63c2 2387
cparata 0:6a670fda63c2 2388 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2389 }
cparata 0:6a670fda63c2 2390
cparata 0:6a670fda63c2 2391 /*******************************************************************************
cparata 0:6a670fda63c2 2392 * Function Name : LSM6DSL_ACC_GYRO_LPF1_SEL_G
cparata 0:6a670fda63c2 2393 * Description : Write LPF1_SEL_G
cparata 0:6a670fda63c2 2394 * Input : LSM6DSL_ACC_GYRO_LPF1_SEL_G_t
cparata 0:6a670fda63c2 2395 * Output : None
cparata 0:6a670fda63c2 2396 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2397 *******************************************************************************/
cparata 0:6a670fda63c2 2398 status_t LSM6DSL_ACC_GYRO_W_LPF1_SEL_G(void *handle, LSM6DSL_ACC_GYRO_LPF1_SEL_G_t newValue)
cparata 0:6a670fda63c2 2399 {
cparata 0:6a670fda63c2 2400 u8_t value;
cparata 0:6a670fda63c2 2401
cparata 0:6a670fda63c2 2402 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:6a670fda63c2 2403 return MEMS_ERROR;
cparata 0:6a670fda63c2 2404
cparata 0:6a670fda63c2 2405 value &= ~LSM6DSL_ACC_GYRO_LPF1_SEL_G_MASK;
cparata 0:6a670fda63c2 2406 value |= newValue;
cparata 0:6a670fda63c2 2407
cparata 0:6a670fda63c2 2408 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:6a670fda63c2 2409 return MEMS_ERROR;
cparata 0:6a670fda63c2 2410
cparata 0:6a670fda63c2 2411 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2412 }
cparata 0:6a670fda63c2 2413
cparata 0:6a670fda63c2 2414 /*******************************************************************************
cparata 0:6a670fda63c2 2415 * Function Name : LSM6DSL_ACC_GYRO_LPF1_SEL_G
cparata 0:6a670fda63c2 2416 * Description : Read LPF1_SEL_G
cparata 0:6a670fda63c2 2417 * Input : Pointer to LSM6DSL_ACC_GYRO_LPF1_SEL_G_t
cparata 0:6a670fda63c2 2418 * Output : Status of LPF1_SEL_G see LSM6DSL_ACC_GYRO_LPF1_SEL_G_t
cparata 0:6a670fda63c2 2419 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2420 *******************************************************************************/
cparata 0:6a670fda63c2 2421 status_t LSM6DSL_ACC_GYRO_R_LPF1_SEL_G(void *handle, LSM6DSL_ACC_GYRO_LPF1_SEL_G_t *value)
cparata 0:6a670fda63c2 2422 {
cparata 0:6a670fda63c2 2423 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 2424 return MEMS_ERROR;
cparata 0:6a670fda63c2 2425
cparata 0:6a670fda63c2 2426 *value &= LSM6DSL_ACC_GYRO_LPF1_SEL_G_MASK; //mask
cparata 0:6a670fda63c2 2427
cparata 0:6a670fda63c2 2428 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2429 }
cparata 0:6a670fda63c2 2430
cparata 0:6a670fda63c2 2431 /*******************************************************************************
cparata 0:6a670fda63c2 2432 * Function Name : LSM6DSL_ACC_GYRO_W_I2C_DISABLE
cparata 0:6a670fda63c2 2433 * Description : Write I2C_DISABLE
cparata 0:6a670fda63c2 2434 * Input : LSM6DSL_ACC_GYRO_I2C_DISABLE_t
cparata 0:6a670fda63c2 2435 * Output : None
cparata 0:6a670fda63c2 2436 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2437 *******************************************************************************/
cparata 0:6a670fda63c2 2438 status_t LSM6DSL_ACC_GYRO_W_I2C_DISABLE(void *handle, LSM6DSL_ACC_GYRO_I2C_DISABLE_t newValue)
cparata 0:6a670fda63c2 2439 {
cparata 0:6a670fda63c2 2440 u8_t value;
cparata 0:6a670fda63c2 2441
cparata 0:6a670fda63c2 2442 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:6a670fda63c2 2443 return MEMS_ERROR;
cparata 0:6a670fda63c2 2444
cparata 0:6a670fda63c2 2445 value &= ~LSM6DSL_ACC_GYRO_I2C_DISABLE_MASK;
cparata 0:6a670fda63c2 2446 value |= newValue;
cparata 0:6a670fda63c2 2447
cparata 0:6a670fda63c2 2448 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:6a670fda63c2 2449 return MEMS_ERROR;
cparata 0:6a670fda63c2 2450
cparata 0:6a670fda63c2 2451 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2452 }
cparata 0:6a670fda63c2 2453
cparata 0:6a670fda63c2 2454 /*******************************************************************************
cparata 0:6a670fda63c2 2455 * Function Name : LSM6DSL_ACC_GYRO_R_I2C_DISABLE
cparata 0:6a670fda63c2 2456 * Description : Read I2C_DISABLE
cparata 0:6a670fda63c2 2457 * Input : Pointer to LSM6DSL_ACC_GYRO_I2C_DISABLE_t
cparata 0:6a670fda63c2 2458 * Output : Status of I2C_DISABLE see LSM6DSL_ACC_GYRO_I2C_DISABLE_t
cparata 0:6a670fda63c2 2459 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2460 *******************************************************************************/
cparata 0:6a670fda63c2 2461 status_t LSM6DSL_ACC_GYRO_R_I2C_DISABLE(void *handle, LSM6DSL_ACC_GYRO_I2C_DISABLE_t *value)
cparata 0:6a670fda63c2 2462 {
cparata 0:6a670fda63c2 2463 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 2464 return MEMS_ERROR;
cparata 0:6a670fda63c2 2465
cparata 0:6a670fda63c2 2466 *value &= LSM6DSL_ACC_GYRO_I2C_DISABLE_MASK; //mask
cparata 0:6a670fda63c2 2467
cparata 0:6a670fda63c2 2468 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2469 }
cparata 0:6a670fda63c2 2470
cparata 0:6a670fda63c2 2471 /*******************************************************************************
cparata 0:6a670fda63c2 2472 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_MSK
cparata 0:6a670fda63c2 2473 * Description : Write DRDY_MSK
cparata 0:6a670fda63c2 2474 * Input : LSM6DSL_ACC_GYRO_DRDY_MSK_t
cparata 0:6a670fda63c2 2475 * Output : None
cparata 0:6a670fda63c2 2476 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2477 *******************************************************************************/
cparata 0:6a670fda63c2 2478 status_t LSM6DSL_ACC_GYRO_W_DRDY_MSK(void *handle, LSM6DSL_ACC_GYRO_DRDY_MSK_t newValue)
cparata 0:6a670fda63c2 2479 {
cparata 0:6a670fda63c2 2480 u8_t value;
cparata 0:6a670fda63c2 2481
cparata 0:6a670fda63c2 2482 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:6a670fda63c2 2483 return MEMS_ERROR;
cparata 0:6a670fda63c2 2484
cparata 0:6a670fda63c2 2485 value &= ~LSM6DSL_ACC_GYRO_DRDY_MSK_MASK;
cparata 0:6a670fda63c2 2486 value |= newValue;
cparata 0:6a670fda63c2 2487
cparata 0:6a670fda63c2 2488 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:6a670fda63c2 2489 return MEMS_ERROR;
cparata 0:6a670fda63c2 2490
cparata 0:6a670fda63c2 2491 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2492 }
cparata 0:6a670fda63c2 2493
cparata 0:6a670fda63c2 2494 /*******************************************************************************
cparata 0:6a670fda63c2 2495 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_MSK
cparata 0:6a670fda63c2 2496 * Description : Read DRDY_MSK
cparata 0:6a670fda63c2 2497 * Input : Pointer to LSM6DSL_ACC_GYRO_DRDY_MSK_t
cparata 0:6a670fda63c2 2498 * Output : Status of DRDY_MSK see LSM6DSL_ACC_GYRO_DRDY_MSK_t
cparata 0:6a670fda63c2 2499 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2500 *******************************************************************************/
cparata 0:6a670fda63c2 2501 status_t LSM6DSL_ACC_GYRO_R_DRDY_MSK(void *handle, LSM6DSL_ACC_GYRO_DRDY_MSK_t *value)
cparata 0:6a670fda63c2 2502 {
cparata 0:6a670fda63c2 2503 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2504 return MEMS_ERROR;
cparata 0:6a670fda63c2 2505
cparata 0:6a670fda63c2 2506 *value &= LSM6DSL_ACC_GYRO_DRDY_MSK_MASK; //mask
cparata 0:6a670fda63c2 2507
cparata 0:6a670fda63c2 2508 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2509 }
cparata 0:6a670fda63c2 2510
cparata 0:6a670fda63c2 2511 /*******************************************************************************
cparata 0:6a670fda63c2 2512 * Function Name : LSM6DSL_ACC_GYRO_W_INT2_ON_INT1
cparata 0:6a670fda63c2 2513 * Description : Write INT2_ON_INT1
cparata 0:6a670fda63c2 2514 * Input : LSM6DSL_ACC_GYRO_INT2_ON_INT1_t
cparata 0:6a670fda63c2 2515 * Output : None
cparata 0:6a670fda63c2 2516 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2517 *******************************************************************************/
cparata 0:6a670fda63c2 2518 status_t LSM6DSL_ACC_GYRO_W_INT2_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_INT2_ON_INT1_t newValue)
cparata 0:6a670fda63c2 2519 {
cparata 0:6a670fda63c2 2520 u8_t value;
cparata 0:6a670fda63c2 2521
cparata 0:6a670fda63c2 2522 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:6a670fda63c2 2523 return MEMS_ERROR;
cparata 0:6a670fda63c2 2524
cparata 0:6a670fda63c2 2525 value &= ~LSM6DSL_ACC_GYRO_INT2_ON_INT1_MASK;
cparata 0:6a670fda63c2 2526 value |= newValue;
cparata 0:6a670fda63c2 2527
cparata 0:6a670fda63c2 2528 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:6a670fda63c2 2529 return MEMS_ERROR;
cparata 0:6a670fda63c2 2530
cparata 0:6a670fda63c2 2531 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2532 }
cparata 0:6a670fda63c2 2533
cparata 0:6a670fda63c2 2534 /*******************************************************************************
cparata 0:6a670fda63c2 2535 * Function Name : LSM6DSL_ACC_GYRO_R_INT2_ON_INT1
cparata 0:6a670fda63c2 2536 * Description : Read INT2_ON_INT1
cparata 0:6a670fda63c2 2537 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_ON_INT1_t
cparata 0:6a670fda63c2 2538 * Output : Status of INT2_ON_INT1 see LSM6DSL_ACC_GYRO_INT2_ON_INT1_t
cparata 0:6a670fda63c2 2539 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2540 *******************************************************************************/
cparata 0:6a670fda63c2 2541 status_t LSM6DSL_ACC_GYRO_R_INT2_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_INT2_ON_INT1_t *value)
cparata 0:6a670fda63c2 2542 {
cparata 0:6a670fda63c2 2543 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2544 return MEMS_ERROR;
cparata 0:6a670fda63c2 2545
cparata 0:6a670fda63c2 2546 *value &= LSM6DSL_ACC_GYRO_INT2_ON_INT1_MASK; //mask
cparata 0:6a670fda63c2 2547
cparata 0:6a670fda63c2 2548 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2549 }
cparata 0:6a670fda63c2 2550
cparata 0:6a670fda63c2 2551 /*******************************************************************************
cparata 0:6a670fda63c2 2552 * Function Name : LSM6DSL_ACC_GYRO_W_SleepMode_G
cparata 0:6a670fda63c2 2553 * Description : Write SLEEP_G
cparata 0:6a670fda63c2 2554 * Input : LSM6DSL_ACC_GYRO_SLEEP_G_t
cparata 0:6a670fda63c2 2555 * Output : None
cparata 0:6a670fda63c2 2556 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2557 *******************************************************************************/
cparata 0:6a670fda63c2 2558 status_t LSM6DSL_ACC_GYRO_W_SleepMode_G(void *handle, LSM6DSL_ACC_GYRO_SLEEP_G_t newValue)
cparata 0:6a670fda63c2 2559 {
cparata 0:6a670fda63c2 2560 u8_t value;
cparata 0:6a670fda63c2 2561
cparata 0:6a670fda63c2 2562 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1))
cparata 0:6a670fda63c2 2563 return MEMS_ERROR;
cparata 0:6a670fda63c2 2564
cparata 0:6a670fda63c2 2565 value &= ~LSM6DSL_ACC_GYRO_SLEEP_G_MASK;
cparata 0:6a670fda63c2 2566 value |= newValue;
cparata 0:6a670fda63c2 2567
cparata 0:6a670fda63c2 2568 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, &value, 1) )
cparata 0:6a670fda63c2 2569 return MEMS_ERROR;
cparata 0:6a670fda63c2 2570
cparata 0:6a670fda63c2 2571 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2572 }
cparata 0:6a670fda63c2 2573
cparata 0:6a670fda63c2 2574 /*******************************************************************************
cparata 0:6a670fda63c2 2575 * Function Name : LSM6DSL_ACC_GYRO_R_SleepMode_G
cparata 0:6a670fda63c2 2576 * Description : Read SLEEP_G
cparata 0:6a670fda63c2 2577 * Input : Pointer to LSM6DSL_ACC_GYRO_SLEEP_G_t
cparata 0:6a670fda63c2 2578 * Output : Status of SLEEP_G see LSM6DSL_ACC_GYRO_SLEEP_G_t
cparata 0:6a670fda63c2 2579 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2580 *******************************************************************************/
cparata 0:6a670fda63c2 2581 status_t LSM6DSL_ACC_GYRO_R_SleepMode_G(void *handle, LSM6DSL_ACC_GYRO_SLEEP_G_t *value)
cparata 0:6a670fda63c2 2582 {
cparata 0:6a670fda63c2 2583 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL4_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2584 return MEMS_ERROR;
cparata 0:6a670fda63c2 2585
cparata 0:6a670fda63c2 2586 *value &= LSM6DSL_ACC_GYRO_SLEEP_G_MASK; //mask
cparata 0:6a670fda63c2 2587
cparata 0:6a670fda63c2 2588 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2589 }
cparata 0:6a670fda63c2 2590
cparata 0:6a670fda63c2 2591 /*******************************************************************************
cparata 0:6a670fda63c2 2592 * Function Name : LSM6DSL_ACC_GYRO_W_SelfTest_XL
cparata 0:6a670fda63c2 2593 * Description : Write ST_XL
cparata 0:6a670fda63c2 2594 * Input : LSM6DSL_ACC_GYRO_ST_XL_t
cparata 0:6a670fda63c2 2595 * Output : None
cparata 0:6a670fda63c2 2596 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2597 *******************************************************************************/
cparata 0:6a670fda63c2 2598 status_t LSM6DSL_ACC_GYRO_W_SelfTest_XL(void *handle, LSM6DSL_ACC_GYRO_ST_XL_t newValue)
cparata 0:6a670fda63c2 2599 {
cparata 0:6a670fda63c2 2600 u8_t value;
cparata 0:6a670fda63c2 2601
cparata 0:6a670fda63c2 2602 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:6a670fda63c2 2603 return MEMS_ERROR;
cparata 0:6a670fda63c2 2604
cparata 0:6a670fda63c2 2605 value &= ~LSM6DSL_ACC_GYRO_ST_XL_MASK;
cparata 0:6a670fda63c2 2606 value |= newValue;
cparata 0:6a670fda63c2 2607
cparata 0:6a670fda63c2 2608 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:6a670fda63c2 2609 return MEMS_ERROR;
cparata 0:6a670fda63c2 2610
cparata 0:6a670fda63c2 2611 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2612 }
cparata 0:6a670fda63c2 2613
cparata 0:6a670fda63c2 2614 /*******************************************************************************
cparata 0:6a670fda63c2 2615 * Function Name : LSM6DSL_ACC_GYRO_R_SelfTest_XL
cparata 0:6a670fda63c2 2616 * Description : Read ST_XL
cparata 0:6a670fda63c2 2617 * Input : Pointer to LSM6DSL_ACC_GYRO_ST_XL_t
cparata 0:6a670fda63c2 2618 * Output : Status of ST_XL see LSM6DSL_ACC_GYRO_ST_XL_t
cparata 0:6a670fda63c2 2619 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2620 *******************************************************************************/
cparata 0:6a670fda63c2 2621 status_t LSM6DSL_ACC_GYRO_R_SelfTest_XL(void *handle, LSM6DSL_ACC_GYRO_ST_XL_t *value)
cparata 0:6a670fda63c2 2622 {
cparata 0:6a670fda63c2 2623 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2624 return MEMS_ERROR;
cparata 0:6a670fda63c2 2625
cparata 0:6a670fda63c2 2626 *value &= LSM6DSL_ACC_GYRO_ST_XL_MASK; //mask
cparata 0:6a670fda63c2 2627
cparata 0:6a670fda63c2 2628 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2629 }
cparata 0:6a670fda63c2 2630
cparata 0:6a670fda63c2 2631 /*******************************************************************************
cparata 0:6a670fda63c2 2632 * Function Name : LSM6DSL_ACC_GYRO_W_SelfTest_G
cparata 0:6a670fda63c2 2633 * Description : Write ST_G
cparata 0:6a670fda63c2 2634 * Input : LSM6DSL_ACC_GYRO_ST_G_t
cparata 0:6a670fda63c2 2635 * Output : None
cparata 0:6a670fda63c2 2636 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2637 *******************************************************************************/
cparata 0:6a670fda63c2 2638 status_t LSM6DSL_ACC_GYRO_W_SelfTest_G(void *handle, LSM6DSL_ACC_GYRO_ST_G_t newValue)
cparata 0:6a670fda63c2 2639 {
cparata 0:6a670fda63c2 2640 u8_t value;
cparata 0:6a670fda63c2 2641
cparata 0:6a670fda63c2 2642 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:6a670fda63c2 2643 return MEMS_ERROR;
cparata 0:6a670fda63c2 2644
cparata 0:6a670fda63c2 2645 value &= ~LSM6DSL_ACC_GYRO_ST_G_MASK;
cparata 0:6a670fda63c2 2646 value |= newValue;
cparata 0:6a670fda63c2 2647
cparata 0:6a670fda63c2 2648 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:6a670fda63c2 2649 return MEMS_ERROR;
cparata 0:6a670fda63c2 2650
cparata 0:6a670fda63c2 2651 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2652 }
cparata 0:6a670fda63c2 2653
cparata 0:6a670fda63c2 2654 /*******************************************************************************
cparata 0:6a670fda63c2 2655 * Function Name : LSM6DSL_ACC_GYRO_R_SelfTest_G
cparata 0:6a670fda63c2 2656 * Description : Read ST_G
cparata 0:6a670fda63c2 2657 * Input : Pointer to LSM6DSL_ACC_GYRO_ST_G_t
cparata 0:6a670fda63c2 2658 * Output : Status of ST_G see LSM6DSL_ACC_GYRO_ST_G_t
cparata 0:6a670fda63c2 2659 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2660 *******************************************************************************/
cparata 0:6a670fda63c2 2661 status_t LSM6DSL_ACC_GYRO_R_SelfTest_G(void *handle, LSM6DSL_ACC_GYRO_ST_G_t *value)
cparata 0:6a670fda63c2 2662 {
cparata 0:6a670fda63c2 2663 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2664 return MEMS_ERROR;
cparata 0:6a670fda63c2 2665
cparata 0:6a670fda63c2 2666 *value &= LSM6DSL_ACC_GYRO_ST_G_MASK; //mask
cparata 0:6a670fda63c2 2667
cparata 0:6a670fda63c2 2668 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2669 }
cparata 0:6a670fda63c2 2670
cparata 0:6a670fda63c2 2671 /*******************************************************************************
cparata 0:6a670fda63c2 2672 * Function Name : LSM6DSL_ACC_GYRO_W_DEN_Polarity
cparata 0:6a670fda63c2 2673 * Description : Write DEN_LH
cparata 0:6a670fda63c2 2674 * Input : LSM6DSL_ACC_GYRO_DEN_LH_t
cparata 0:6a670fda63c2 2675 * Output : None
cparata 0:6a670fda63c2 2676 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2677 *******************************************************************************/
cparata 0:6a670fda63c2 2678 status_t LSM6DSL_ACC_GYRO_W_DEN_Polarity(void *handle, LSM6DSL_ACC_GYRO_DEN_LH_t newValue)
cparata 0:6a670fda63c2 2679 {
cparata 0:6a670fda63c2 2680 u8_t value;
cparata 0:6a670fda63c2 2681
cparata 0:6a670fda63c2 2682 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:6a670fda63c2 2683 return MEMS_ERROR;
cparata 0:6a670fda63c2 2684
cparata 0:6a670fda63c2 2685 value &= ~LSM6DSL_ACC_GYRO_DEN_LH_MASK;
cparata 0:6a670fda63c2 2686 value |= newValue;
cparata 0:6a670fda63c2 2687
cparata 0:6a670fda63c2 2688 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:6a670fda63c2 2689 return MEMS_ERROR;
cparata 0:6a670fda63c2 2690
cparata 0:6a670fda63c2 2691 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2692 }
cparata 0:6a670fda63c2 2693
cparata 0:6a670fda63c2 2694 /*******************************************************************************
cparata 0:6a670fda63c2 2695 * Function Name : LSM6DSL_ACC_GYRO_R_DEN_Polarity
cparata 0:6a670fda63c2 2696 * Description : Read DEN_LH
cparata 0:6a670fda63c2 2697 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_LH_t
cparata 0:6a670fda63c2 2698 * Output : Status of DEN_LH see LSM6DSL_ACC_GYRO_DEN_LH_t
cparata 0:6a670fda63c2 2699 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2700 *******************************************************************************/
cparata 0:6a670fda63c2 2701 status_t LSM6DSL_ACC_GYRO_R_DEN_Polarity(void *handle, LSM6DSL_ACC_GYRO_DEN_LH_t *value)
cparata 0:6a670fda63c2 2702 {
cparata 0:6a670fda63c2 2703 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2704 return MEMS_ERROR;
cparata 0:6a670fda63c2 2705
cparata 0:6a670fda63c2 2706 *value &= LSM6DSL_ACC_GYRO_DEN_LH_MASK; //mask
cparata 0:6a670fda63c2 2707
cparata 0:6a670fda63c2 2708 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2709 }
cparata 0:6a670fda63c2 2710
cparata 0:6a670fda63c2 2711 /*******************************************************************************
cparata 0:6a670fda63c2 2712 * Function Name : LSM6DSL_ACC_GYRO_W_CircularBurstMode
cparata 0:6a670fda63c2 2713 * Description : Write ST_ROUNDING
cparata 0:6a670fda63c2 2714 * Input : LSM6DSL_ACC_GYRO_ROUNDING_t
cparata 0:6a670fda63c2 2715 * Output : None
cparata 0:6a670fda63c2 2716 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2717 *******************************************************************************/
cparata 0:6a670fda63c2 2718 status_t LSM6DSL_ACC_GYRO_W_CircularBurstMode(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_t newValue)
cparata 0:6a670fda63c2 2719 {
cparata 0:6a670fda63c2 2720 u8_t value;
cparata 0:6a670fda63c2 2721
cparata 0:6a670fda63c2 2722 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1))
cparata 0:6a670fda63c2 2723 return MEMS_ERROR;
cparata 0:6a670fda63c2 2724
cparata 0:6a670fda63c2 2725 value &= ~LSM6DSL_ACC_GYRO_LSM6DSL_ACC_GYRO_ROUNDING_t_MASK;
cparata 0:6a670fda63c2 2726 value |= newValue;
cparata 0:6a670fda63c2 2727
cparata 0:6a670fda63c2 2728 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, &value, 1) )
cparata 0:6a670fda63c2 2729 return MEMS_ERROR;
cparata 0:6a670fda63c2 2730
cparata 0:6a670fda63c2 2731 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2732 }
cparata 0:6a670fda63c2 2733
cparata 0:6a670fda63c2 2734 /*******************************************************************************
cparata 0:6a670fda63c2 2735 * Function Name : LSM6DSL_ACC_GYRO_R_CircularBurstMode
cparata 0:6a670fda63c2 2736 * Description : Read ST_ROUNDING
cparata 0:6a670fda63c2 2737 * Input : Pointer to LSM6DSL_ACC_GYRO_ROUNDING_t
cparata 0:6a670fda63c2 2738 * Output : Status of ST_ROUNDING see LSM6DSL_ACC_GYRO_ROUNDING_t
cparata 0:6a670fda63c2 2739 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2740 *******************************************************************************/
cparata 0:6a670fda63c2 2741 status_t LSM6DSL_ACC_GYRO_R_CircularBurstMode(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_t *value)
cparata 0:6a670fda63c2 2742 {
cparata 0:6a670fda63c2 2743 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL5_C, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2744 return MEMS_ERROR;
cparata 0:6a670fda63c2 2745
cparata 0:6a670fda63c2 2746 *value &= LSM6DSL_ACC_GYRO_LSM6DSL_ACC_GYRO_ROUNDING_t_MASK; //mask
cparata 0:6a670fda63c2 2747
cparata 0:6a670fda63c2 2748 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2749 }
cparata 0:6a670fda63c2 2750
cparata 0:6a670fda63c2 2751 /*******************************************************************************
cparata 0:6a670fda63c2 2752 * Function Name : LSM6DSL_ACC_GYRO_W_LP_BW_G
cparata 0:6a670fda63c2 2753 * Description : Write FTYPE
cparata 0:6a670fda63c2 2754 * Input : LSM6DSL_ACC_GYRO_FTYPE_t
cparata 0:6a670fda63c2 2755 * Output : None
cparata 0:6a670fda63c2 2756 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2757 *******************************************************************************/
cparata 0:6a670fda63c2 2758 status_t LSM6DSL_ACC_GYRO_W_LP_BW_G(void *handle, LSM6DSL_ACC_GYRO_FTYPE_t newValue)
cparata 0:6a670fda63c2 2759 {
cparata 0:6a670fda63c2 2760 u8_t value;
cparata 0:6a670fda63c2 2761
cparata 0:6a670fda63c2 2762 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:6a670fda63c2 2763 return MEMS_ERROR;
cparata 0:6a670fda63c2 2764
cparata 0:6a670fda63c2 2765 value &= ~LSM6DSL_ACC_GYRO_FTYPE_MASK;
cparata 0:6a670fda63c2 2766 value |= newValue;
cparata 0:6a670fda63c2 2767
cparata 0:6a670fda63c2 2768 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:6a670fda63c2 2769 return MEMS_ERROR;
cparata 0:6a670fda63c2 2770
cparata 0:6a670fda63c2 2771 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2772 }
cparata 0:6a670fda63c2 2773
cparata 0:6a670fda63c2 2774 /*******************************************************************************
cparata 0:6a670fda63c2 2775 * Function Name : LSM6DSL_ACC_GYRO_R_LP_BW_G
cparata 0:6a670fda63c2 2776 * Description : Read FTYPE
cparata 0:6a670fda63c2 2777 * Input : Pointer to LSM6DSL_ACC_GYRO_FTYPE_t
cparata 0:6a670fda63c2 2778 * Output : Status of FTYPE see LSM6DSL_ACC_GYRO_FTYPE_t
cparata 0:6a670fda63c2 2779 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2780 *******************************************************************************/
cparata 0:6a670fda63c2 2781 status_t LSM6DSL_ACC_GYRO_R_LP_BW_G(void *handle, LSM6DSL_ACC_GYRO_FTYPE_t *value)
cparata 0:6a670fda63c2 2782 {
cparata 0:6a670fda63c2 2783 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2784 return MEMS_ERROR;
cparata 0:6a670fda63c2 2785
cparata 0:6a670fda63c2 2786 *value &= LSM6DSL_ACC_GYRO_FTYPE_MASK; //mask
cparata 0:6a670fda63c2 2787
cparata 0:6a670fda63c2 2788 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2789 }
cparata 0:6a670fda63c2 2790
cparata 0:6a670fda63c2 2791 /*******************************************************************************
cparata 0:6a670fda63c2 2792 * Function Name : LSM6DSL_ACC_GYRO_W_UserOffsetWeight
cparata 0:6a670fda63c2 2793 * Description : Write USR_OFF_W
cparata 0:6a670fda63c2 2794 * Input : LSM6DSL_ACC_GYRO_USR_OFF_W_t
cparata 0:6a670fda63c2 2795 * Output : None
cparata 0:6a670fda63c2 2796 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2797 *******************************************************************************/
cparata 0:6a670fda63c2 2798 status_t LSM6DSL_ACC_GYRO_W_UserOffsetWeight(void *handle, LSM6DSL_ACC_GYRO_USR_OFF_W_t newValue)
cparata 0:6a670fda63c2 2799 {
cparata 0:6a670fda63c2 2800 u8_t value;
cparata 0:6a670fda63c2 2801
cparata 0:6a670fda63c2 2802 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:6a670fda63c2 2803 return MEMS_ERROR;
cparata 0:6a670fda63c2 2804
cparata 0:6a670fda63c2 2805 value &= ~LSM6DSL_ACC_GYRO_USR_OFF_W_MASK;
cparata 0:6a670fda63c2 2806 value |= newValue;
cparata 0:6a670fda63c2 2807
cparata 0:6a670fda63c2 2808 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:6a670fda63c2 2809 return MEMS_ERROR;
cparata 0:6a670fda63c2 2810
cparata 0:6a670fda63c2 2811 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2812 }
cparata 0:6a670fda63c2 2813
cparata 0:6a670fda63c2 2814 /*******************************************************************************
cparata 0:6a670fda63c2 2815 * Function Name : LSM6DSL_ACC_GYRO_R_UserOffsetWeight
cparata 0:6a670fda63c2 2816 * Description : Read USR_OFF_W
cparata 0:6a670fda63c2 2817 * Input : Pointer to LSM6DSL_ACC_GYRO_USR_OFF_W_t
cparata 0:6a670fda63c2 2818 * Output : Status of USR_OFF_W see LSM6DSL_ACC_GYRO_USR_OFF_W_t
cparata 0:6a670fda63c2 2819 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2820 *******************************************************************************/
cparata 0:6a670fda63c2 2821 status_t LSM6DSL_ACC_GYRO_R_UserOffsetWeight(void *handle, LSM6DSL_ACC_GYRO_USR_OFF_W_t *value)
cparata 0:6a670fda63c2 2822 {
cparata 0:6a670fda63c2 2823 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2824 return MEMS_ERROR;
cparata 0:6a670fda63c2 2825
cparata 0:6a670fda63c2 2826 *value &= LSM6DSL_ACC_GYRO_USR_OFF_W_MASK; //mask
cparata 0:6a670fda63c2 2827
cparata 0:6a670fda63c2 2828 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2829 }
cparata 0:6a670fda63c2 2830
cparata 0:6a670fda63c2 2831 /*******************************************************************************
cparata 0:6a670fda63c2 2832 * Function Name : LSM6DSL_ACC_GYRO_W_LowPower_XL
cparata 0:6a670fda63c2 2833 * Description : Write LP_XL
cparata 0:6a670fda63c2 2834 * Input : LSM6DSL_ACC_GYRO_LP_XL_t
cparata 0:6a670fda63c2 2835 * Output : None
cparata 0:6a670fda63c2 2836 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2837 *******************************************************************************/
cparata 0:6a670fda63c2 2838 status_t LSM6DSL_ACC_GYRO_W_LowPower_XL(void *handle, LSM6DSL_ACC_GYRO_LP_XL_t newValue)
cparata 0:6a670fda63c2 2839 {
cparata 0:6a670fda63c2 2840 u8_t value;
cparata 0:6a670fda63c2 2841
cparata 0:6a670fda63c2 2842 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:6a670fda63c2 2843 return MEMS_ERROR;
cparata 0:6a670fda63c2 2844
cparata 0:6a670fda63c2 2845 value &= ~LSM6DSL_ACC_GYRO_LP_XL_MASK;
cparata 0:6a670fda63c2 2846 value |= newValue;
cparata 0:6a670fda63c2 2847
cparata 0:6a670fda63c2 2848 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:6a670fda63c2 2849 return MEMS_ERROR;
cparata 0:6a670fda63c2 2850
cparata 0:6a670fda63c2 2851 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2852 }
cparata 0:6a670fda63c2 2853
cparata 0:6a670fda63c2 2854 /*******************************************************************************
cparata 0:6a670fda63c2 2855 * Function Name : LSM6DSL_ACC_GYRO_R_LowPower_XL
cparata 0:6a670fda63c2 2856 * Description : Read LP_XL
cparata 0:6a670fda63c2 2857 * Input : Pointer to LSM6DSL_ACC_GYRO_LP_XL_t
cparata 0:6a670fda63c2 2858 * Output : Status of LP_XL see LSM6DSL_ACC_GYRO_LP_XL_t
cparata 0:6a670fda63c2 2859 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2860 *******************************************************************************/
cparata 0:6a670fda63c2 2861 status_t LSM6DSL_ACC_GYRO_R_LowPower_XL(void *handle, LSM6DSL_ACC_GYRO_LP_XL_t *value)
cparata 0:6a670fda63c2 2862 {
cparata 0:6a670fda63c2 2863 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2864 return MEMS_ERROR;
cparata 0:6a670fda63c2 2865
cparata 0:6a670fda63c2 2866 *value &= LSM6DSL_ACC_GYRO_LP_XL_MASK; //mask
cparata 0:6a670fda63c2 2867
cparata 0:6a670fda63c2 2868 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2869 }
cparata 0:6a670fda63c2 2870 /*******************************************************************************
cparata 0:6a670fda63c2 2871 * Function Name : LSM6DSL_ACC_GYRO_W_DEN_LVL2_EN
cparata 0:6a670fda63c2 2872 * Description : Write DEN_LVL2_EN
cparata 0:6a670fda63c2 2873 * Input : LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t
cparata 0:6a670fda63c2 2874 * Output : None
cparata 0:6a670fda63c2 2875 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2876 *******************************************************************************/
cparata 0:6a670fda63c2 2877 status_t LSM6DSL_ACC_GYRO_W_DEN_LVL2_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t newValue)
cparata 0:6a670fda63c2 2878 {
cparata 0:6a670fda63c2 2879 u8_t value;
cparata 0:6a670fda63c2 2880
cparata 0:6a670fda63c2 2881 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:6a670fda63c2 2882 return MEMS_ERROR;
cparata 0:6a670fda63c2 2883
cparata 0:6a670fda63c2 2884 value &= ~LSM6DSL_ACC_GYRO_DEN_LVL2_EN_MASK;
cparata 0:6a670fda63c2 2885 value |= newValue;
cparata 0:6a670fda63c2 2886
cparata 0:6a670fda63c2 2887 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:6a670fda63c2 2888 return MEMS_ERROR;
cparata 0:6a670fda63c2 2889
cparata 0:6a670fda63c2 2890 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2891 }
cparata 0:6a670fda63c2 2892
cparata 0:6a670fda63c2 2893 /*******************************************************************************
cparata 0:6a670fda63c2 2894 * Function Name : LSM6DSL_ACC_GYRO_R_DEN_LVL2_EN
cparata 0:6a670fda63c2 2895 * Description : Read DEN_LVL2_EN
cparata 0:6a670fda63c2 2896 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t
cparata 0:6a670fda63c2 2897 * Output : Status of DEN_LVL2_EN see LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t
cparata 0:6a670fda63c2 2898 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2899 *******************************************************************************/
cparata 0:6a670fda63c2 2900 status_t LSM6DSL_ACC_GYRO_R_DEN_LVL2_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL2_EN_t *value)
cparata 0:6a670fda63c2 2901 {
cparata 0:6a670fda63c2 2902 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 2903 return MEMS_ERROR;
cparata 0:6a670fda63c2 2904
cparata 0:6a670fda63c2 2905 *value &= LSM6DSL_ACC_GYRO_DEN_LVL2_EN_MASK; //mask
cparata 0:6a670fda63c2 2906
cparata 0:6a670fda63c2 2907 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2908 }
cparata 0:6a670fda63c2 2909 /*******************************************************************************
cparata 0:6a670fda63c2 2910 * Function Name : LSM6DSL_ACC_GYRO_W_DEN_LVL_EN
cparata 0:6a670fda63c2 2911 * Description : Write DEN_LVL_EN
cparata 0:6a670fda63c2 2912 * Input : LSM6DSL_ACC_GYRO_DEN_LVL_EN_t
cparata 0:6a670fda63c2 2913 * Output : None
cparata 0:6a670fda63c2 2914 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2915 *******************************************************************************/
cparata 0:6a670fda63c2 2916 status_t LSM6DSL_ACC_GYRO_W_DEN_LVL_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL_EN_t newValue)
cparata 0:6a670fda63c2 2917 {
cparata 0:6a670fda63c2 2918 u8_t value;
cparata 0:6a670fda63c2 2919
cparata 0:6a670fda63c2 2920 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1))
cparata 0:6a670fda63c2 2921 return MEMS_ERROR;
cparata 0:6a670fda63c2 2922
cparata 0:6a670fda63c2 2923 value &= ~LSM6DSL_ACC_GYRO_DEN_LVL_EN_MASK;
cparata 0:6a670fda63c2 2924 value |= newValue;
cparata 0:6a670fda63c2 2925
cparata 0:6a670fda63c2 2926 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:6a670fda63c2 2927 return MEMS_ERROR;
cparata 0:6a670fda63c2 2928
cparata 0:6a670fda63c2 2929 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2930 }
cparata 0:6a670fda63c2 2931
cparata 0:6a670fda63c2 2932 /*******************************************************************************
cparata 0:6a670fda63c2 2933 * Function Name : LSM6DSL_ACC_GYRO_R_DEN_LVL_EN
cparata 0:6a670fda63c2 2934 * Description : Read DEN_LVL_EN
cparata 0:6a670fda63c2 2935 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_LVL_EN_t
cparata 0:6a670fda63c2 2936 * Output : Status of DEN_LVL_EN see LSM6DSL_ACC_GYRO_DEN_LVL_EN_t
cparata 0:6a670fda63c2 2937 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2938 *******************************************************************************/
cparata 0:6a670fda63c2 2939 status_t LSM6DSL_ACC_GYRO_R_DEN_LVL_EN(void *handle, LSM6DSL_ACC_GYRO_DEN_LVL_EN_t *value)
cparata 0:6a670fda63c2 2940 {
cparata 0:6a670fda63c2 2941 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 2942 return MEMS_ERROR;
cparata 0:6a670fda63c2 2943
cparata 0:6a670fda63c2 2944 *value &= LSM6DSL_ACC_GYRO_DEN_LVL_EN_MASK; //mask
cparata 0:6a670fda63c2 2945
cparata 0:6a670fda63c2 2946 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2947 }
cparata 0:6a670fda63c2 2948 /*******************************************************************************
cparata 0:6a670fda63c2 2949 * Function Name : LSM6DSL_ACC_GYRO_W_ExternalTrigger
cparata 0:6a670fda63c2 2950 * Description : Write DEN_EDGE_EN
cparata 0:6a670fda63c2 2951 * Input : LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t
cparata 0:6a670fda63c2 2952 * Output : None
cparata 0:6a670fda63c2 2953 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2954 *******************************************************************************/
cparata 0:6a670fda63c2 2955 status_t LSM6DSL_ACC_GYRO_W_ExternalTrigger(void *handle, LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t newValue)
cparata 0:6a670fda63c2 2956 {
cparata 0:6a670fda63c2 2957 u8_t value;
cparata 0:6a670fda63c2 2958
cparata 0:6a670fda63c2 2959 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:6a670fda63c2 2960 return MEMS_ERROR;
cparata 0:6a670fda63c2 2961
cparata 0:6a670fda63c2 2962 value &= ~LSM6DSL_ACC_GYRO_DEN_EDGE_EN_MASK;
cparata 0:6a670fda63c2 2963 value |= newValue;
cparata 0:6a670fda63c2 2964
cparata 0:6a670fda63c2 2965 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, &value, 1) )
cparata 0:6a670fda63c2 2966 return MEMS_ERROR;
cparata 0:6a670fda63c2 2967
cparata 0:6a670fda63c2 2968 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2969 }
cparata 0:6a670fda63c2 2970
cparata 0:6a670fda63c2 2971 /*******************************************************************************
cparata 0:6a670fda63c2 2972 * Function Name : LSM6DSL_ACC_GYRO_R_ExternalTrigger
cparata 0:6a670fda63c2 2973 * Description : Read DEN_EDGE_EN
cparata 0:6a670fda63c2 2974 * Input : Pointer to LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t
cparata 0:6a670fda63c2 2975 * Output : Status of DEN_EDGE_EN see LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t
cparata 0:6a670fda63c2 2976 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2977 *******************************************************************************/
cparata 0:6a670fda63c2 2978 status_t LSM6DSL_ACC_GYRO_R_ExternalTrigger(void *handle, LSM6DSL_ACC_GYRO_DEN_EDGE_EN_t *value)
cparata 0:6a670fda63c2 2979 {
cparata 0:6a670fda63c2 2980 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL6_G, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 2981 return MEMS_ERROR;
cparata 0:6a670fda63c2 2982
cparata 0:6a670fda63c2 2983 *value &= LSM6DSL_ACC_GYRO_DEN_EDGE_EN_MASK; //mask
cparata 0:6a670fda63c2 2984
cparata 0:6a670fda63c2 2985 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 2986 }
cparata 0:6a670fda63c2 2987
cparata 0:6a670fda63c2 2988 /*******************************************************************************
cparata 0:6a670fda63c2 2989 * Function Name : LSM6DSL_ACC_GYRO_W_HPM_G
cparata 0:6a670fda63c2 2990 * Description : Write HPM_G
cparata 0:6a670fda63c2 2991 * Input : LSM6DSL_ACC_GYRO_HPM_G_t
cparata 0:6a670fda63c2 2992 * Output : None
cparata 0:6a670fda63c2 2993 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 2994 *******************************************************************************/
cparata 0:6a670fda63c2 2995 status_t LSM6DSL_ACC_GYRO_W_HPM_G(void *handle, LSM6DSL_ACC_GYRO_HPM_G_t newValue)
cparata 0:6a670fda63c2 2996 {
cparata 0:6a670fda63c2 2997 u8_t value;
cparata 0:6a670fda63c2 2998
cparata 0:6a670fda63c2 2999 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3000 return MEMS_ERROR;
cparata 0:6a670fda63c2 3001
cparata 0:6a670fda63c2 3002 value &= ~LSM6DSL_ACC_GYRO_HPM_G_MASK;
cparata 0:6a670fda63c2 3003 value |= newValue;
cparata 0:6a670fda63c2 3004
cparata 0:6a670fda63c2 3005 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3006 return MEMS_ERROR;
cparata 0:6a670fda63c2 3007
cparata 0:6a670fda63c2 3008 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3009 }
cparata 0:6a670fda63c2 3010
cparata 0:6a670fda63c2 3011 /*******************************************************************************
cparata 0:6a670fda63c2 3012 * Function Name : LSM6DSL_ACC_GYRO_R_HPM_G
cparata 0:6a670fda63c2 3013 * Description : Read HPM_G
cparata 0:6a670fda63c2 3014 * Input : Pointer to LSM6DSL_ACC_GYRO_HPM_G_t
cparata 0:6a670fda63c2 3015 * Output : Status of HPM_G see LSM6DSL_ACC_GYRO_HPM_G_t
cparata 0:6a670fda63c2 3016 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3017 *******************************************************************************/
cparata 0:6a670fda63c2 3018 status_t LSM6DSL_ACC_GYRO_R_HPM_G(void *handle, LSM6DSL_ACC_GYRO_HPM_G_t *value)
cparata 0:6a670fda63c2 3019 {
cparata 0:6a670fda63c2 3020 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3021 return MEMS_ERROR;
cparata 0:6a670fda63c2 3022
cparata 0:6a670fda63c2 3023 *value &= LSM6DSL_ACC_GYRO_HPM_G_MASK; //mask
cparata 0:6a670fda63c2 3024
cparata 0:6a670fda63c2 3025 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3026 }
cparata 0:6a670fda63c2 3027
cparata 0:6a670fda63c2 3028 /*******************************************************************************
cparata 0:6a670fda63c2 3029 * Function Name : LSM6DSL_ACC_GYRO_W_RoundingOnStatusRegisters
cparata 0:6a670fda63c2 3030 * Description : Write HPM_G
cparata 0:6a670fda63c2 3031 * Input : LSM6DSL_ACC_GYRO_RND_STATUS_t
cparata 0:6a670fda63c2 3032 * Output : None
cparata 0:6a670fda63c2 3033 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3034 *******************************************************************************/
cparata 0:6a670fda63c2 3035 status_t LSM6DSL_ACC_GYRO_W_RoundingOnStatusRegisters(void *handle, LSM6DSL_ACC_GYRO_RND_STATUS_t newValue)
cparata 0:6a670fda63c2 3036 {
cparata 0:6a670fda63c2 3037 u8_t value;
cparata 0:6a670fda63c2 3038
cparata 0:6a670fda63c2 3039 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3040 return MEMS_ERROR;
cparata 0:6a670fda63c2 3041
cparata 0:6a670fda63c2 3042 value &= ~LSM6DSL_ACC_GYRO_RND_STATUS_MASK;
cparata 0:6a670fda63c2 3043 value |= newValue;
cparata 0:6a670fda63c2 3044
cparata 0:6a670fda63c2 3045 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3046 return MEMS_ERROR;
cparata 0:6a670fda63c2 3047
cparata 0:6a670fda63c2 3048 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3049 }
cparata 0:6a670fda63c2 3050
cparata 0:6a670fda63c2 3051 /*******************************************************************************
cparata 0:6a670fda63c2 3052 * Function Name : LSM6DSL_ACC_GYRO_R_RoundingOnStatusRegisters
cparata 0:6a670fda63c2 3053 * Description : Read HPM_G
cparata 0:6a670fda63c2 3054 * Input : Pointer to LSM6DSL_ACC_GYRO_RND_STATUS_t
cparata 0:6a670fda63c2 3055 * Output : Status of HPM_G see LSM6DSL_ACC_GYRO_RND_STATUS_t
cparata 0:6a670fda63c2 3056 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3057 *******************************************************************************/
cparata 0:6a670fda63c2 3058 status_t LSM6DSL_ACC_GYRO_R_RoundingOnStatusRegisters(void *handle, LSM6DSL_ACC_GYRO_RND_STATUS_t *value)
cparata 0:6a670fda63c2 3059 {
cparata 0:6a670fda63c2 3060 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1))
cparata 0:6a670fda63c2 3061 return MEMS_ERROR;
cparata 0:6a670fda63c2 3062
cparata 0:6a670fda63c2 3063 *value &= LSM6DSL_ACC_GYRO_RND_STATUS_MASK; //mask
cparata 0:6a670fda63c2 3064
cparata 0:6a670fda63c2 3065 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3066 }
cparata 0:6a670fda63c2 3067
cparata 0:6a670fda63c2 3068 /*******************************************************************************
cparata 0:6a670fda63c2 3069 * Function Name : LSM6DSL_ACC_GYRO_W_HPFilter_En
cparata 0:6a670fda63c2 3070 * Description : Write HP_EN
cparata 0:6a670fda63c2 3071 * Input : LSM6DSL_ACC_GYRO_HP_EN_t
cparata 0:6a670fda63c2 3072 * Output : None
cparata 0:6a670fda63c2 3073 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3074 *******************************************************************************/
cparata 0:6a670fda63c2 3075 status_t LSM6DSL_ACC_GYRO_W_HPFilter_En(void *handle, LSM6DSL_ACC_GYRO_HP_EN_t newValue)
cparata 0:6a670fda63c2 3076 {
cparata 0:6a670fda63c2 3077 u8_t value;
cparata 0:6a670fda63c2 3078
cparata 0:6a670fda63c2 3079 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3080 return MEMS_ERROR;
cparata 0:6a670fda63c2 3081
cparata 0:6a670fda63c2 3082 value &= ~LSM6DSL_ACC_GYRO_HP_EN_MASK;
cparata 0:6a670fda63c2 3083 value |= newValue;
cparata 0:6a670fda63c2 3084
cparata 0:6a670fda63c2 3085 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3086 return MEMS_ERROR;
cparata 0:6a670fda63c2 3087
cparata 0:6a670fda63c2 3088 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3089 }
cparata 0:6a670fda63c2 3090
cparata 0:6a670fda63c2 3091 /*******************************************************************************
cparata 0:6a670fda63c2 3092 * Function Name : LSM6DSL_ACC_GYRO_R_HPFilter_En
cparata 0:6a670fda63c2 3093 * Description : Read HP_EN
cparata 0:6a670fda63c2 3094 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_EN_t
cparata 0:6a670fda63c2 3095 * Output : Status of HP_EN see LSM6DSL_ACC_GYRO_HP_EN_t
cparata 0:6a670fda63c2 3096 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3097 *******************************************************************************/
cparata 0:6a670fda63c2 3098 status_t LSM6DSL_ACC_GYRO_R_HPFilter_En(void *handle, LSM6DSL_ACC_GYRO_HP_EN_t *value)
cparata 0:6a670fda63c2 3099 {
cparata 0:6a670fda63c2 3100 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3101 return MEMS_ERROR;
cparata 0:6a670fda63c2 3102
cparata 0:6a670fda63c2 3103 *value &= LSM6DSL_ACC_GYRO_HP_EN_MASK; //mask
cparata 0:6a670fda63c2 3104
cparata 0:6a670fda63c2 3105 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3106 }
cparata 0:6a670fda63c2 3107 /*******************************************************************************
cparata 0:6a670fda63c2 3108 * Function Name : LSM6DSL_ACC_GYRO_W_LP_Mode
cparata 0:6a670fda63c2 3109 * Description : Write LP_EN
cparata 0:6a670fda63c2 3110 * Input : LSM6DSL_ACC_GYRO_LP_EN_t
cparata 0:6a670fda63c2 3111 * Output : None
cparata 0:6a670fda63c2 3112 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3113 *******************************************************************************/
cparata 0:6a670fda63c2 3114 status_t LSM6DSL_ACC_GYRO_W_LP_Mode(void *handle, LSM6DSL_ACC_GYRO_LP_EN_t newValue)
cparata 0:6a670fda63c2 3115 {
cparata 0:6a670fda63c2 3116 u8_t value;
cparata 0:6a670fda63c2 3117
cparata 0:6a670fda63c2 3118 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3119 return MEMS_ERROR;
cparata 0:6a670fda63c2 3120
cparata 0:6a670fda63c2 3121 value &= ~LSM6DSL_ACC_GYRO_LP_EN_MASK;
cparata 0:6a670fda63c2 3122 value |= newValue;
cparata 0:6a670fda63c2 3123
cparata 0:6a670fda63c2 3124 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3125 return MEMS_ERROR;
cparata 0:6a670fda63c2 3126
cparata 0:6a670fda63c2 3127 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3128 }
cparata 0:6a670fda63c2 3129
cparata 0:6a670fda63c2 3130 /*******************************************************************************
cparata 0:6a670fda63c2 3131 * Function Name : LSM6DSL_ACC_GYRO_R_LP_Mode
cparata 0:6a670fda63c2 3132 * Description : Read LP_EN
cparata 0:6a670fda63c2 3133 * Input : Pointer to LSM6DSL_ACC_GYRO_LP_EN_t
cparata 0:6a670fda63c2 3134 * Output : Status of LP_EN see LSM6DSL_ACC_GYRO_LP_EN_t
cparata 0:6a670fda63c2 3135 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3136 *******************************************************************************/
cparata 0:6a670fda63c2 3137 status_t LSM6DSL_ACC_GYRO_R_LP_Mode(void *handle, LSM6DSL_ACC_GYRO_LP_EN_t *value)
cparata 0:6a670fda63c2 3138 {
cparata 0:6a670fda63c2 3139 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3140 return MEMS_ERROR;
cparata 0:6a670fda63c2 3141
cparata 0:6a670fda63c2 3142 *value &= LSM6DSL_ACC_GYRO_LP_EN_MASK; //mask
cparata 0:6a670fda63c2 3143
cparata 0:6a670fda63c2 3144 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3145 }
cparata 0:6a670fda63c2 3146
cparata 0:6a670fda63c2 3147 /*******************************************************************************
cparata 0:6a670fda63c2 3148 * Function Name : LSM6DSL_ACC_GYRO_W_ROUNDING_STATUS
cparata 0:6a670fda63c2 3149 * Description : Write ROUNDING_STATUS
cparata 0:6a670fda63c2 3150 * Input : LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t
cparata 0:6a670fda63c2 3151 * Output : None
cparata 0:6a670fda63c2 3152 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3153 *******************************************************************************/
cparata 0:6a670fda63c2 3154 status_t LSM6DSL_ACC_GYRO_W_ROUNDING_STATUS(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t newValue)
cparata 0:6a670fda63c2 3155 {
cparata 0:6a670fda63c2 3156 u8_t value;
cparata 0:6a670fda63c2 3157
cparata 0:6a670fda63c2 3158 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3159 return MEMS_ERROR;
cparata 0:6a670fda63c2 3160
cparata 0:6a670fda63c2 3161 value &= ~LSM6DSL_ACC_GYRO_ROUNDING_STATUS_MASK;
cparata 0:6a670fda63c2 3162 value |= newValue;
cparata 0:6a670fda63c2 3163
cparata 0:6a670fda63c2 3164 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3165 return MEMS_ERROR;
cparata 0:6a670fda63c2 3166
cparata 0:6a670fda63c2 3167 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3168 }
cparata 0:6a670fda63c2 3169
cparata 0:6a670fda63c2 3170 /*******************************************************************************
cparata 0:6a670fda63c2 3171 * Function Name : LSM6DSL_ACC_GYRO_R_ROUNDING_STATUS
cparata 0:6a670fda63c2 3172 * Description : Read ROUNDING_STATUS
cparata 0:6a670fda63c2 3173 * Input : Pointer to LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t
cparata 0:6a670fda63c2 3174 * Output : Status of ROUNDING_STATUS see LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t
cparata 0:6a670fda63c2 3175 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3176 *******************************************************************************/
cparata 0:6a670fda63c2 3177 status_t LSM6DSL_ACC_GYRO_R_ROUNDING_STATUS(void *handle, LSM6DSL_ACC_GYRO_ROUNDING_STATUS_t *value)
cparata 0:6a670fda63c2 3178 {
cparata 0:6a670fda63c2 3179 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3180 return MEMS_ERROR;
cparata 0:6a670fda63c2 3181
cparata 0:6a670fda63c2 3182 *value &= LSM6DSL_ACC_GYRO_ROUNDING_STATUS_MASK; //mask
cparata 0:6a670fda63c2 3183
cparata 0:6a670fda63c2 3184 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3185 }
cparata 0:6a670fda63c2 3186
cparata 0:6a670fda63c2 3187 /*******************************************************************************
cparata 0:6a670fda63c2 3188 * Function Name : LSM6DSL_ACC_GYRO_W_HP_G_RST
cparata 0:6a670fda63c2 3189 * Description : Write HP_G_RST
cparata 0:6a670fda63c2 3190 * Input : LSM6DSL_ACC_GYRO_HP_G_RST_t
cparata 0:6a670fda63c2 3191 * Output : None
cparata 0:6a670fda63c2 3192 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3193 *******************************************************************************/
cparata 0:6a670fda63c2 3194 status_t LSM6DSL_ACC_GYRO_W_HP_G_RST(void *handle, LSM6DSL_ACC_GYRO_HP_G_RST_t newValue)
cparata 0:6a670fda63c2 3195 {
cparata 0:6a670fda63c2 3196 u8_t value;
cparata 0:6a670fda63c2 3197
cparata 0:6a670fda63c2 3198 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3199 return MEMS_ERROR;
cparata 0:6a670fda63c2 3200
cparata 0:6a670fda63c2 3201 value &= ~LSM6DSL_ACC_GYRO_HP_G_RST_MASK;
cparata 0:6a670fda63c2 3202 value |= newValue;
cparata 0:6a670fda63c2 3203
cparata 0:6a670fda63c2 3204 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, &value, 1) )
cparata 0:6a670fda63c2 3205 return MEMS_ERROR;
cparata 0:6a670fda63c2 3206
cparata 0:6a670fda63c2 3207 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3208 }
cparata 0:6a670fda63c2 3209
cparata 0:6a670fda63c2 3210 /*******************************************************************************
cparata 0:6a670fda63c2 3211 * Function Name : LSM6DSL_ACC_GYRO_R_HP_G_RST
cparata 0:6a670fda63c2 3212 * Description : Read HP_G_RST
cparata 0:6a670fda63c2 3213 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_G_RST_t
cparata 0:6a670fda63c2 3214 * Output : Status of HP_G_RST see LSM6DSL_ACC_GYRO_HP_G_RST_t
cparata 0:6a670fda63c2 3215 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3216 *******************************************************************************/
cparata 0:6a670fda63c2 3217 status_t LSM6DSL_ACC_GYRO_R_HP_G_RST(void *handle, LSM6DSL_ACC_GYRO_HP_G_RST_t *value)
cparata 0:6a670fda63c2 3218 {
cparata 0:6a670fda63c2 3219 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL7_G, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3220 return MEMS_ERROR;
cparata 0:6a670fda63c2 3221
cparata 0:6a670fda63c2 3222 *value &= LSM6DSL_ACC_GYRO_HP_G_RST_MASK; //mask
cparata 0:6a670fda63c2 3223
cparata 0:6a670fda63c2 3224 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3225 }
cparata 0:6a670fda63c2 3226
cparata 0:6a670fda63c2 3227 /*******************************************************************************
cparata 0:6a670fda63c2 3228 * Function Name : LSM6DSL_ACC_GYRO_W_InComposit
cparata 0:6a670fda63c2 3229 * Description : Write INPUT_COMPOSITE
cparata 0:6a670fda63c2 3230 * Input : LSM6DSL_ACC_GYRO_IN_COMP_t
cparata 0:6a670fda63c2 3231 * Output : None
cparata 0:6a670fda63c2 3232 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3233 *******************************************************************************/
cparata 0:6a670fda63c2 3234 status_t LSM6DSL_ACC_GYRO_W_InComposit(void *handle, LSM6DSL_ACC_GYRO_IN_COMP_t newValue)
cparata 0:6a670fda63c2 3235 {
cparata 0:6a670fda63c2 3236 u8_t value;
cparata 0:6a670fda63c2 3237
cparata 0:6a670fda63c2 3238 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3239 return MEMS_ERROR;
cparata 0:6a670fda63c2 3240
cparata 0:6a670fda63c2 3241 value &= ~LSM6DSL_ACC_GYRO_IN_COMP_MASK;
cparata 0:6a670fda63c2 3242 value |= newValue;
cparata 0:6a670fda63c2 3243
cparata 0:6a670fda63c2 3244 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3245 return MEMS_ERROR;
cparata 0:6a670fda63c2 3246
cparata 0:6a670fda63c2 3247 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3248 }
cparata 0:6a670fda63c2 3249
cparata 0:6a670fda63c2 3250 /*******************************************************************************
cparata 0:6a670fda63c2 3251 * Function Name : LSM6DSL_ACC_GYRO_R_InComposit
cparata 0:6a670fda63c2 3252 * Description : Read INPUT_COMPOSITE
cparata 0:6a670fda63c2 3253 * Input : Pointer to LSM6DSL_ACC_GYRO_IN_COMP_t
cparata 0:6a670fda63c2 3254 * Output : Status of INPUT_COMPOSITE see LSM6DSL_ACC_GYRO_IN_COMP_t
cparata 0:6a670fda63c2 3255 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3256 *******************************************************************************/
cparata 0:6a670fda63c2 3257 status_t LSM6DSL_ACC_GYRO_R_InComposit(void *handle, LSM6DSL_ACC_GYRO_IN_COMP_t *value)
cparata 0:6a670fda63c2 3258 {
cparata 0:6a670fda63c2 3259 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3260 return MEMS_ERROR;
cparata 0:6a670fda63c2 3261
cparata 0:6a670fda63c2 3262 *value &= LSM6DSL_ACC_GYRO_IN_COMP_MASK; //mask
cparata 0:6a670fda63c2 3263
cparata 0:6a670fda63c2 3264 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3265 }
cparata 0:6a670fda63c2 3266
cparata 0:6a670fda63c2 3267 /*******************************************************************************
cparata 0:6a670fda63c2 3268 * Function Name : LSM6DSL_ACC_GYRO_W_HPfilterReference
cparata 0:6a670fda63c2 3269 * Description : Write HP_REF_MODE
cparata 0:6a670fda63c2 3270 * Input : LSM6DSL_ACC_GYRO_HP_REF_MODE_t
cparata 0:6a670fda63c2 3271 * Output : None
cparata 0:6a670fda63c2 3272 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3273 *******************************************************************************/
cparata 0:6a670fda63c2 3274 status_t LSM6DSL_ACC_GYRO_W_HPfilterReference(void *handle, LSM6DSL_ACC_GYRO_HP_REF_MODE_t newValue)
cparata 0:6a670fda63c2 3275 {
cparata 0:6a670fda63c2 3276 u8_t value;
cparata 0:6a670fda63c2 3277
cparata 0:6a670fda63c2 3278 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3279 return MEMS_ERROR;
cparata 0:6a670fda63c2 3280
cparata 0:6a670fda63c2 3281 value &= ~LSM6DSL_ACC_GYRO_HP_REF_MODE_MASK;
cparata 0:6a670fda63c2 3282 value |= newValue;
cparata 0:6a670fda63c2 3283
cparata 0:6a670fda63c2 3284 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3285 return MEMS_ERROR;
cparata 0:6a670fda63c2 3286
cparata 0:6a670fda63c2 3287 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3288 }
cparata 0:6a670fda63c2 3289
cparata 0:6a670fda63c2 3290 /*******************************************************************************
cparata 0:6a670fda63c2 3291 * Function Name : LSM6DSL_ACC_GYRO_R_HPfilterReference
cparata 0:6a670fda63c2 3292 * Description : Read HP_REF_MODE
cparata 0:6a670fda63c2 3293 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_REF_MODE_t
cparata 0:6a670fda63c2 3294 * Output : Status of HP_REF_MODE see LSM6DSL_ACC_GYRO_HP_REF_MODE_t
cparata 0:6a670fda63c2 3295 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3296 *******************************************************************************/
cparata 0:6a670fda63c2 3297 status_t LSM6DSL_ACC_GYRO_R_HPfilterReference(void *handle, LSM6DSL_ACC_GYRO_HP_REF_MODE_t *value)
cparata 0:6a670fda63c2 3298 {
cparata 0:6a670fda63c2 3299 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3300 return MEMS_ERROR;
cparata 0:6a670fda63c2 3301
cparata 0:6a670fda63c2 3302 *value &= LSM6DSL_ACC_GYRO_HP_REF_MODE_MASK; //mask
cparata 0:6a670fda63c2 3303
cparata 0:6a670fda63c2 3304 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3305 }
cparata 0:6a670fda63c2 3306
cparata 0:6a670fda63c2 3307 /*******************************************************************************
cparata 0:6a670fda63c2 3308 * Function Name : LSM6DSL_ACC_GYRO_W_HPCF_XL
cparata 0:6a670fda63c2 3309 * Description : Write HPCF_XL
cparata 0:6a670fda63c2 3310 * Input : LSM6DSL_ACC_GYRO_HPCF_XL_t
cparata 0:6a670fda63c2 3311 * Output : None
cparata 0:6a670fda63c2 3312 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3313 *******************************************************************************/
cparata 0:6a670fda63c2 3314 status_t LSM6DSL_ACC_GYRO_W_HPCF_XL(void *handle, LSM6DSL_ACC_GYRO_HPCF_XL_t newValue)
cparata 0:6a670fda63c2 3315 {
cparata 0:6a670fda63c2 3316 u8_t value;
cparata 0:6a670fda63c2 3317
cparata 0:6a670fda63c2 3318 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3319 return MEMS_ERROR;
cparata 0:6a670fda63c2 3320
cparata 0:6a670fda63c2 3321 value &= ~LSM6DSL_ACC_GYRO_HPCF_XL_MASK;
cparata 0:6a670fda63c2 3322 value |= newValue;
cparata 0:6a670fda63c2 3323
cparata 0:6a670fda63c2 3324 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3325 return MEMS_ERROR;
cparata 0:6a670fda63c2 3326
cparata 0:6a670fda63c2 3327 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3328 }
cparata 0:6a670fda63c2 3329
cparata 0:6a670fda63c2 3330 /*******************************************************************************
cparata 0:6a670fda63c2 3331 * Function Name : LSM6DSL_ACC_GYRO_R_HPCF_XL
cparata 0:6a670fda63c2 3332 * Description : Read HPCF_XL
cparata 0:6a670fda63c2 3333 * Input : Pointer to LSM6DSL_ACC_GYRO_HPCF_XL_t
cparata 0:6a670fda63c2 3334 * Output : Status of HPCF_XL see LSM6DSL_ACC_GYRO_HPCF_XL_t
cparata 0:6a670fda63c2 3335 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3336 *******************************************************************************/
cparata 0:6a670fda63c2 3337 status_t LSM6DSL_ACC_GYRO_R_HPCF_XL(void *handle, LSM6DSL_ACC_GYRO_HPCF_XL_t *value)
cparata 0:6a670fda63c2 3338 {
cparata 0:6a670fda63c2 3339 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3340 return MEMS_ERROR;
cparata 0:6a670fda63c2 3341
cparata 0:6a670fda63c2 3342 *value &= LSM6DSL_ACC_GYRO_HPCF_XL_MASK; //mask
cparata 0:6a670fda63c2 3343
cparata 0:6a670fda63c2 3344 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3345 }
cparata 0:6a670fda63c2 3346
cparata 0:6a670fda63c2 3347 /*******************************************************************************
cparata 0:6a670fda63c2 3348 * Function Name : LSM6DSL_ACC_GYRO_W_LowPassFiltSel_XL
cparata 0:6a670fda63c2 3349 * Description : Write LPF2_XL_EN
cparata 0:6a670fda63c2 3350 * Input : LSM6DSL_ACC_GYRO_LPF2_XL_t
cparata 0:6a670fda63c2 3351 * Output : None
cparata 0:6a670fda63c2 3352 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3353 *******************************************************************************/
cparata 0:6a670fda63c2 3354 status_t LSM6DSL_ACC_GYRO_W_LowPassFiltSel_XL(void *handle, LSM6DSL_ACC_GYRO_LPF2_XL_t newValue)
cparata 0:6a670fda63c2 3355 {
cparata 0:6a670fda63c2 3356 u8_t value;
cparata 0:6a670fda63c2 3357
cparata 0:6a670fda63c2 3358 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3359 return MEMS_ERROR;
cparata 0:6a670fda63c2 3360
cparata 0:6a670fda63c2 3361 value &= ~LSM6DSL_ACC_GYRO_LPF2_XL_MASK;
cparata 0:6a670fda63c2 3362 value |= newValue;
cparata 0:6a670fda63c2 3363
cparata 0:6a670fda63c2 3364 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3365 return MEMS_ERROR;
cparata 0:6a670fda63c2 3366
cparata 0:6a670fda63c2 3367 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3368 }
cparata 0:6a670fda63c2 3369
cparata 0:6a670fda63c2 3370 /*******************************************************************************
cparata 0:6a670fda63c2 3371 * Function Name : LSM6DSL_ACC_GYRO_R_LowPassFiltSel_XL
cparata 0:6a670fda63c2 3372 * Description : Read LPF2_XL_EN
cparata 0:6a670fda63c2 3373 * Input : Pointer to LSM6DSL_ACC_GYRO_LPF2_XL_t
cparata 0:6a670fda63c2 3374 * Output : Status of LPF2_XL_EN see LSM6DSL_ACC_GYRO_LPF2_XL_t
cparata 0:6a670fda63c2 3375 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3376 *******************************************************************************/
cparata 0:6a670fda63c2 3377 status_t LSM6DSL_ACC_GYRO_R_LowPassFiltSel_XL(void *handle, LSM6DSL_ACC_GYRO_LPF2_XL_t *value)
cparata 0:6a670fda63c2 3378 {
cparata 0:6a670fda63c2 3379 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3380 return MEMS_ERROR;
cparata 0:6a670fda63c2 3381
cparata 0:6a670fda63c2 3382 *value &= LSM6DSL_ACC_GYRO_LPF2_XL_MASK; //mask
cparata 0:6a670fda63c2 3383
cparata 0:6a670fda63c2 3384 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3385 }
cparata 0:6a670fda63c2 3386
cparata 0:6a670fda63c2 3387 /*******************************************************************************
cparata 0:6a670fda63c2 3388 * Function Name : LSM6DSL_ACC_GYRO_W_LOW_PASS_ON_6D
cparata 0:6a670fda63c2 3389 * Description : Write LOW_PASS_ON_6D
cparata 0:6a670fda63c2 3390 * Input : LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t
cparata 0:6a670fda63c2 3391 * Output : None
cparata 0:6a670fda63c2 3392 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3393 *******************************************************************************/
cparata 0:6a670fda63c2 3394 status_t LSM6DSL_ACC_GYRO_W_LOW_PASS_ON_6D(void *handle, LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t newValue)
cparata 0:6a670fda63c2 3395 {
cparata 0:6a670fda63c2 3396 u8_t value;
cparata 0:6a670fda63c2 3397
cparata 0:6a670fda63c2 3398 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3399 return MEMS_ERROR;
cparata 0:6a670fda63c2 3400
cparata 0:6a670fda63c2 3401 value &= ~LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_MASK;
cparata 0:6a670fda63c2 3402 value |= newValue;
cparata 0:6a670fda63c2 3403
cparata 0:6a670fda63c2 3404 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3405 return MEMS_ERROR;
cparata 0:6a670fda63c2 3406
cparata 0:6a670fda63c2 3407 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3408 }
cparata 0:6a670fda63c2 3409
cparata 0:6a670fda63c2 3410 /*******************************************************************************
cparata 0:6a670fda63c2 3411 * Function Name : LSM6DSL_ACC_GYRO_R_LOW_PASS_ON_6D
cparata 0:6a670fda63c2 3412 * Description : Read LOW_PASS_ON_6D
cparata 0:6a670fda63c2 3413 * Input : Pointer to LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t
cparata 0:6a670fda63c2 3414 * Output : Status of LOW_PASS_ON_6D see LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t
cparata 0:6a670fda63c2 3415 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3416 *******************************************************************************/
cparata 0:6a670fda63c2 3417 status_t LSM6DSL_ACC_GYRO_R_LOW_PASS_ON_6D(void *handle, LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_t *value)
cparata 0:6a670fda63c2 3418 {
cparata 0:6a670fda63c2 3419 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3420 return MEMS_ERROR;
cparata 0:6a670fda63c2 3421
cparata 0:6a670fda63c2 3422 *value &= LSM6DSL_ACC_GYRO_LOW_PASS_ON_6D_MASK; //mask
cparata 0:6a670fda63c2 3423
cparata 0:6a670fda63c2 3424 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3425 }
cparata 0:6a670fda63c2 3426
cparata 0:6a670fda63c2 3427 /*******************************************************************************
cparata 0:6a670fda63c2 3428 * Function Name : LSM6DSL_ACC_GYRO_W_HP_SLOPE_XL
cparata 0:6a670fda63c2 3429 * Description : Write HP_SLOPE_XL_EN
cparata 0:6a670fda63c2 3430 * Input : LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t
cparata 0:6a670fda63c2 3431 * Output : None
cparata 0:6a670fda63c2 3432 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3433 *******************************************************************************/
cparata 0:6a670fda63c2 3434 status_t LSM6DSL_ACC_GYRO_W_HP_SLOPE_XL(void *handle, LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t newValue)
cparata 0:6a670fda63c2 3435 {
cparata 0:6a670fda63c2 3436 u8_t value;
cparata 0:6a670fda63c2 3437
cparata 0:6a670fda63c2 3438 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3439 return MEMS_ERROR;
cparata 0:6a670fda63c2 3440
cparata 0:6a670fda63c2 3441 value &= ~LSM6DSL_ACC_GYRO_HP_SLOPE_XL_MASK;
cparata 0:6a670fda63c2 3442 value |= newValue;
cparata 0:6a670fda63c2 3443
cparata 0:6a670fda63c2 3444 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, &value, 1) )
cparata 0:6a670fda63c2 3445 return MEMS_ERROR;
cparata 0:6a670fda63c2 3446
cparata 0:6a670fda63c2 3447 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3448 }
cparata 0:6a670fda63c2 3449
cparata 0:6a670fda63c2 3450 /*******************************************************************************
cparata 0:6a670fda63c2 3451 * Function Name : LSM6DSL_ACC_GYRO_R_HP_SLOPE_XL
cparata 0:6a670fda63c2 3452 * Description : Read HP_SLOPE_XL_EN
cparata 0:6a670fda63c2 3453 * Input : Pointer to LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t
cparata 0:6a670fda63c2 3454 * Output : Status of HP_SLOPE_XL_EN see LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t
cparata 0:6a670fda63c2 3455 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3456 *******************************************************************************/
cparata 0:6a670fda63c2 3457 status_t LSM6DSL_ACC_GYRO_R_HP_SLOPE_XL(void *handle, LSM6DSL_ACC_GYRO_HP_SLOPE_XL_t *value)
cparata 0:6a670fda63c2 3458 {
cparata 0:6a670fda63c2 3459 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL8_XL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3460 return MEMS_ERROR;
cparata 0:6a670fda63c2 3461
cparata 0:6a670fda63c2 3462 *value &= LSM6DSL_ACC_GYRO_HP_SLOPE_XL_MASK; //mask
cparata 0:6a670fda63c2 3463
cparata 0:6a670fda63c2 3464 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3465 }
cparata 0:6a670fda63c2 3466
cparata 0:6a670fda63c2 3467 /*******************************************************************************
cparata 0:6a670fda63c2 3468 * Function Name : LSM6DSL_ACC_GYRO_W_SOFT
cparata 0:6a670fda63c2 3469 * Description : Write SOFT_EN
cparata 0:6a670fda63c2 3470 * Input : LSM6DSL_ACC_GYRO_SOFT_t
cparata 0:6a670fda63c2 3471 * Output : None
cparata 0:6a670fda63c2 3472 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3473 *******************************************************************************/
cparata 0:6a670fda63c2 3474 status_t LSM6DSL_ACC_GYRO_W_SOFT(void *handle, LSM6DSL_ACC_GYRO_SOFT_t newValue)
cparata 0:6a670fda63c2 3475 {
cparata 0:6a670fda63c2 3476 u8_t value;
cparata 0:6a670fda63c2 3477
cparata 0:6a670fda63c2 3478 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL9_XL, &value, 1) )
cparata 0:6a670fda63c2 3479 return MEMS_ERROR;
cparata 0:6a670fda63c2 3480
cparata 0:6a670fda63c2 3481 value &= ~LSM6DSL_ACC_GYRO_SOFT_MASK;
cparata 0:6a670fda63c2 3482 value |= newValue;
cparata 0:6a670fda63c2 3483
cparata 0:6a670fda63c2 3484 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL9_XL, &value, 1) )
cparata 0:6a670fda63c2 3485 return MEMS_ERROR;
cparata 0:6a670fda63c2 3486
cparata 0:6a670fda63c2 3487 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3488 }
cparata 0:6a670fda63c2 3489
cparata 0:6a670fda63c2 3490 /*******************************************************************************
cparata 0:6a670fda63c2 3491 * Function Name : LSM6DSL_ACC_GYRO_R_SOFT
cparata 0:6a670fda63c2 3492 * Description : Read SOFT_EN
cparata 0:6a670fda63c2 3493 * Input : Pointer to LSM6DSL_ACC_GYRO_SOFT_t
cparata 0:6a670fda63c2 3494 * Output : Status of SOFT_EN see LSM6DSL_ACC_GYRO_SOFT_t
cparata 0:6a670fda63c2 3495 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3496 *******************************************************************************/
cparata 0:6a670fda63c2 3497 status_t LSM6DSL_ACC_GYRO_R_SOFT(void *handle, LSM6DSL_ACC_GYRO_SOFT_t *value)
cparata 0:6a670fda63c2 3498 {
cparata 0:6a670fda63c2 3499 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL9_XL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3500 return MEMS_ERROR;
cparata 0:6a670fda63c2 3501
cparata 0:6a670fda63c2 3502 *value &= LSM6DSL_ACC_GYRO_SOFT_MASK; //mask
cparata 0:6a670fda63c2 3503
cparata 0:6a670fda63c2 3504 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3505 }
cparata 0:6a670fda63c2 3506
cparata 0:6a670fda63c2 3507 /*******************************************************************************
cparata 0:6a670fda63c2 3508 * Function Name : LSM6DSL_ACC_GYRO_W_SignifcantMotion
cparata 0:6a670fda63c2 3509 * Description : Write SIGN_MOTION_EN
cparata 0:6a670fda63c2 3510 * Input : LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t
cparata 0:6a670fda63c2 3511 * Output : None
cparata 0:6a670fda63c2 3512 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3513 *******************************************************************************/
cparata 0:6a670fda63c2 3514 status_t LSM6DSL_ACC_GYRO_W_SignifcantMotion(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t newValue)
cparata 0:6a670fda63c2 3515 {
cparata 0:6a670fda63c2 3516 u8_t value;
cparata 0:6a670fda63c2 3517
cparata 0:6a670fda63c2 3518 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3519 return MEMS_ERROR;
cparata 0:6a670fda63c2 3520
cparata 0:6a670fda63c2 3521 value &= ~LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_MASK;
cparata 0:6a670fda63c2 3522 value |= newValue;
cparata 0:6a670fda63c2 3523
cparata 0:6a670fda63c2 3524 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3525 return MEMS_ERROR;
cparata 0:6a670fda63c2 3526
cparata 0:6a670fda63c2 3527 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3528 }
cparata 0:6a670fda63c2 3529
cparata 0:6a670fda63c2 3530 /*******************************************************************************
cparata 0:6a670fda63c2 3531 * Function Name : LSM6DSL_ACC_GYRO_R_SignifcantMotion
cparata 0:6a670fda63c2 3532 * Description : Read SIGN_MOTION_EN
cparata 0:6a670fda63c2 3533 * Input : Pointer to LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t
cparata 0:6a670fda63c2 3534 * Output : Status of SIGN_MOTION_EN see LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t
cparata 0:6a670fda63c2 3535 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3536 *******************************************************************************/
cparata 0:6a670fda63c2 3537 status_t LSM6DSL_ACC_GYRO_R_SignifcantMotion(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_t *value)
cparata 0:6a670fda63c2 3538 {
cparata 0:6a670fda63c2 3539 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3540 return MEMS_ERROR;
cparata 0:6a670fda63c2 3541
cparata 0:6a670fda63c2 3542 *value &= LSM6DSL_ACC_GYRO_SIGN_MOTION_EN_MASK; //mask
cparata 0:6a670fda63c2 3543
cparata 0:6a670fda63c2 3544 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3545 }
cparata 0:6a670fda63c2 3546 /*******************************************************************************
cparata 0:6a670fda63c2 3547 * Function Name : LSM6DSL_ACC_GYRO_W_PedoStepReset
cparata 0:6a670fda63c2 3548 * Description : Write PEDO_RST_STEP
cparata 0:6a670fda63c2 3549 * Input : LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t
cparata 0:6a670fda63c2 3550 * Output : None
cparata 0:6a670fda63c2 3551 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3552 *******************************************************************************/
cparata 0:6a670fda63c2 3553 status_t LSM6DSL_ACC_GYRO_W_PedoStepReset(void *handle, LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t newValue)
cparata 0:6a670fda63c2 3554 {
cparata 0:6a670fda63c2 3555 u8_t value;
cparata 0:6a670fda63c2 3556
cparata 0:6a670fda63c2 3557 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3558 return MEMS_ERROR;
cparata 0:6a670fda63c2 3559
cparata 0:6a670fda63c2 3560 value &= ~LSM6DSL_ACC_GYRO_PEDO_RST_STEP_MASK;
cparata 0:6a670fda63c2 3561 value |= newValue;
cparata 0:6a670fda63c2 3562
cparata 0:6a670fda63c2 3563 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3564 return MEMS_ERROR;
cparata 0:6a670fda63c2 3565
cparata 0:6a670fda63c2 3566 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3567 }
cparata 0:6a670fda63c2 3568
cparata 0:6a670fda63c2 3569 /*******************************************************************************
cparata 0:6a670fda63c2 3570 * Function Name : LSM6DSL_ACC_GYRO_R_PedoStepReset
cparata 0:6a670fda63c2 3571 * Description : Read PEDO_RST_STEP
cparata 0:6a670fda63c2 3572 * Input : Pointer to LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t
cparata 0:6a670fda63c2 3573 * Output : Status of PEDO_RST_STEP see LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t
cparata 0:6a670fda63c2 3574 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3575 *******************************************************************************/
cparata 0:6a670fda63c2 3576 status_t LSM6DSL_ACC_GYRO_R_PedoStepReset(void *handle, LSM6DSL_ACC_GYRO_PEDO_RST_STEP_t *value)
cparata 0:6a670fda63c2 3577 {
cparata 0:6a670fda63c2 3578 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3579 return MEMS_ERROR;
cparata 0:6a670fda63c2 3580
cparata 0:6a670fda63c2 3581 *value &= LSM6DSL_ACC_GYRO_PEDO_RST_STEP_MASK; //mask
cparata 0:6a670fda63c2 3582
cparata 0:6a670fda63c2 3583 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3584 }
cparata 0:6a670fda63c2 3585 /*******************************************************************************
cparata 0:6a670fda63c2 3586 * Function Name : LSM6DSL_ACC_GYRO_W_TILT
cparata 0:6a670fda63c2 3587 * Description : Write XEN_G
cparata 0:6a670fda63c2 3588 * Input : LSM6DSL_ACC_GYRO_TILT_G_t
cparata 0:6a670fda63c2 3589 * Output : None
cparata 0:6a670fda63c2 3590 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3591 *******************************************************************************/
cparata 0:6a670fda63c2 3592 status_t LSM6DSL_ACC_GYRO_W_TILT(void *handle, LSM6DSL_ACC_GYRO_TILT_G_t newValue)
cparata 0:6a670fda63c2 3593 {
cparata 0:6a670fda63c2 3594 u8_t value;
cparata 0:6a670fda63c2 3595
cparata 0:6a670fda63c2 3596 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3597 return MEMS_ERROR;
cparata 0:6a670fda63c2 3598
cparata 0:6a670fda63c2 3599 value &= ~LSM6DSL_ACC_GYRO_TILT_MASK;
cparata 0:6a670fda63c2 3600 value |= newValue;
cparata 0:6a670fda63c2 3601
cparata 0:6a670fda63c2 3602 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3603 return MEMS_ERROR;
cparata 0:6a670fda63c2 3604
cparata 0:6a670fda63c2 3605 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3606 }
cparata 0:6a670fda63c2 3607
cparata 0:6a670fda63c2 3608 /*******************************************************************************
cparata 0:6a670fda63c2 3609 * Function Name : LSM6DSL_ACC_GYRO_R_TILT
cparata 0:6a670fda63c2 3610 * Description : Read XEN_G
cparata 0:6a670fda63c2 3611 * Input : Pointer to LSM6DSL_ACC_GYRO_TILT_G_t
cparata 0:6a670fda63c2 3612 * Output : Status of XEN_G see LSM6DSL_ACC_GYRO_TILT_G_t
cparata 0:6a670fda63c2 3613 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3614 *******************************************************************************/
cparata 0:6a670fda63c2 3615 status_t LSM6DSL_ACC_GYRO_R_TILT(void *handle, LSM6DSL_ACC_GYRO_TILT_G_t *value)
cparata 0:6a670fda63c2 3616 {
cparata 0:6a670fda63c2 3617 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3618 return MEMS_ERROR;
cparata 0:6a670fda63c2 3619
cparata 0:6a670fda63c2 3620 *value &= LSM6DSL_ACC_GYRO_TILT_MASK; //mask
cparata 0:6a670fda63c2 3621
cparata 0:6a670fda63c2 3622 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3623 }
cparata 0:6a670fda63c2 3624 /*******************************************************************************
cparata 0:6a670fda63c2 3625 * Function Name : LSM6DSL_ACC_GYRO_W_PEDO
cparata 0:6a670fda63c2 3626 * Description : Write PEDO_EN
cparata 0:6a670fda63c2 3627 * Input : LSM6DSL_ACC_GYRO_PEDO_t
cparata 0:6a670fda63c2 3628 * Output : None
cparata 0:6a670fda63c2 3629 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3630 *******************************************************************************/
cparata 0:6a670fda63c2 3631 status_t LSM6DSL_ACC_GYRO_W_PEDO(void *handle, LSM6DSL_ACC_GYRO_PEDO_t newValue)
cparata 0:6a670fda63c2 3632 {
cparata 0:6a670fda63c2 3633 u8_t value;
cparata 0:6a670fda63c2 3634
cparata 0:6a670fda63c2 3635 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3636 return MEMS_ERROR;
cparata 0:6a670fda63c2 3637
cparata 0:6a670fda63c2 3638 value &= ~LSM6DSL_ACC_GYRO_PEDO_MASK;
cparata 0:6a670fda63c2 3639 value |= newValue;
cparata 0:6a670fda63c2 3640
cparata 0:6a670fda63c2 3641 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3642 return MEMS_ERROR;
cparata 0:6a670fda63c2 3643
cparata 0:6a670fda63c2 3644 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3645 }
cparata 0:6a670fda63c2 3646
cparata 0:6a670fda63c2 3647 /*******************************************************************************
cparata 0:6a670fda63c2 3648 * Function Name : LSM6DSL_ACC_GYRO_R_PEDO
cparata 0:6a670fda63c2 3649 * Description : Read PEDO_EN
cparata 0:6a670fda63c2 3650 * Input : Pointer to LSM6DSL_ACC_GYRO_PEDO_t
cparata 0:6a670fda63c2 3651 * Output : Status of PEDO_EN see LSM6DSL_ACC_GYRO_PEDO_t
cparata 0:6a670fda63c2 3652 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3653 *******************************************************************************/
cparata 0:6a670fda63c2 3654 status_t LSM6DSL_ACC_GYRO_R_PEDO(void *handle, LSM6DSL_ACC_GYRO_PEDO_t *value)
cparata 0:6a670fda63c2 3655 {
cparata 0:6a670fda63c2 3656 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3657 return MEMS_ERROR;
cparata 0:6a670fda63c2 3658
cparata 0:6a670fda63c2 3659 *value &= LSM6DSL_ACC_GYRO_PEDO_MASK; //mask
cparata 0:6a670fda63c2 3660
cparata 0:6a670fda63c2 3661 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3662 }
cparata 0:6a670fda63c2 3663
cparata 0:6a670fda63c2 3664 /*******************************************************************************
cparata 0:6a670fda63c2 3665 * Function Name : LSM6DSL_ACC_GYRO_W_TIMER
cparata 0:6a670fda63c2 3666 * Description : Write TIMER_EN
cparata 0:6a670fda63c2 3667 * Input : LSM6DSL_ACC_GYRO_TIMER_t
cparata 0:6a670fda63c2 3668 * Output : None
cparata 0:6a670fda63c2 3669 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3670 *******************************************************************************/
cparata 0:6a670fda63c2 3671 status_t LSM6DSL_ACC_GYRO_W_TIMER(void *handle, LSM6DSL_ACC_GYRO_TIMER_t newValue)
cparata 0:6a670fda63c2 3672 {
cparata 0:6a670fda63c2 3673 u8_t value;
cparata 0:6a670fda63c2 3674
cparata 0:6a670fda63c2 3675 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3676 return MEMS_ERROR;
cparata 0:6a670fda63c2 3677
cparata 0:6a670fda63c2 3678 value &= ~LSM6DSL_ACC_GYRO_TIMER_MASK;
cparata 0:6a670fda63c2 3679 value |= newValue;
cparata 0:6a670fda63c2 3680
cparata 0:6a670fda63c2 3681 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3682 return MEMS_ERROR;
cparata 0:6a670fda63c2 3683
cparata 0:6a670fda63c2 3684 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3685 }
cparata 0:6a670fda63c2 3686
cparata 0:6a670fda63c2 3687 /*******************************************************************************
cparata 0:6a670fda63c2 3688 * Function Name : LSM6DSL_ACC_GYRO_R_TIMER
cparata 0:6a670fda63c2 3689 * Description : Read TIMER_EN
cparata 0:6a670fda63c2 3690 * Input : Pointer to LSM6DSL_ACC_GYRO_TIMER_t
cparata 0:6a670fda63c2 3691 * Output : Status of TIMER_EN see LSM6DSL_ACC_GYRO_TIMER_t
cparata 0:6a670fda63c2 3692 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3693 *******************************************************************************/
cparata 0:6a670fda63c2 3694 status_t LSM6DSL_ACC_GYRO_R_TIMER(void *handle, LSM6DSL_ACC_GYRO_TIMER_t *value)
cparata 0:6a670fda63c2 3695 {
cparata 0:6a670fda63c2 3696 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3697 return MEMS_ERROR;
cparata 0:6a670fda63c2 3698
cparata 0:6a670fda63c2 3699 *value &= LSM6DSL_ACC_GYRO_TIMER_MASK; //mask
cparata 0:6a670fda63c2 3700
cparata 0:6a670fda63c2 3701 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3702 }
cparata 0:6a670fda63c2 3703
cparata 0:6a670fda63c2 3704 /*******************************************************************************
cparata 0:6a670fda63c2 3705 * Function Name : LSM6DSL_ACC_GYRO_W_FUNC_EN
cparata 0:6a670fda63c2 3706 * Description : Write FUNC_EN
cparata 0:6a670fda63c2 3707 * Input : LSM6DSL_ACC_GYRO_FUNC_EN_t
cparata 0:6a670fda63c2 3708 * Output : None
cparata 0:6a670fda63c2 3709 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3710 *******************************************************************************/
cparata 0:6a670fda63c2 3711 status_t LSM6DSL_ACC_GYRO_W_FUNC_EN(void *handle, LSM6DSL_ACC_GYRO_FUNC_EN_t newValue)
cparata 0:6a670fda63c2 3712 {
cparata 0:6a670fda63c2 3713 u8_t value;
cparata 0:6a670fda63c2 3714
cparata 0:6a670fda63c2 3715 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3716 return MEMS_ERROR;
cparata 0:6a670fda63c2 3717
cparata 0:6a670fda63c2 3718 value &= ~LSM6DSL_ACC_GYRO_FUNC_EN_MASK;
cparata 0:6a670fda63c2 3719 value |= newValue;
cparata 0:6a670fda63c2 3720
cparata 0:6a670fda63c2 3721 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, &value, 1) )
cparata 0:6a670fda63c2 3722 return MEMS_ERROR;
cparata 0:6a670fda63c2 3723
cparata 0:6a670fda63c2 3724 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3725 }
cparata 0:6a670fda63c2 3726
cparata 0:6a670fda63c2 3727 /*******************************************************************************
cparata 0:6a670fda63c2 3728 * Function Name : LSM6DSL_ACC_GYRO_R_FUNC_EN
cparata 0:6a670fda63c2 3729 * Description : Read FUNC_EN
cparata 0:6a670fda63c2 3730 * Input : Pointer to LSM6DSL_ACC_GYRO_FUNC_EN_t
cparata 0:6a670fda63c2 3731 * Output : Status of FUNC_EN see LSM6DSL_ACC_GYRO_FUNC_EN_t
cparata 0:6a670fda63c2 3732 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3733 *******************************************************************************/
cparata 0:6a670fda63c2 3734 status_t LSM6DSL_ACC_GYRO_R_FUNC_EN(void *handle, LSM6DSL_ACC_GYRO_FUNC_EN_t *value)
cparata 0:6a670fda63c2 3735 {
cparata 0:6a670fda63c2 3736 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CTRL10_C, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3737 return MEMS_ERROR;
cparata 0:6a670fda63c2 3738
cparata 0:6a670fda63c2 3739 *value &= LSM6DSL_ACC_GYRO_FUNC_EN_MASK; //mask
cparata 0:6a670fda63c2 3740
cparata 0:6a670fda63c2 3741 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3742 }
cparata 0:6a670fda63c2 3743
cparata 0:6a670fda63c2 3744 /*******************************************************************************
cparata 0:6a670fda63c2 3745 * Function Name : LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable
cparata 0:6a670fda63c2 3746 * Description : Write MASTER_ON
cparata 0:6a670fda63c2 3747 * Input : LSM6DSL_ACC_GYRO_MASTER_ON_t
cparata 0:6a670fda63c2 3748 * Output : None
cparata 0:6a670fda63c2 3749 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3750 *******************************************************************************/
cparata 0:6a670fda63c2 3751 status_t LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(void *handle, LSM6DSL_ACC_GYRO_MASTER_ON_t newValue)
cparata 0:6a670fda63c2 3752 {
cparata 0:6a670fda63c2 3753 u8_t value;
cparata 0:6a670fda63c2 3754
cparata 0:6a670fda63c2 3755 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3756 return MEMS_ERROR;
cparata 0:6a670fda63c2 3757
cparata 0:6a670fda63c2 3758 value &= ~LSM6DSL_ACC_GYRO_MASTER_ON_MASK;
cparata 0:6a670fda63c2 3759 value |= newValue;
cparata 0:6a670fda63c2 3760
cparata 0:6a670fda63c2 3761 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3762 return MEMS_ERROR;
cparata 0:6a670fda63c2 3763
cparata 0:6a670fda63c2 3764 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3765 }
cparata 0:6a670fda63c2 3766
cparata 0:6a670fda63c2 3767 /*******************************************************************************
cparata 0:6a670fda63c2 3768 * Function Name : LSM6DSL_ACC_GYRO_R_I2C_MASTER_Enable
cparata 0:6a670fda63c2 3769 * Description : Read MASTER_ON
cparata 0:6a670fda63c2 3770 * Input : Pointer to LSM6DSL_ACC_GYRO_MASTER_ON_t
cparata 0:6a670fda63c2 3771 * Output : Status of MASTER_ON see LSM6DSL_ACC_GYRO_MASTER_ON_t
cparata 0:6a670fda63c2 3772 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3773 *******************************************************************************/
cparata 0:6a670fda63c2 3774 status_t LSM6DSL_ACC_GYRO_R_I2C_MASTER_Enable(void *handle, LSM6DSL_ACC_GYRO_MASTER_ON_t *value)
cparata 0:6a670fda63c2 3775 {
cparata 0:6a670fda63c2 3776 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3777 return MEMS_ERROR;
cparata 0:6a670fda63c2 3778
cparata 0:6a670fda63c2 3779 *value &= LSM6DSL_ACC_GYRO_MASTER_ON_MASK; //mask
cparata 0:6a670fda63c2 3780
cparata 0:6a670fda63c2 3781 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3782 }
cparata 0:6a670fda63c2 3783
cparata 0:6a670fda63c2 3784 /*******************************************************************************
cparata 0:6a670fda63c2 3785 * Function Name : LSM6DSL_ACC_GYRO_W_IronCorrection_EN
cparata 0:6a670fda63c2 3786 * Description : Write IRON_EN
cparata 0:6a670fda63c2 3787 * Input : LSM6DSL_ACC_GYRO_IRON_EN_t
cparata 0:6a670fda63c2 3788 * Output : None
cparata 0:6a670fda63c2 3789 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3790 *******************************************************************************/
cparata 0:6a670fda63c2 3791 status_t LSM6DSL_ACC_GYRO_W_IronCorrection_EN(void *handle, LSM6DSL_ACC_GYRO_IRON_EN_t newValue)
cparata 0:6a670fda63c2 3792 {
cparata 0:6a670fda63c2 3793 u8_t value;
cparata 0:6a670fda63c2 3794
cparata 0:6a670fda63c2 3795 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3796 return MEMS_ERROR;
cparata 0:6a670fda63c2 3797
cparata 0:6a670fda63c2 3798 value &= ~LSM6DSL_ACC_GYRO_IRON_EN_MASK;
cparata 0:6a670fda63c2 3799 value |= newValue;
cparata 0:6a670fda63c2 3800
cparata 0:6a670fda63c2 3801 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3802 return MEMS_ERROR;
cparata 0:6a670fda63c2 3803
cparata 0:6a670fda63c2 3804 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3805 }
cparata 0:6a670fda63c2 3806
cparata 0:6a670fda63c2 3807 /*******************************************************************************
cparata 0:6a670fda63c2 3808 * Function Name : LSM6DSL_ACC_GYRO_R_IronCorrection_EN
cparata 0:6a670fda63c2 3809 * Description : Read IRON_EN
cparata 0:6a670fda63c2 3810 * Input : Pointer to LSM6DSL_ACC_GYRO_IRON_EN_t
cparata 0:6a670fda63c2 3811 * Output : Status of IRON_EN see LSM6DSL_ACC_GYRO_IRON_EN_t
cparata 0:6a670fda63c2 3812 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3813 *******************************************************************************/
cparata 0:6a670fda63c2 3814 status_t LSM6DSL_ACC_GYRO_R_IronCorrection_EN(void *handle, LSM6DSL_ACC_GYRO_IRON_EN_t *value)
cparata 0:6a670fda63c2 3815 {
cparata 0:6a670fda63c2 3816 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3817 return MEMS_ERROR;
cparata 0:6a670fda63c2 3818
cparata 0:6a670fda63c2 3819 *value &= LSM6DSL_ACC_GYRO_IRON_EN_MASK; //mask
cparata 0:6a670fda63c2 3820
cparata 0:6a670fda63c2 3821 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3822 }
cparata 0:6a670fda63c2 3823
cparata 0:6a670fda63c2 3824 /*******************************************************************************
cparata 0:6a670fda63c2 3825 * Function Name : LSM6DSL_ACC_GYRO_W_PASS_THRU_MODE
cparata 0:6a670fda63c2 3826 * Description : Write PASS_THRU_MODE
cparata 0:6a670fda63c2 3827 * Input : LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t
cparata 0:6a670fda63c2 3828 * Output : None
cparata 0:6a670fda63c2 3829 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3830 *******************************************************************************/
cparata 0:6a670fda63c2 3831 status_t LSM6DSL_ACC_GYRO_W_PASS_THRU_MODE(void *handle, LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t newValue)
cparata 0:6a670fda63c2 3832 {
cparata 0:6a670fda63c2 3833 u8_t value;
cparata 0:6a670fda63c2 3834
cparata 0:6a670fda63c2 3835 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3836 return MEMS_ERROR;
cparata 0:6a670fda63c2 3837
cparata 0:6a670fda63c2 3838 value &= ~LSM6DSL_ACC_GYRO_PASS_THRU_MODE_MASK;
cparata 0:6a670fda63c2 3839 value |= newValue;
cparata 0:6a670fda63c2 3840
cparata 0:6a670fda63c2 3841 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3842 return MEMS_ERROR;
cparata 0:6a670fda63c2 3843
cparata 0:6a670fda63c2 3844 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3845 }
cparata 0:6a670fda63c2 3846
cparata 0:6a670fda63c2 3847 /*******************************************************************************
cparata 0:6a670fda63c2 3848 * Function Name : LSM6DSL_ACC_GYRO_R_PASS_THRU_MODE
cparata 0:6a670fda63c2 3849 * Description : Read PASS_THRU_MODE
cparata 0:6a670fda63c2 3850 * Input : Pointer to LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t
cparata 0:6a670fda63c2 3851 * Output : Status of PASS_THRU_MODE see LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t
cparata 0:6a670fda63c2 3852 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3853 *******************************************************************************/
cparata 0:6a670fda63c2 3854 status_t LSM6DSL_ACC_GYRO_R_PASS_THRU_MODE(void *handle, LSM6DSL_ACC_GYRO_PASS_THRU_MODE_t *value)
cparata 0:6a670fda63c2 3855 {
cparata 0:6a670fda63c2 3856 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3857 return MEMS_ERROR;
cparata 0:6a670fda63c2 3858
cparata 0:6a670fda63c2 3859 *value &= LSM6DSL_ACC_GYRO_PASS_THRU_MODE_MASK; //mask
cparata 0:6a670fda63c2 3860
cparata 0:6a670fda63c2 3861 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3862 }
cparata 0:6a670fda63c2 3863
cparata 0:6a670fda63c2 3864 /*******************************************************************************
cparata 0:6a670fda63c2 3865 * Function Name : LSM6DSL_ACC_GYRO_W_PULL_UP_EN
cparata 0:6a670fda63c2 3866 * Description : Write PULL_UP_EN
cparata 0:6a670fda63c2 3867 * Input : LSM6DSL_ACC_GYRO_PULL_UP_EN_t
cparata 0:6a670fda63c2 3868 * Output : None
cparata 0:6a670fda63c2 3869 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3870 *******************************************************************************/
cparata 0:6a670fda63c2 3871 status_t LSM6DSL_ACC_GYRO_W_PULL_UP_EN(void *handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_t newValue)
cparata 0:6a670fda63c2 3872 {
cparata 0:6a670fda63c2 3873 u8_t value;
cparata 0:6a670fda63c2 3874
cparata 0:6a670fda63c2 3875 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3876 return MEMS_ERROR;
cparata 0:6a670fda63c2 3877
cparata 0:6a670fda63c2 3878 value &= ~LSM6DSL_ACC_GYRO_PULL_UP_EN_MASK;
cparata 0:6a670fda63c2 3879 value |= newValue;
cparata 0:6a670fda63c2 3880
cparata 0:6a670fda63c2 3881 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3882 return MEMS_ERROR;
cparata 0:6a670fda63c2 3883
cparata 0:6a670fda63c2 3884 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3885 }
cparata 0:6a670fda63c2 3886
cparata 0:6a670fda63c2 3887 /*******************************************************************************
cparata 0:6a670fda63c2 3888 * Function Name : LSM6DSL_ACC_GYRO_R_PULL_UP_EN
cparata 0:6a670fda63c2 3889 * Description : Read PULL_UP_EN
cparata 0:6a670fda63c2 3890 * Input : Pointer to LSM6DSL_ACC_GYRO_PULL_UP_EN_t
cparata 0:6a670fda63c2 3891 * Output : Status of PULL_UP_EN see LSM6DSL_ACC_GYRO_PULL_UP_EN_t
cparata 0:6a670fda63c2 3892 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3893 *******************************************************************************/
cparata 0:6a670fda63c2 3894 status_t LSM6DSL_ACC_GYRO_R_PULL_UP_EN(void *handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_t *value)
cparata 0:6a670fda63c2 3895 {
cparata 0:6a670fda63c2 3896 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3897 return MEMS_ERROR;
cparata 0:6a670fda63c2 3898
cparata 0:6a670fda63c2 3899 *value &= LSM6DSL_ACC_GYRO_PULL_UP_EN_MASK; //mask
cparata 0:6a670fda63c2 3900
cparata 0:6a670fda63c2 3901 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3902 }
cparata 0:6a670fda63c2 3903
cparata 0:6a670fda63c2 3904 /*******************************************************************************
cparata 0:6a670fda63c2 3905 * Function Name : LSM6DSL_ACC_GYRO_W_SensorHUB_Trigger_Sel
cparata 0:6a670fda63c2 3906 * Description : Write START_CONFIG
cparata 0:6a670fda63c2 3907 * Input : LSM6DSL_ACC_GYRO_START_CONFIG_t
cparata 0:6a670fda63c2 3908 * Output : None
cparata 0:6a670fda63c2 3909 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3910 *******************************************************************************/
cparata 0:6a670fda63c2 3911 status_t LSM6DSL_ACC_GYRO_W_SensorHUB_Trigger_Sel(void *handle, LSM6DSL_ACC_GYRO_START_CONFIG_t newValue)
cparata 0:6a670fda63c2 3912 {
cparata 0:6a670fda63c2 3913 u8_t value;
cparata 0:6a670fda63c2 3914
cparata 0:6a670fda63c2 3915 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3916 return MEMS_ERROR;
cparata 0:6a670fda63c2 3917
cparata 0:6a670fda63c2 3918 value &= ~LSM6DSL_ACC_GYRO_START_CONFIG_MASK;
cparata 0:6a670fda63c2 3919 value |= newValue;
cparata 0:6a670fda63c2 3920
cparata 0:6a670fda63c2 3921 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3922 return MEMS_ERROR;
cparata 0:6a670fda63c2 3923
cparata 0:6a670fda63c2 3924 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3925 }
cparata 0:6a670fda63c2 3926
cparata 0:6a670fda63c2 3927 /*******************************************************************************
cparata 0:6a670fda63c2 3928 * Function Name : LSM6DSL_ACC_GYRO_R_SensorHUB_Trigger_Sel
cparata 0:6a670fda63c2 3929 * Description : Read START_CONFIG
cparata 0:6a670fda63c2 3930 * Input : Pointer to LSM6DSL_ACC_GYRO_START_CONFIG_t
cparata 0:6a670fda63c2 3931 * Output : Status of START_CONFIG see LSM6DSL_ACC_GYRO_START_CONFIG_t
cparata 0:6a670fda63c2 3932 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3933 *******************************************************************************/
cparata 0:6a670fda63c2 3934 status_t LSM6DSL_ACC_GYRO_R_SensorHUB_Trigger_Sel(void *handle, LSM6DSL_ACC_GYRO_START_CONFIG_t *value)
cparata 0:6a670fda63c2 3935 {
cparata 0:6a670fda63c2 3936 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3937 return MEMS_ERROR;
cparata 0:6a670fda63c2 3938
cparata 0:6a670fda63c2 3939 *value &= LSM6DSL_ACC_GYRO_START_CONFIG_MASK; //mask
cparata 0:6a670fda63c2 3940
cparata 0:6a670fda63c2 3941 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3942 }
cparata 0:6a670fda63c2 3943
cparata 0:6a670fda63c2 3944 /*******************************************************************************
cparata 0:6a670fda63c2 3945 * Function Name : LSM6DSL_ACC_GYRO_W_DATA_VAL_SEL_FIFO
cparata 0:6a670fda63c2 3946 * Description : Write DATA_VAL_SEL_FIFO
cparata 0:6a670fda63c2 3947 * Input : LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t
cparata 0:6a670fda63c2 3948 * Output : None
cparata 0:6a670fda63c2 3949 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3950 *******************************************************************************/
cparata 0:6a670fda63c2 3951 status_t LSM6DSL_ACC_GYRO_W_DATA_VAL_SEL_FIFO(void *handle, LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t newValue)
cparata 0:6a670fda63c2 3952 {
cparata 0:6a670fda63c2 3953 u8_t value;
cparata 0:6a670fda63c2 3954
cparata 0:6a670fda63c2 3955 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3956 return MEMS_ERROR;
cparata 0:6a670fda63c2 3957
cparata 0:6a670fda63c2 3958 value &= ~LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_MASK;
cparata 0:6a670fda63c2 3959 value |= newValue;
cparata 0:6a670fda63c2 3960
cparata 0:6a670fda63c2 3961 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3962 return MEMS_ERROR;
cparata 0:6a670fda63c2 3963
cparata 0:6a670fda63c2 3964 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3965 }
cparata 0:6a670fda63c2 3966
cparata 0:6a670fda63c2 3967 /*******************************************************************************
cparata 0:6a670fda63c2 3968 * Function Name : LSM6DSL_ACC_GYRO_R_DATA_VAL_SEL_FIFO
cparata 0:6a670fda63c2 3969 * Description : Read DATA_VAL_SEL_FIFO
cparata 0:6a670fda63c2 3970 * Input : Pointer to LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t
cparata 0:6a670fda63c2 3971 * Output : Status of DATA_VAL_SEL_FIFO see LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t
cparata 0:6a670fda63c2 3972 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3973 *******************************************************************************/
cparata 0:6a670fda63c2 3974 status_t LSM6DSL_ACC_GYRO_R_DATA_VAL_SEL_FIFO(void *handle, LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_t *value)
cparata 0:6a670fda63c2 3975 {
cparata 0:6a670fda63c2 3976 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 3977 return MEMS_ERROR;
cparata 0:6a670fda63c2 3978
cparata 0:6a670fda63c2 3979 *value &= LSM6DSL_ACC_GYRO_DATA_VAL_SEL_FIFO_MASK; //mask
cparata 0:6a670fda63c2 3980
cparata 0:6a670fda63c2 3981 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 3982 }
cparata 0:6a670fda63c2 3983
cparata 0:6a670fda63c2 3984 /*******************************************************************************
cparata 0:6a670fda63c2 3985 * Function Name : LSM6DSL_ACC_GYRO_W_DRDY_ON_INT1
cparata 0:6a670fda63c2 3986 * Description : Write DRDY_ON_INT1
cparata 0:6a670fda63c2 3987 * Input : LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t
cparata 0:6a670fda63c2 3988 * Output : None
cparata 0:6a670fda63c2 3989 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 3990 *******************************************************************************/
cparata 0:6a670fda63c2 3991 status_t LSM6DSL_ACC_GYRO_W_DRDY_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t newValue)
cparata 0:6a670fda63c2 3992 {
cparata 0:6a670fda63c2 3993 u8_t value;
cparata 0:6a670fda63c2 3994
cparata 0:6a670fda63c2 3995 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 3996 return MEMS_ERROR;
cparata 0:6a670fda63c2 3997
cparata 0:6a670fda63c2 3998 value &= ~LSM6DSL_ACC_GYRO_DRDY_ON_INT1_MASK;
cparata 0:6a670fda63c2 3999 value |= newValue;
cparata 0:6a670fda63c2 4000
cparata 0:6a670fda63c2 4001 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, &value, 1) )
cparata 0:6a670fda63c2 4002 return MEMS_ERROR;
cparata 0:6a670fda63c2 4003
cparata 0:6a670fda63c2 4004 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4005 }
cparata 0:6a670fda63c2 4006 /*******************************************************************************
cparata 0:6a670fda63c2 4007 * Function Name : LSM6DSL_ACC_GYRO_R_DRDY_ON_INT1
cparata 0:6a670fda63c2 4008 * Description : Read DRDY_ON_INT1
cparata 0:6a670fda63c2 4009 * Input : Pointer to LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t
cparata 0:6a670fda63c2 4010 * Output : Status of DRDY_ON_INT1 see LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t
cparata 0:6a670fda63c2 4011 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4012 *******************************************************************************/
cparata 0:6a670fda63c2 4013 status_t LSM6DSL_ACC_GYRO_R_DRDY_ON_INT1(void *handle, LSM6DSL_ACC_GYRO_DRDY_ON_INT1_t *value)
cparata 0:6a670fda63c2 4014 {
cparata 0:6a670fda63c2 4015 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MASTER_CONFIG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4016 return MEMS_ERROR;
cparata 0:6a670fda63c2 4017
cparata 0:6a670fda63c2 4018 *value &= LSM6DSL_ACC_GYRO_DRDY_ON_INT1_MASK; //mask
cparata 0:6a670fda63c2 4019
cparata 0:6a670fda63c2 4020 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4021 }
cparata 0:6a670fda63c2 4022
cparata 0:6a670fda63c2 4023 /*******************************************************************************
cparata 0:6a670fda63c2 4024 * Function Name : LSM6DSL_ACC_GYRO_R_Z_WU
cparata 0:6a670fda63c2 4025 * Description : Read Z_WU
cparata 0:6a670fda63c2 4026 * Input : Pointer to LSM6DSL_ACC_GYRO_Z_WU_t
cparata 0:6a670fda63c2 4027 * Output : Status of Z_WU see LSM6DSL_ACC_GYRO_Z_WU_t
cparata 0:6a670fda63c2 4028 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4029 *******************************************************************************/
cparata 0:6a670fda63c2 4030 status_t LSM6DSL_ACC_GYRO_R_Z_WU(void *handle, LSM6DSL_ACC_GYRO_Z_WU_t *value)
cparata 0:6a670fda63c2 4031 {
cparata 0:6a670fda63c2 4032 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4033 return MEMS_ERROR;
cparata 0:6a670fda63c2 4034
cparata 0:6a670fda63c2 4035 *value &= LSM6DSL_ACC_GYRO_Z_WU_MASK; //mask
cparata 0:6a670fda63c2 4036
cparata 0:6a670fda63c2 4037 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4038 }
cparata 0:6a670fda63c2 4039
cparata 0:6a670fda63c2 4040 /*******************************************************************************
cparata 0:6a670fda63c2 4041 * Function Name : LSM6DSL_ACC_GYRO_R_Y_WU
cparata 0:6a670fda63c2 4042 * Description : Read Y_WU
cparata 0:6a670fda63c2 4043 * Input : Pointer to LSM6DSL_ACC_GYRO_Y_WU_t
cparata 0:6a670fda63c2 4044 * Output : Status of Y_WU see LSM6DSL_ACC_GYRO_Y_WU_t
cparata 0:6a670fda63c2 4045 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4046 *******************************************************************************/
cparata 0:6a670fda63c2 4047 status_t LSM6DSL_ACC_GYRO_R_Y_WU(void *handle, LSM6DSL_ACC_GYRO_Y_WU_t *value)
cparata 0:6a670fda63c2 4048 {
cparata 0:6a670fda63c2 4049 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4050 return MEMS_ERROR;
cparata 0:6a670fda63c2 4051
cparata 0:6a670fda63c2 4052 *value &= LSM6DSL_ACC_GYRO_Y_WU_MASK; //mask
cparata 0:6a670fda63c2 4053
cparata 0:6a670fda63c2 4054 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4055 }
cparata 0:6a670fda63c2 4056
cparata 0:6a670fda63c2 4057 /*******************************************************************************
cparata 0:6a670fda63c2 4058 * Function Name : LSM6DSL_ACC_GYRO_R_X_WU
cparata 0:6a670fda63c2 4059 * Description : Read X_WU
cparata 0:6a670fda63c2 4060 * Input : Pointer to LSM6DSL_ACC_GYRO_X_WU_t
cparata 0:6a670fda63c2 4061 * Output : Status of X_WU see LSM6DSL_ACC_GYRO_X_WU_t
cparata 0:6a670fda63c2 4062 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4063 *******************************************************************************/
cparata 0:6a670fda63c2 4064 status_t LSM6DSL_ACC_GYRO_R_X_WU(void *handle, LSM6DSL_ACC_GYRO_X_WU_t *value)
cparata 0:6a670fda63c2 4065 {
cparata 0:6a670fda63c2 4066 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4067 return MEMS_ERROR;
cparata 0:6a670fda63c2 4068
cparata 0:6a670fda63c2 4069 *value &= LSM6DSL_ACC_GYRO_X_WU_MASK; //mask
cparata 0:6a670fda63c2 4070
cparata 0:6a670fda63c2 4071 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4072 }
cparata 0:6a670fda63c2 4073
cparata 0:6a670fda63c2 4074 /*******************************************************************************
cparata 0:6a670fda63c2 4075 * Function Name : LSM6DSL_ACC_GYRO_R_WU_EV_STATUS
cparata 0:6a670fda63c2 4076 * Description : Read WU_EV_STATUS
cparata 0:6a670fda63c2 4077 * Input : Pointer to LSM6DSL_ACC_GYRO_WU_EV_STATUS_t
cparata 0:6a670fda63c2 4078 * Output : Status of WU_EV_STATUS see LSM6DSL_ACC_GYRO_WU_EV_STATUS_t
cparata 0:6a670fda63c2 4079 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4080 *******************************************************************************/
cparata 0:6a670fda63c2 4081 status_t LSM6DSL_ACC_GYRO_R_WU_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_WU_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4082 {
cparata 0:6a670fda63c2 4083 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4084 return MEMS_ERROR;
cparata 0:6a670fda63c2 4085
cparata 0:6a670fda63c2 4086 *value &= LSM6DSL_ACC_GYRO_WU_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4087
cparata 0:6a670fda63c2 4088 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4089 }
cparata 0:6a670fda63c2 4090
cparata 0:6a670fda63c2 4091 /*******************************************************************************
cparata 0:6a670fda63c2 4092 * Function Name : LSM6DSL_ACC_GYRO_R_SLEEP_EV_STATUS
cparata 0:6a670fda63c2 4093 * Description : Read SLEEP_EV_STATUS
cparata 0:6a670fda63c2 4094 * Input : Pointer to LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t
cparata 0:6a670fda63c2 4095 * Output : Status of SLEEP_EV_STATUS see LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t
cparata 0:6a670fda63c2 4096 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4097 *******************************************************************************/
cparata 0:6a670fda63c2 4098 status_t LSM6DSL_ACC_GYRO_R_SLEEP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4099 {
cparata 0:6a670fda63c2 4100 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4101 return MEMS_ERROR;
cparata 0:6a670fda63c2 4102
cparata 0:6a670fda63c2 4103 *value &= LSM6DSL_ACC_GYRO_SLEEP_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4104
cparata 0:6a670fda63c2 4105 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4106 }
cparata 0:6a670fda63c2 4107
cparata 0:6a670fda63c2 4108 /*******************************************************************************
cparata 0:6a670fda63c2 4109 * Function Name : LSM6DSL_ACC_GYRO_R_FF_EV_STATUS
cparata 0:6a670fda63c2 4110 * Description : Read FF_EV_STATUS
cparata 0:6a670fda63c2 4111 * Input : Pointer to LSM6DSL_ACC_GYRO_FF_EV_STATUS_t
cparata 0:6a670fda63c2 4112 * Output : Status of FF_EV_STATUS see LSM6DSL_ACC_GYRO_FF_EV_STATUS_t
cparata 0:6a670fda63c2 4113 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4114 *******************************************************************************/
cparata 0:6a670fda63c2 4115 status_t LSM6DSL_ACC_GYRO_R_FF_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_FF_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4116 {
cparata 0:6a670fda63c2 4117 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4118 return MEMS_ERROR;
cparata 0:6a670fda63c2 4119
cparata 0:6a670fda63c2 4120 *value &= LSM6DSL_ACC_GYRO_FF_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4121
cparata 0:6a670fda63c2 4122 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4123 }
cparata 0:6a670fda63c2 4124
cparata 0:6a670fda63c2 4125 /*******************************************************************************
cparata 0:6a670fda63c2 4126 * Function Name : LSM6DSL_ACC_GYRO_R_Z_TAP
cparata 0:6a670fda63c2 4127 * Description : Read Z_TAP
cparata 0:6a670fda63c2 4128 * Input : Pointer to LSM6DSL_ACC_GYRO_Z_TAP_t
cparata 0:6a670fda63c2 4129 * Output : Status of Z_TAP see LSM6DSL_ACC_GYRO_Z_TAP_t
cparata 0:6a670fda63c2 4130 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4131 *******************************************************************************/
cparata 0:6a670fda63c2 4132 status_t LSM6DSL_ACC_GYRO_R_Z_TAP(void *handle, LSM6DSL_ACC_GYRO_Z_TAP_t *value)
cparata 0:6a670fda63c2 4133 {
cparata 0:6a670fda63c2 4134 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4135 return MEMS_ERROR;
cparata 0:6a670fda63c2 4136
cparata 0:6a670fda63c2 4137 *value &= LSM6DSL_ACC_GYRO_Z_TAP_MASK; //mask
cparata 0:6a670fda63c2 4138
cparata 0:6a670fda63c2 4139 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4140 }
cparata 0:6a670fda63c2 4141
cparata 0:6a670fda63c2 4142 /*******************************************************************************
cparata 0:6a670fda63c2 4143 * Function Name : LSM6DSL_ACC_GYRO_R_Y_TAP
cparata 0:6a670fda63c2 4144 * Description : Read Y_TAP
cparata 0:6a670fda63c2 4145 * Input : Pointer to LSM6DSL_ACC_GYRO_Y_TAP_t
cparata 0:6a670fda63c2 4146 * Output : Status of Y_TAP see LSM6DSL_ACC_GYRO_Y_TAP_t
cparata 0:6a670fda63c2 4147 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4148 *******************************************************************************/
cparata 0:6a670fda63c2 4149 status_t LSM6DSL_ACC_GYRO_R_Y_TAP(void *handle, LSM6DSL_ACC_GYRO_Y_TAP_t *value)
cparata 0:6a670fda63c2 4150 {
cparata 0:6a670fda63c2 4151 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4152 return MEMS_ERROR;
cparata 0:6a670fda63c2 4153
cparata 0:6a670fda63c2 4154 *value &= LSM6DSL_ACC_GYRO_Y_TAP_MASK; //mask
cparata 0:6a670fda63c2 4155
cparata 0:6a670fda63c2 4156 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4157 }
cparata 0:6a670fda63c2 4158
cparata 0:6a670fda63c2 4159 /*******************************************************************************
cparata 0:6a670fda63c2 4160 * Function Name : LSM6DSL_ACC_GYRO_R_X_TAP
cparata 0:6a670fda63c2 4161 * Description : Read X_TAP
cparata 0:6a670fda63c2 4162 * Input : Pointer to LSM6DSL_ACC_GYRO_X_TAP_t
cparata 0:6a670fda63c2 4163 * Output : Status of X_TAP see LSM6DSL_ACC_GYRO_X_TAP_t
cparata 0:6a670fda63c2 4164 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4165 *******************************************************************************/
cparata 0:6a670fda63c2 4166 status_t LSM6DSL_ACC_GYRO_R_X_TAP(void *handle, LSM6DSL_ACC_GYRO_X_TAP_t *value)
cparata 0:6a670fda63c2 4167 {
cparata 0:6a670fda63c2 4168 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4169 return MEMS_ERROR;
cparata 0:6a670fda63c2 4170
cparata 0:6a670fda63c2 4171 *value &= LSM6DSL_ACC_GYRO_X_TAP_MASK; //mask
cparata 0:6a670fda63c2 4172
cparata 0:6a670fda63c2 4173 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4174 }
cparata 0:6a670fda63c2 4175
cparata 0:6a670fda63c2 4176 /*******************************************************************************
cparata 0:6a670fda63c2 4177 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_SIGN
cparata 0:6a670fda63c2 4178 * Description : Read TAP_SIGN
cparata 0:6a670fda63c2 4179 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_SIGN_t
cparata 0:6a670fda63c2 4180 * Output : Status of TAP_SIGN see LSM6DSL_ACC_GYRO_TAP_SIGN_t
cparata 0:6a670fda63c2 4181 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4182 *******************************************************************************/
cparata 0:6a670fda63c2 4183 status_t LSM6DSL_ACC_GYRO_R_TAP_SIGN(void *handle, LSM6DSL_ACC_GYRO_TAP_SIGN_t *value)
cparata 0:6a670fda63c2 4184 {
cparata 0:6a670fda63c2 4185 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4186 return MEMS_ERROR;
cparata 0:6a670fda63c2 4187
cparata 0:6a670fda63c2 4188 *value &= LSM6DSL_ACC_GYRO_TAP_SIGN_MASK; //mask
cparata 0:6a670fda63c2 4189
cparata 0:6a670fda63c2 4190 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4191 }
cparata 0:6a670fda63c2 4192
cparata 0:6a670fda63c2 4193 /*******************************************************************************
cparata 0:6a670fda63c2 4194 * Function Name : LSM6DSL_ACC_GYRO_R_DOUBLE_TAP_EV_STATUS
cparata 0:6a670fda63c2 4195 * Description : Read DOUBLE_TAP_EV_STATUS
cparata 0:6a670fda63c2 4196 * Input : Pointer to LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t
cparata 0:6a670fda63c2 4197 * Output : Status of DOUBLE_TAP_EV_STATUS see LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t
cparata 0:6a670fda63c2 4198 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4199 *******************************************************************************/
cparata 0:6a670fda63c2 4200 status_t LSM6DSL_ACC_GYRO_R_DOUBLE_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4201 {
cparata 0:6a670fda63c2 4202 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4203 return MEMS_ERROR;
cparata 0:6a670fda63c2 4204
cparata 0:6a670fda63c2 4205 *value &= LSM6DSL_ACC_GYRO_DOUBLE_TAP_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4206
cparata 0:6a670fda63c2 4207 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4208 }
cparata 0:6a670fda63c2 4209
cparata 0:6a670fda63c2 4210 /*******************************************************************************
cparata 0:6a670fda63c2 4211 * Function Name : LSM6DSL_ACC_GYRO_R_SINGLE_TAP_EV_STATUS
cparata 0:6a670fda63c2 4212 * Description : Read SINGLE_TAP_EV_STATUS
cparata 0:6a670fda63c2 4213 * Input : Pointer to LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t
cparata 0:6a670fda63c2 4214 * Output : Status of SINGLE_TAP_EV_STATUS see LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t
cparata 0:6a670fda63c2 4215 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4216 *******************************************************************************/
cparata 0:6a670fda63c2 4217 status_t LSM6DSL_ACC_GYRO_R_SINGLE_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4218 {
cparata 0:6a670fda63c2 4219 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4220 return MEMS_ERROR;
cparata 0:6a670fda63c2 4221
cparata 0:6a670fda63c2 4222 *value &= LSM6DSL_ACC_GYRO_SINGLE_TAP_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4223
cparata 0:6a670fda63c2 4224 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4225 }
cparata 0:6a670fda63c2 4226
cparata 0:6a670fda63c2 4227 /*******************************************************************************
cparata 0:6a670fda63c2 4228 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_EV_STATUS
cparata 0:6a670fda63c2 4229 * Description : Read TAP_EV_STATUS
cparata 0:6a670fda63c2 4230 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t
cparata 0:6a670fda63c2 4231 * Output : Status of TAP_EV_STATUS see LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t
cparata 0:6a670fda63c2 4232 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4233 *******************************************************************************/
cparata 0:6a670fda63c2 4234 status_t LSM6DSL_ACC_GYRO_R_TAP_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_TAP_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4235 {
cparata 0:6a670fda63c2 4236 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4237 return MEMS_ERROR;
cparata 0:6a670fda63c2 4238
cparata 0:6a670fda63c2 4239 *value &= LSM6DSL_ACC_GYRO_TAP_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4240
cparata 0:6a670fda63c2 4241 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4242 }
cparata 0:6a670fda63c2 4243
cparata 0:6a670fda63c2 4244 /*******************************************************************************
cparata 0:6a670fda63c2 4245 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_XL
cparata 0:6a670fda63c2 4246 * Description : Read DSD_XL
cparata 0:6a670fda63c2 4247 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_XL_t
cparata 0:6a670fda63c2 4248 * Output : Status of DSD_XL see LSM6DSL_ACC_GYRO_DSD_XL_t
cparata 0:6a670fda63c2 4249 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4250 *******************************************************************************/
cparata 0:6a670fda63c2 4251 status_t LSM6DSL_ACC_GYRO_R_DSD_XL(void *handle, LSM6DSL_ACC_GYRO_DSD_XL_t *value)
cparata 0:6a670fda63c2 4252 {
cparata 0:6a670fda63c2 4253 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4254 return MEMS_ERROR;
cparata 0:6a670fda63c2 4255
cparata 0:6a670fda63c2 4256 *value &= LSM6DSL_ACC_GYRO_DSD_XL_MASK; //mask
cparata 0:6a670fda63c2 4257
cparata 0:6a670fda63c2 4258 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4259 }
cparata 0:6a670fda63c2 4260
cparata 0:6a670fda63c2 4261 /*******************************************************************************
cparata 0:6a670fda63c2 4262 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_XH
cparata 0:6a670fda63c2 4263 * Description : Read DSD_XH
cparata 0:6a670fda63c2 4264 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_XH_t
cparata 0:6a670fda63c2 4265 * Output : Status of DSD_XH see LSM6DSL_ACC_GYRO_DSD_XH_t
cparata 0:6a670fda63c2 4266 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4267 *******************************************************************************/
cparata 0:6a670fda63c2 4268 status_t LSM6DSL_ACC_GYRO_R_DSD_XH(void *handle, LSM6DSL_ACC_GYRO_DSD_XH_t *value)
cparata 0:6a670fda63c2 4269 {
cparata 0:6a670fda63c2 4270 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4271 return MEMS_ERROR;
cparata 0:6a670fda63c2 4272
cparata 0:6a670fda63c2 4273 *value &= LSM6DSL_ACC_GYRO_DSD_XH_MASK; //mask
cparata 0:6a670fda63c2 4274
cparata 0:6a670fda63c2 4275 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4276 }
cparata 0:6a670fda63c2 4277
cparata 0:6a670fda63c2 4278 /*******************************************************************************
cparata 0:6a670fda63c2 4279 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_YL
cparata 0:6a670fda63c2 4280 * Description : Read DSD_YL
cparata 0:6a670fda63c2 4281 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_YL_t
cparata 0:6a670fda63c2 4282 * Output : Status of DSD_YL see LSM6DSL_ACC_GYRO_DSD_YL_t
cparata 0:6a670fda63c2 4283 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4284 *******************************************************************************/
cparata 0:6a670fda63c2 4285 status_t LSM6DSL_ACC_GYRO_R_DSD_YL(void *handle, LSM6DSL_ACC_GYRO_DSD_YL_t *value)
cparata 0:6a670fda63c2 4286 {
cparata 0:6a670fda63c2 4287 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4288 return MEMS_ERROR;
cparata 0:6a670fda63c2 4289
cparata 0:6a670fda63c2 4290 *value &= LSM6DSL_ACC_GYRO_DSD_YL_MASK; //mask
cparata 0:6a670fda63c2 4291
cparata 0:6a670fda63c2 4292 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4293 }
cparata 0:6a670fda63c2 4294
cparata 0:6a670fda63c2 4295 /*******************************************************************************
cparata 0:6a670fda63c2 4296 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_YH
cparata 0:6a670fda63c2 4297 * Description : Read DSD_YH
cparata 0:6a670fda63c2 4298 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_YH_t
cparata 0:6a670fda63c2 4299 * Output : Status of DSD_YH see LSM6DSL_ACC_GYRO_DSD_YH_t
cparata 0:6a670fda63c2 4300 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4301 *******************************************************************************/
cparata 0:6a670fda63c2 4302 status_t LSM6DSL_ACC_GYRO_R_DSD_YH(void *handle, LSM6DSL_ACC_GYRO_DSD_YH_t *value)
cparata 0:6a670fda63c2 4303 {
cparata 0:6a670fda63c2 4304 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4305 return MEMS_ERROR;
cparata 0:6a670fda63c2 4306
cparata 0:6a670fda63c2 4307 *value &= LSM6DSL_ACC_GYRO_DSD_YH_MASK; //mask
cparata 0:6a670fda63c2 4308
cparata 0:6a670fda63c2 4309 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4310 }
cparata 0:6a670fda63c2 4311
cparata 0:6a670fda63c2 4312 /*******************************************************************************
cparata 0:6a670fda63c2 4313 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_ZL
cparata 0:6a670fda63c2 4314 * Description : Read DSD_ZL
cparata 0:6a670fda63c2 4315 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_ZL_t
cparata 0:6a670fda63c2 4316 * Output : Status of DSD_ZL see LSM6DSL_ACC_GYRO_DSD_ZL_t
cparata 0:6a670fda63c2 4317 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4318 *******************************************************************************/
cparata 0:6a670fda63c2 4319 status_t LSM6DSL_ACC_GYRO_R_DSD_ZL(void *handle, LSM6DSL_ACC_GYRO_DSD_ZL_t *value)
cparata 0:6a670fda63c2 4320 {
cparata 0:6a670fda63c2 4321 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4322 return MEMS_ERROR;
cparata 0:6a670fda63c2 4323
cparata 0:6a670fda63c2 4324 *value &= LSM6DSL_ACC_GYRO_DSD_ZL_MASK; //mask
cparata 0:6a670fda63c2 4325
cparata 0:6a670fda63c2 4326 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4327 }
cparata 0:6a670fda63c2 4328
cparata 0:6a670fda63c2 4329 /*******************************************************************************
cparata 0:6a670fda63c2 4330 * Function Name : LSM6DSL_ACC_GYRO_R_DSD_ZH
cparata 0:6a670fda63c2 4331 * Description : Read DSD_ZH
cparata 0:6a670fda63c2 4332 * Input : Pointer to LSM6DSL_ACC_GYRO_DSD_ZH_t
cparata 0:6a670fda63c2 4333 * Output : Status of DSD_ZH see LSM6DSL_ACC_GYRO_DSD_ZH_t
cparata 0:6a670fda63c2 4334 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4335 *******************************************************************************/
cparata 0:6a670fda63c2 4336 status_t LSM6DSL_ACC_GYRO_R_DSD_ZH(void *handle, LSM6DSL_ACC_GYRO_DSD_ZH_t *value)
cparata 0:6a670fda63c2 4337 {
cparata 0:6a670fda63c2 4338 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4339 return MEMS_ERROR;
cparata 0:6a670fda63c2 4340
cparata 0:6a670fda63c2 4341 *value &= LSM6DSL_ACC_GYRO_DSD_ZH_MASK; //mask
cparata 0:6a670fda63c2 4342
cparata 0:6a670fda63c2 4343 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4344 }
cparata 0:6a670fda63c2 4345
cparata 0:6a670fda63c2 4346 /*******************************************************************************
cparata 0:6a670fda63c2 4347 * Function Name : LSM6DSL_ACC_GYRO_R_D6D_EV_STATUS
cparata 0:6a670fda63c2 4348 * Description : Read D6D_EV_STATUS
cparata 0:6a670fda63c2 4349 * Input : Pointer to LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t
cparata 0:6a670fda63c2 4350 * Output : Status of D6D_EV_STATUS see LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t
cparata 0:6a670fda63c2 4351 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4352 *******************************************************************************/
cparata 0:6a670fda63c2 4353 status_t LSM6DSL_ACC_GYRO_R_D6D_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_D6D_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4354 {
cparata 0:6a670fda63c2 4355 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_D6D_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4356 return MEMS_ERROR;
cparata 0:6a670fda63c2 4357
cparata 0:6a670fda63c2 4358 *value &= LSM6DSL_ACC_GYRO_D6D_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4359
cparata 0:6a670fda63c2 4360 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4361 }
cparata 0:6a670fda63c2 4362
cparata 0:6a670fda63c2 4363 /*******************************************************************************
cparata 0:6a670fda63c2 4364 * Function Name : LSM6DSL_ACC_GYRO_R_XLDA
cparata 0:6a670fda63c2 4365 * Description : Read XLDA
cparata 0:6a670fda63c2 4366 * Input : Pointer to LSM6DSL_ACC_GYRO_XLDA_t
cparata 0:6a670fda63c2 4367 * Output : Status of XLDA see LSM6DSL_ACC_GYRO_XLDA_t
cparata 0:6a670fda63c2 4368 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4369 *******************************************************************************/
cparata 0:6a670fda63c2 4370 status_t LSM6DSL_ACC_GYRO_R_XLDA(void *handle, LSM6DSL_ACC_GYRO_XLDA_t *value)
cparata 0:6a670fda63c2 4371 {
cparata 0:6a670fda63c2 4372 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STATUS_REG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4373 return MEMS_ERROR;
cparata 0:6a670fda63c2 4374
cparata 0:6a670fda63c2 4375 *value &= LSM6DSL_ACC_GYRO_XLDA_MASK; //mask
cparata 0:6a670fda63c2 4376
cparata 0:6a670fda63c2 4377 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4378 }
cparata 0:6a670fda63c2 4379
cparata 0:6a670fda63c2 4380 /*******************************************************************************
cparata 0:6a670fda63c2 4381 * Function Name : LSM6DSL_ACC_GYRO_R_GDA
cparata 0:6a670fda63c2 4382 * Description : Read GDA
cparata 0:6a670fda63c2 4383 * Input : Pointer to LSM6DSL_ACC_GYRO_GDA_t
cparata 0:6a670fda63c2 4384 * Output : Status of GDA see LSM6DSL_ACC_GYRO_GDA_t
cparata 0:6a670fda63c2 4385 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4386 *******************************************************************************/
cparata 0:6a670fda63c2 4387 status_t LSM6DSL_ACC_GYRO_R_GDA(void *handle, LSM6DSL_ACC_GYRO_GDA_t *value)
cparata 0:6a670fda63c2 4388 {
cparata 0:6a670fda63c2 4389 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STATUS_REG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4390 return MEMS_ERROR;
cparata 0:6a670fda63c2 4391
cparata 0:6a670fda63c2 4392 *value &= LSM6DSL_ACC_GYRO_GDA_MASK; //mask
cparata 0:6a670fda63c2 4393
cparata 0:6a670fda63c2 4394 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4395 }
cparata 0:6a670fda63c2 4396
cparata 0:6a670fda63c2 4397 /*******************************************************************************
cparata 0:6a670fda63c2 4398 * Function Name : LSM6DSL_ACC_GYRO_R_TDA
cparata 0:6a670fda63c2 4399 * Description : Read GDA
cparata 0:6a670fda63c2 4400 * Input : Pointer to LSM6DSL_ACC_GYRO_TDA_t
cparata 0:6a670fda63c2 4401 * Output : Status of GDA see LSM6DSL_ACC_GYRO_TDA_t
cparata 0:6a670fda63c2 4402 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4403 *******************************************************************************/
cparata 0:6a670fda63c2 4404 status_t LSM6DSL_ACC_GYRO_R_TDA(void *handle, LSM6DSL_ACC_GYRO_TDA_t *value)
cparata 0:6a670fda63c2 4405 {
cparata 0:6a670fda63c2 4406 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STATUS_REG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4407 return MEMS_ERROR;
cparata 0:6a670fda63c2 4408
cparata 0:6a670fda63c2 4409 *value &= LSM6DSL_ACC_GYRO_TDA_MASK; //mask
cparata 0:6a670fda63c2 4410
cparata 0:6a670fda63c2 4411 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4412 }
cparata 0:6a670fda63c2 4413
cparata 0:6a670fda63c2 4414 /*******************************************************************************
cparata 0:6a670fda63c2 4415 * Function Name : LSM6DSL_ACC_GYRO_R_FIFONumOfEntries
cparata 0:6a670fda63c2 4416 * Description : Read DIFF_FIFO
cparata 0:6a670fda63c2 4417 * Input : Pointer to u16_t
cparata 0:6a670fda63c2 4418 * Output : Status of DIFF_FIFO
cparata 0:6a670fda63c2 4419 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4420 *******************************************************************************/
cparata 0:6a670fda63c2 4421 status_t LSM6DSL_ACC_GYRO_R_FIFONumOfEntries(void *handle, u16_t *value)
cparata 0:6a670fda63c2 4422 {
cparata 0:6a670fda63c2 4423 u8_t valueH, valueL;
cparata 0:6a670fda63c2 4424
cparata 0:6a670fda63c2 4425 /* Low part from FIFO_STATUS1 */
cparata 0:6a670fda63c2 4426 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS1, (u8_t *)&valueL, 1) )
cparata 0:6a670fda63c2 4427 return MEMS_ERROR;
cparata 0:6a670fda63c2 4428
cparata 0:6a670fda63c2 4429 valueL &= LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS1_MASK; //coerce
cparata 0:6a670fda63c2 4430 valueL = valueL >> LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS1_POSITION; //mask
cparata 0:6a670fda63c2 4431
cparata 0:6a670fda63c2 4432 /* High part from FIFO_STATUS2 */
cparata 0:6a670fda63c2 4433 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)&valueH, 1) )
cparata 0:6a670fda63c2 4434 return MEMS_ERROR;
cparata 0:6a670fda63c2 4435
cparata 0:6a670fda63c2 4436 valueH &= LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS2_MASK; //coerce
cparata 0:6a670fda63c2 4437 valueH = valueH >> LSM6DSL_ACC_GYRO_DIFF_FIFO_STATUS2_POSITION; //mask
cparata 0:6a670fda63c2 4438
cparata 0:6a670fda63c2 4439 *value = ((valueH << 8) & 0xFF00) | valueL;
cparata 0:6a670fda63c2 4440
cparata 0:6a670fda63c2 4441 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4442 }
cparata 0:6a670fda63c2 4443
cparata 0:6a670fda63c2 4444 /*******************************************************************************
cparata 0:6a670fda63c2 4445 * Function Name : LSM6DSL_ACC_GYRO_R_FIFOEmpty
cparata 0:6a670fda63c2 4446 * Description : Read FIFO_EMPTY
cparata 0:6a670fda63c2 4447 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_EMPTY_t
cparata 0:6a670fda63c2 4448 * Output : Status of FIFO_EMPTY see LSM6DSL_ACC_GYRO_FIFO_EMPTY_t
cparata 0:6a670fda63c2 4449 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4450 *******************************************************************************/
cparata 0:6a670fda63c2 4451 status_t LSM6DSL_ACC_GYRO_R_FIFOEmpty(void *handle, LSM6DSL_ACC_GYRO_FIFO_EMPTY_t *value)
cparata 0:6a670fda63c2 4452 {
cparata 0:6a670fda63c2 4453 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4454 return MEMS_ERROR;
cparata 0:6a670fda63c2 4455
cparata 0:6a670fda63c2 4456 *value &= LSM6DSL_ACC_GYRO_FIFO_EMPTY_MASK; //mask
cparata 0:6a670fda63c2 4457
cparata 0:6a670fda63c2 4458 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4459 }
cparata 0:6a670fda63c2 4460
cparata 0:6a670fda63c2 4461 /*******************************************************************************
cparata 0:6a670fda63c2 4462 * Function Name : LSM6DSL_ACC_GYRO_R_FIFOFull
cparata 0:6a670fda63c2 4463 * Description : Read FIFO_FULL
cparata 0:6a670fda63c2 4464 * Input : Pointer to LSM6DSL_ACC_GYRO_FIFO_FULL_t
cparata 0:6a670fda63c2 4465 * Output : Status of FIFO_FULL see LSM6DSL_ACC_GYRO_FIFO_FULL_t
cparata 0:6a670fda63c2 4466 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4467 *******************************************************************************/
cparata 0:6a670fda63c2 4468 status_t LSM6DSL_ACC_GYRO_R_FIFOFull(void *handle, LSM6DSL_ACC_GYRO_FIFO_FULL_t *value)
cparata 0:6a670fda63c2 4469 {
cparata 0:6a670fda63c2 4470 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4471 return MEMS_ERROR;
cparata 0:6a670fda63c2 4472
cparata 0:6a670fda63c2 4473 *value &= LSM6DSL_ACC_GYRO_FIFO_FULL_MASK; //mask
cparata 0:6a670fda63c2 4474
cparata 0:6a670fda63c2 4475 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4476 }
cparata 0:6a670fda63c2 4477
cparata 0:6a670fda63c2 4478 /*******************************************************************************
cparata 0:6a670fda63c2 4479 * Function Name : LSM6DSL_ACC_GYRO_R_OVERRUN
cparata 0:6a670fda63c2 4480 * Description : Read OVERRUN
cparata 0:6a670fda63c2 4481 * Input : Pointer to LSM6DSL_ACC_GYRO_OVERRUN_t
cparata 0:6a670fda63c2 4482 * Output : Status of OVERRUN see LSM6DSL_ACC_GYRO_OVERRUN_t
cparata 0:6a670fda63c2 4483 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4484 *******************************************************************************/
cparata 0:6a670fda63c2 4485 status_t LSM6DSL_ACC_GYRO_R_OVERRUN(void *handle, LSM6DSL_ACC_GYRO_OVERRUN_t *value)
cparata 0:6a670fda63c2 4486 {
cparata 0:6a670fda63c2 4487 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4488 return MEMS_ERROR;
cparata 0:6a670fda63c2 4489
cparata 0:6a670fda63c2 4490 *value &= LSM6DSL_ACC_GYRO_OVERRUN_MASK; //mask
cparata 0:6a670fda63c2 4491
cparata 0:6a670fda63c2 4492 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4493 }
cparata 0:6a670fda63c2 4494
cparata 0:6a670fda63c2 4495 /*******************************************************************************
cparata 0:6a670fda63c2 4496 * Function Name : LSM6DSL_ACC_GYRO_R_WaterMark
cparata 0:6a670fda63c2 4497 * Description : Read WTM
cparata 0:6a670fda63c2 4498 * Input : Pointer to LSM6DSL_ACC_GYRO_WTM_t
cparata 0:6a670fda63c2 4499 * Output : Status of WTM see LSM6DSL_ACC_GYRO_WTM_t
cparata 0:6a670fda63c2 4500 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4501 *******************************************************************************/
cparata 0:6a670fda63c2 4502 status_t LSM6DSL_ACC_GYRO_R_WaterMark(void *handle, LSM6DSL_ACC_GYRO_WTM_t *value)
cparata 0:6a670fda63c2 4503 {
cparata 0:6a670fda63c2 4504 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4505 return MEMS_ERROR;
cparata 0:6a670fda63c2 4506
cparata 0:6a670fda63c2 4507 *value &= LSM6DSL_ACC_GYRO_WTM_MASK; //mask
cparata 0:6a670fda63c2 4508
cparata 0:6a670fda63c2 4509 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4510 }
cparata 0:6a670fda63c2 4511
cparata 0:6a670fda63c2 4512 /*******************************************************************************
cparata 0:6a670fda63c2 4513 * Function Name : LSM6DSL_ACC_GYRO_R_FIFOPattern
cparata 0:6a670fda63c2 4514 * Description : Read FIFO_PATTERN
cparata 0:6a670fda63c2 4515 * Input : Pointer to u16_t
cparata 0:6a670fda63c2 4516 * Output : Status of FIFO_PATTERN
cparata 0:6a670fda63c2 4517 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4518 *******************************************************************************/
cparata 0:6a670fda63c2 4519 status_t LSM6DSL_ACC_GYRO_R_FIFOPattern(void *handle, u16_t *value)
cparata 0:6a670fda63c2 4520 {
cparata 0:6a670fda63c2 4521 u8_t valueH, valueL;
cparata 0:6a670fda63c2 4522
cparata 0:6a670fda63c2 4523 /* Low part from FIFO_STATUS3 */
cparata 0:6a670fda63c2 4524 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS3, (u8_t *)&valueL, 1) )
cparata 0:6a670fda63c2 4525 return MEMS_ERROR;
cparata 0:6a670fda63c2 4526
cparata 0:6a670fda63c2 4527 valueL &= LSM6DSL_ACC_GYRO_FIFO_STATUS3_PATTERN_MASK; //coerce
cparata 0:6a670fda63c2 4528 valueL = valueL >> LSM6DSL_ACC_GYRO_FIFO_STATUS3_PATTERN_POSITION; //mask
cparata 0:6a670fda63c2 4529
cparata 0:6a670fda63c2 4530 /* High part from FIFO_STATUS4 */
cparata 0:6a670fda63c2 4531 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_STATUS4, (u8_t *)&valueH, 1) )
cparata 0:6a670fda63c2 4532 return MEMS_ERROR;
cparata 0:6a670fda63c2 4533
cparata 0:6a670fda63c2 4534 valueH &= LSM6DSL_ACC_GYRO_FIFO_STATUS4_PATTERN_MASK; //coerce
cparata 0:6a670fda63c2 4535 valueH = valueH >> LSM6DSL_ACC_GYRO_FIFO_STATUS4_PATTERN_POSITION; //mask
cparata 0:6a670fda63c2 4536
cparata 0:6a670fda63c2 4537 *value = ((valueH << 8) & 0xFF00) | valueL;
cparata 0:6a670fda63c2 4538
cparata 0:6a670fda63c2 4539 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4540 }
cparata 0:6a670fda63c2 4541
cparata 0:6a670fda63c2 4542 /*******************************************************************************
cparata 0:6a670fda63c2 4543 * Function Name : LSM6DSL_ACC_GYRO_R_SENS_HUB_END
cparata 0:6a670fda63c2 4544 * Description : Read SENS_HUB_END
cparata 0:6a670fda63c2 4545 * Input : Pointer to LSM6DSL_ACC_GYRO_SENS_HUB_END_t
cparata 0:6a670fda63c2 4546 * Output : Status of SENS_HUB_END see LSM6DSL_ACC_GYRO_SENS_HUB_END_t
cparata 0:6a670fda63c2 4547 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4548 *******************************************************************************/
cparata 0:6a670fda63c2 4549 status_t LSM6DSL_ACC_GYRO_R_SENS_HUB_END(void *handle, LSM6DSL_ACC_GYRO_SENS_HUB_END_t *value)
cparata 0:6a670fda63c2 4550 {
cparata 0:6a670fda63c2 4551 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4552 return MEMS_ERROR;
cparata 0:6a670fda63c2 4553
cparata 0:6a670fda63c2 4554 *value &= LSM6DSL_ACC_GYRO_SENS_HUB_END_MASK; //mask
cparata 0:6a670fda63c2 4555
cparata 0:6a670fda63c2 4556 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4557 }
cparata 0:6a670fda63c2 4558
cparata 0:6a670fda63c2 4559 /*******************************************************************************
cparata 0:6a670fda63c2 4560 * Function Name : LSM6DSL_ACC_GYRO_R_SOFT_IRON_END
cparata 0:6a670fda63c2 4561 * Description : Read SOFT_IRON_END
cparata 0:6a670fda63c2 4562 * Input : Pointer to LSM6DSL_ACC_GYRO_SOFT_IRON_END_t
cparata 0:6a670fda63c2 4563 * Output : Status of SOFT_IRON_END see LSM6DSL_ACC_GYRO_SOFT_IRON_END_t
cparata 0:6a670fda63c2 4564 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4565 *******************************************************************************/
cparata 0:6a670fda63c2 4566 status_t LSM6DSL_ACC_GYRO_R_SOFT_IRON_END(void *handle, LSM6DSL_ACC_GYRO_SOFT_IRON_END_t *value)
cparata 0:6a670fda63c2 4567 {
cparata 0:6a670fda63c2 4568 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4569 return MEMS_ERROR;
cparata 0:6a670fda63c2 4570
cparata 0:6a670fda63c2 4571 *value &= LSM6DSL_ACC_GYRO_SOFT_IRON_END_MASK; //mask
cparata 0:6a670fda63c2 4572
cparata 0:6a670fda63c2 4573 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4574 }
cparata 0:6a670fda63c2 4575
cparata 0:6a670fda63c2 4576 /*******************************************************************************
cparata 0:6a670fda63c2 4577 * Function Name : LSM6DSL_ACC_GYRO_R_HardIron
cparata 0:6a670fda63c2 4578 * Description : Read HI_FAIL
cparata 0:6a670fda63c2 4579 * Input : Pointer to LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t
cparata 0:6a670fda63c2 4580 * Output : Status of HI_FAIL see LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t
cparata 0:6a670fda63c2 4581 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4582 *******************************************************************************/
cparata 0:6a670fda63c2 4583 status_t LSM6DSL_ACC_GYRO_R_HardIron(void *handle, LSM6DSL_ACC_GYRO_SOFT_HARD_IRON_STAT_t *value)
cparata 0:6a670fda63c2 4584 {
cparata 0:6a670fda63c2 4585 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4586 return MEMS_ERROR;
cparata 0:6a670fda63c2 4587
cparata 0:6a670fda63c2 4588 *value &= LSM6DSL_ACC_GYRO_HARD_IRON_STAT_MASK; //mask
cparata 0:6a670fda63c2 4589
cparata 0:6a670fda63c2 4590 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4591 }
cparata 0:6a670fda63c2 4592
cparata 0:6a670fda63c2 4593 /*******************************************************************************
cparata 0:6a670fda63c2 4594 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_OVERFLOW
cparata 0:6a670fda63c2 4595 * Description : Read STEP_OVERFLOW
cparata 0:6a670fda63c2 4596 * Input : Pointer to LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t
cparata 0:6a670fda63c2 4597 * Output : Status of STEP_OVERFLOW see LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t
cparata 0:6a670fda63c2 4598 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4599 *******************************************************************************/
cparata 0:6a670fda63c2 4600 status_t LSM6DSL_ACC_GYRO_R_STEP_OVERFLOW(void *handle, LSM6DSL_ACC_GYRO_STEP_OVERFLOW_t *value)
cparata 0:6a670fda63c2 4601 {
cparata 0:6a670fda63c2 4602 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4603 return MEMS_ERROR;
cparata 0:6a670fda63c2 4604
cparata 0:6a670fda63c2 4605 *value &= LSM6DSL_ACC_GYRO_STEP_OVERFLOW_MASK; //mask
cparata 0:6a670fda63c2 4606
cparata 0:6a670fda63c2 4607 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4608 }
cparata 0:6a670fda63c2 4609
cparata 0:6a670fda63c2 4610 /*******************************************************************************
cparata 0:6a670fda63c2 4611 * Function Name : LSM6DSL_ACC_GYRO_R_STEP_COUNT_DELTA
cparata 0:6a670fda63c2 4612 * Description : Read STEP_COUNT_DELTA_IA
cparata 0:6a670fda63c2 4613 * Input : Pointer to LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t
cparata 0:6a670fda63c2 4614 * Output : Status of STEP_COUNT_DELTA_IA see LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t
cparata 0:6a670fda63c2 4615 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4616 *******************************************************************************/
cparata 0:6a670fda63c2 4617 status_t LSM6DSL_ACC_GYRO_R_STEP_COUNT_DELTA(void *handle, LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_t *value)
cparata 0:6a670fda63c2 4618 {
cparata 0:6a670fda63c2 4619 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4620 return MEMS_ERROR;
cparata 0:6a670fda63c2 4621
cparata 0:6a670fda63c2 4622 *value &= LSM6DSL_ACC_GYRO_STEP_COUNT_DELTA_MASK; //mask
cparata 0:6a670fda63c2 4623
cparata 0:6a670fda63c2 4624 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4625 }
cparata 0:6a670fda63c2 4626
cparata 0:6a670fda63c2 4627 /*******************************************************************************
cparata 0:6a670fda63c2 4628 * Function Name : LSM6DSL_ACC_GYRO_R_PEDO_EV_STATUS
cparata 0:6a670fda63c2 4629 * Description : Read PEDO_EV_STATUS
cparata 0:6a670fda63c2 4630 * Input : Pointer to LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t
cparata 0:6a670fda63c2 4631 * Output : Status of PEDO_EV_STATUS see LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t
cparata 0:6a670fda63c2 4632 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4633 *******************************************************************************/
cparata 0:6a670fda63c2 4634 status_t LSM6DSL_ACC_GYRO_R_PEDO_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4635 {
cparata 0:6a670fda63c2 4636 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4637 return MEMS_ERROR;
cparata 0:6a670fda63c2 4638
cparata 0:6a670fda63c2 4639 *value &= LSM6DSL_ACC_GYRO_PEDO_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4640
cparata 0:6a670fda63c2 4641 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4642 }
cparata 0:6a670fda63c2 4643
cparata 0:6a670fda63c2 4644 /*******************************************************************************
cparata 0:6a670fda63c2 4645 * Function Name : LSM6DSL_ACC_GYRO_R_TILT_EV_STATUS
cparata 0:6a670fda63c2 4646 * Description : Read TILT_EV_STATUS
cparata 0:6a670fda63c2 4647 * Input : Pointer to LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t
cparata 0:6a670fda63c2 4648 * Output : Status of TILT_EV_STATUS see LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t
cparata 0:6a670fda63c2 4649 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4650 *******************************************************************************/
cparata 0:6a670fda63c2 4651 status_t LSM6DSL_ACC_GYRO_R_TILT_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_TILT_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4652 {
cparata 0:6a670fda63c2 4653 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4654 return MEMS_ERROR;
cparata 0:6a670fda63c2 4655
cparata 0:6a670fda63c2 4656 *value &= LSM6DSL_ACC_GYRO_TILT_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4657
cparata 0:6a670fda63c2 4658 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4659 }
cparata 0:6a670fda63c2 4660
cparata 0:6a670fda63c2 4661 /*******************************************************************************
cparata 0:6a670fda63c2 4662 * Function Name : LSM6DSL_ACC_GYRO_R_SIGN_MOT_EV_STATUS
cparata 0:6a670fda63c2 4663 * Description : Read SIGN_MOT_EV_STATUS
cparata 0:6a670fda63c2 4664 * Input : Pointer to LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t
cparata 0:6a670fda63c2 4665 * Output : Status of SIGN_MOT_EV_STATUS see LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t
cparata 0:6a670fda63c2 4666 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4667 *******************************************************************************/
cparata 0:6a670fda63c2 4668 status_t LSM6DSL_ACC_GYRO_R_SIGN_MOT_EV_STATUS(void *handle, LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_t *value)
cparata 0:6a670fda63c2 4669 {
cparata 0:6a670fda63c2 4670 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FUNC_SRC, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4671 return MEMS_ERROR;
cparata 0:6a670fda63c2 4672
cparata 0:6a670fda63c2 4673 *value &= LSM6DSL_ACC_GYRO_SIGN_MOT_EV_STATUS_MASK; //mask
cparata 0:6a670fda63c2 4674
cparata 0:6a670fda63c2 4675 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4676 }
cparata 0:6a670fda63c2 4677
cparata 0:6a670fda63c2 4678 /*******************************************************************************
cparata 0:6a670fda63c2 4679 * Function Name : LSM6DSL_ACC_GYRO_W_LIR
cparata 0:6a670fda63c2 4680 * Description : Write LIR
cparata 0:6a670fda63c2 4681 * Input : LSM6DSL_ACC_GYRO_LIR_t
cparata 0:6a670fda63c2 4682 * Output : None
cparata 0:6a670fda63c2 4683 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4684 *******************************************************************************/
cparata 0:6a670fda63c2 4685 status_t LSM6DSL_ACC_GYRO_W_LIR(void *handle, LSM6DSL_ACC_GYRO_LIR_t newValue)
cparata 0:6a670fda63c2 4686 {
cparata 0:6a670fda63c2 4687 u8_t value;
cparata 0:6a670fda63c2 4688
cparata 0:6a670fda63c2 4689 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4690 return MEMS_ERROR;
cparata 0:6a670fda63c2 4691
cparata 0:6a670fda63c2 4692 value &= ~LSM6DSL_ACC_GYRO_LIR_MASK;
cparata 0:6a670fda63c2 4693 value |= newValue;
cparata 0:6a670fda63c2 4694
cparata 0:6a670fda63c2 4695 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4696 return MEMS_ERROR;
cparata 0:6a670fda63c2 4697
cparata 0:6a670fda63c2 4698 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4699 }
cparata 0:6a670fda63c2 4700
cparata 0:6a670fda63c2 4701 /*******************************************************************************
cparata 0:6a670fda63c2 4702 * Function Name : LSM6DSL_ACC_GYRO_R_LIR
cparata 0:6a670fda63c2 4703 * Description : Read LIR
cparata 0:6a670fda63c2 4704 * Input : Pointer to LSM6DSL_ACC_GYRO_LIR_t
cparata 0:6a670fda63c2 4705 * Output : Status of LIR see LSM6DSL_ACC_GYRO_LIR_t
cparata 0:6a670fda63c2 4706 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4707 *******************************************************************************/
cparata 0:6a670fda63c2 4708 status_t LSM6DSL_ACC_GYRO_R_LIR(void *handle, LSM6DSL_ACC_GYRO_LIR_t *value)
cparata 0:6a670fda63c2 4709 {
cparata 0:6a670fda63c2 4710 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4711 return MEMS_ERROR;
cparata 0:6a670fda63c2 4712
cparata 0:6a670fda63c2 4713 *value &= LSM6DSL_ACC_GYRO_LIR_MASK; //mask
cparata 0:6a670fda63c2 4714
cparata 0:6a670fda63c2 4715 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4716 }
cparata 0:6a670fda63c2 4717
cparata 0:6a670fda63c2 4718 /*******************************************************************************
cparata 0:6a670fda63c2 4719 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_Z_EN
cparata 0:6a670fda63c2 4720 * Description : Write TAP_Z_EN
cparata 0:6a670fda63c2 4721 * Input : LSM6DSL_ACC_GYRO_TAP_Z_EN_t
cparata 0:6a670fda63c2 4722 * Output : None
cparata 0:6a670fda63c2 4723 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4724 *******************************************************************************/
cparata 0:6a670fda63c2 4725 status_t LSM6DSL_ACC_GYRO_W_TAP_Z_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Z_EN_t newValue)
cparata 0:6a670fda63c2 4726 {
cparata 0:6a670fda63c2 4727 u8_t value;
cparata 0:6a670fda63c2 4728
cparata 0:6a670fda63c2 4729 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4730 return MEMS_ERROR;
cparata 0:6a670fda63c2 4731
cparata 0:6a670fda63c2 4732 value &= ~LSM6DSL_ACC_GYRO_TAP_Z_EN_MASK;
cparata 0:6a670fda63c2 4733 value |= newValue;
cparata 0:6a670fda63c2 4734
cparata 0:6a670fda63c2 4735 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4736 return MEMS_ERROR;
cparata 0:6a670fda63c2 4737
cparata 0:6a670fda63c2 4738 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4739 }
cparata 0:6a670fda63c2 4740
cparata 0:6a670fda63c2 4741 /*******************************************************************************
cparata 0:6a670fda63c2 4742 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_Z_EN
cparata 0:6a670fda63c2 4743 * Description : Read TAP_Z_EN
cparata 0:6a670fda63c2 4744 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_Z_EN_t
cparata 0:6a670fda63c2 4745 * Output : Status of TAP_Z_EN see LSM6DSL_ACC_GYRO_TAP_Z_EN_t
cparata 0:6a670fda63c2 4746 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4747 *******************************************************************************/
cparata 0:6a670fda63c2 4748 status_t LSM6DSL_ACC_GYRO_R_TAP_Z_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Z_EN_t *value)
cparata 0:6a670fda63c2 4749 {
cparata 0:6a670fda63c2 4750 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4751 return MEMS_ERROR;
cparata 0:6a670fda63c2 4752
cparata 0:6a670fda63c2 4753 *value &= LSM6DSL_ACC_GYRO_TAP_Z_EN_MASK; //mask
cparata 0:6a670fda63c2 4754
cparata 0:6a670fda63c2 4755 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4756 }
cparata 0:6a670fda63c2 4757
cparata 0:6a670fda63c2 4758 /*******************************************************************************
cparata 0:6a670fda63c2 4759 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_Y_EN
cparata 0:6a670fda63c2 4760 * Description : Write TAP_Y_EN
cparata 0:6a670fda63c2 4761 * Input : LSM6DSL_ACC_GYRO_TAP_Y_EN_t
cparata 0:6a670fda63c2 4762 * Output : None
cparata 0:6a670fda63c2 4763 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4764 *******************************************************************************/
cparata 0:6a670fda63c2 4765 status_t LSM6DSL_ACC_GYRO_W_TAP_Y_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Y_EN_t newValue)
cparata 0:6a670fda63c2 4766 {
cparata 0:6a670fda63c2 4767 u8_t value;
cparata 0:6a670fda63c2 4768
cparata 0:6a670fda63c2 4769 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4770 return MEMS_ERROR;
cparata 0:6a670fda63c2 4771
cparata 0:6a670fda63c2 4772 value &= ~LSM6DSL_ACC_GYRO_TAP_Y_EN_MASK;
cparata 0:6a670fda63c2 4773 value |= newValue;
cparata 0:6a670fda63c2 4774
cparata 0:6a670fda63c2 4775 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4776 return MEMS_ERROR;
cparata 0:6a670fda63c2 4777
cparata 0:6a670fda63c2 4778 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4779 }
cparata 0:6a670fda63c2 4780
cparata 0:6a670fda63c2 4781 /*******************************************************************************
cparata 0:6a670fda63c2 4782 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_Y_EN
cparata 0:6a670fda63c2 4783 * Description : Read TAP_Y_EN
cparata 0:6a670fda63c2 4784 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_Y_EN_t
cparata 0:6a670fda63c2 4785 * Output : Status of TAP_Y_EN see LSM6DSL_ACC_GYRO_TAP_Y_EN_t
cparata 0:6a670fda63c2 4786 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4787 *******************************************************************************/
cparata 0:6a670fda63c2 4788 status_t LSM6DSL_ACC_GYRO_R_TAP_Y_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_Y_EN_t *value)
cparata 0:6a670fda63c2 4789 {
cparata 0:6a670fda63c2 4790 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4791 return MEMS_ERROR;
cparata 0:6a670fda63c2 4792
cparata 0:6a670fda63c2 4793 *value &= LSM6DSL_ACC_GYRO_TAP_Y_EN_MASK; //mask
cparata 0:6a670fda63c2 4794
cparata 0:6a670fda63c2 4795 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4796 }
cparata 0:6a670fda63c2 4797
cparata 0:6a670fda63c2 4798 /*******************************************************************************
cparata 0:6a670fda63c2 4799 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_X_EN
cparata 0:6a670fda63c2 4800 * Description : Write TAP_X_EN
cparata 0:6a670fda63c2 4801 * Input : LSM6DSL_ACC_GYRO_TAP_X_EN_t
cparata 0:6a670fda63c2 4802 * Output : None
cparata 0:6a670fda63c2 4803 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4804 *******************************************************************************/
cparata 0:6a670fda63c2 4805 status_t LSM6DSL_ACC_GYRO_W_TAP_X_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_X_EN_t newValue)
cparata 0:6a670fda63c2 4806 {
cparata 0:6a670fda63c2 4807 u8_t value;
cparata 0:6a670fda63c2 4808
cparata 0:6a670fda63c2 4809 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4810 return MEMS_ERROR;
cparata 0:6a670fda63c2 4811
cparata 0:6a670fda63c2 4812 value &= ~LSM6DSL_ACC_GYRO_TAP_X_EN_MASK;
cparata 0:6a670fda63c2 4813 value |= newValue;
cparata 0:6a670fda63c2 4814
cparata 0:6a670fda63c2 4815 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4816 return MEMS_ERROR;
cparata 0:6a670fda63c2 4817
cparata 0:6a670fda63c2 4818 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4819 }
cparata 0:6a670fda63c2 4820
cparata 0:6a670fda63c2 4821 /*******************************************************************************
cparata 0:6a670fda63c2 4822 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_X_EN
cparata 0:6a670fda63c2 4823 * Description : Read TAP_X_EN
cparata 0:6a670fda63c2 4824 * Input : Pointer to LSM6DSL_ACC_GYRO_TAP_X_EN_t
cparata 0:6a670fda63c2 4825 * Output : Status of TAP_X_EN see LSM6DSL_ACC_GYRO_TAP_X_EN_t
cparata 0:6a670fda63c2 4826 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4827 *******************************************************************************/
cparata 0:6a670fda63c2 4828 status_t LSM6DSL_ACC_GYRO_R_TAP_X_EN(void *handle, LSM6DSL_ACC_GYRO_TAP_X_EN_t *value)
cparata 0:6a670fda63c2 4829 {
cparata 0:6a670fda63c2 4830 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4831 return MEMS_ERROR;
cparata 0:6a670fda63c2 4832
cparata 0:6a670fda63c2 4833 *value &= LSM6DSL_ACC_GYRO_TAP_X_EN_MASK; //mask
cparata 0:6a670fda63c2 4834
cparata 0:6a670fda63c2 4835 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4836 }
cparata 0:6a670fda63c2 4837
cparata 0:6a670fda63c2 4838 /*******************************************************************************
cparata 0:6a670fda63c2 4839 * Function Name : LSM6DSL_ACC_GYRO_W_SLOPE_FDS
cparata 0:6a670fda63c2 4840 * Description : Write SLOPE_FDS
cparata 0:6a670fda63c2 4841 * Input : LSM6DSL_ACC_GYRO_SLOPE_FDS_t
cparata 0:6a670fda63c2 4842 * Output : None
cparata 0:6a670fda63c2 4843 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4844 *******************************************************************************/
cparata 0:6a670fda63c2 4845 status_t LSM6DSL_ACC_GYRO_W_SLOPE_FDS(void *handle, LSM6DSL_ACC_GYRO_SLOPE_FDS_t newValue)
cparata 0:6a670fda63c2 4846 {
cparata 0:6a670fda63c2 4847 u8_t value;
cparata 0:6a670fda63c2 4848
cparata 0:6a670fda63c2 4849 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4850 return MEMS_ERROR;
cparata 0:6a670fda63c2 4851
cparata 0:6a670fda63c2 4852 value &= ~LSM6DSL_ACC_GYRO_SLOPE_FDS_MASK;
cparata 0:6a670fda63c2 4853 value |= newValue;
cparata 0:6a670fda63c2 4854
cparata 0:6a670fda63c2 4855 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4856 return MEMS_ERROR;
cparata 0:6a670fda63c2 4857
cparata 0:6a670fda63c2 4858 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4859 }
cparata 0:6a670fda63c2 4860
cparata 0:6a670fda63c2 4861 /*******************************************************************************
cparata 0:6a670fda63c2 4862 * Function Name : LSM6DSL_ACC_GYRO_R_SLOPE_FDS
cparata 0:6a670fda63c2 4863 * Description : Read SLOPE_FDS
cparata 0:6a670fda63c2 4864 * Input : Pointer to LSM6DSL_ACC_GYRO_SLOPE_FDS_t
cparata 0:6a670fda63c2 4865 * Output : Status of SLOPE_FDS see LSM6DSL_ACC_GYRO_SLOPE_FDS_t
cparata 0:6a670fda63c2 4866 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4867 *******************************************************************************/
cparata 0:6a670fda63c2 4868 status_t LSM6DSL_ACC_GYRO_R_SLOPE_FDS(void *handle, LSM6DSL_ACC_GYRO_SLOPE_FDS_t *value)
cparata 0:6a670fda63c2 4869 {
cparata 0:6a670fda63c2 4870 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4871 return MEMS_ERROR;
cparata 0:6a670fda63c2 4872
cparata 0:6a670fda63c2 4873 *value &= LSM6DSL_ACC_GYRO_SLOPE_FDS_MASK; //mask
cparata 0:6a670fda63c2 4874
cparata 0:6a670fda63c2 4875 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4876 }
cparata 0:6a670fda63c2 4877
cparata 0:6a670fda63c2 4878 /*******************************************************************************
cparata 0:6a670fda63c2 4879 * Function Name : LSM6DSL_ACC_GYRO_W_BASIC_INT
cparata 0:6a670fda63c2 4880 * Description : Write INTERRUPTS_ENABLE
cparata 0:6a670fda63c2 4881 * Input : LSM6DSL_ACC_GYRO_INT_EN_t
cparata 0:6a670fda63c2 4882 * Output : None
cparata 0:6a670fda63c2 4883 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4884 *******************************************************************************/
cparata 0:6a670fda63c2 4885 status_t LSM6DSL_ACC_GYRO_W_BASIC_INT(void *handle, LSM6DSL_ACC_GYRO_INT_EN_t newValue)
cparata 0:6a670fda63c2 4886 {
cparata 0:6a670fda63c2 4887 u8_t value;
cparata 0:6a670fda63c2 4888
cparata 0:6a670fda63c2 4889 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4890 return MEMS_ERROR;
cparata 0:6a670fda63c2 4891
cparata 0:6a670fda63c2 4892 value &= ~LSM6DSL_ACC_GYRO_INT_EN_MASK;
cparata 0:6a670fda63c2 4893 value |= newValue;
cparata 0:6a670fda63c2 4894
cparata 0:6a670fda63c2 4895 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, &value, 1) )
cparata 0:6a670fda63c2 4896 return MEMS_ERROR;
cparata 0:6a670fda63c2 4897
cparata 0:6a670fda63c2 4898 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4899 }
cparata 0:6a670fda63c2 4900
cparata 0:6a670fda63c2 4901 /*******************************************************************************
cparata 0:6a670fda63c2 4902 * Function Name : LSM6DSL_ACC_GYRO_R_BASIC_INT
cparata 0:6a670fda63c2 4903 * Description : Read INTERRUPTS_ENABLE
cparata 0:6a670fda63c2 4904 * Input : Pointer to LSM6DSL_ACC_GYRO_INT_EN_t
cparata 0:6a670fda63c2 4905 * Output : Status of INTERRUPTS_ENABLE see LSM6DSL_ACC_GYRO_INT_EN_t
cparata 0:6a670fda63c2 4906 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4907 *******************************************************************************/
cparata 0:6a670fda63c2 4908 status_t LSM6DSL_ACC_GYRO_R_BASIC_INT(void *handle, LSM6DSL_ACC_GYRO_INT_EN_t *value)
cparata 0:6a670fda63c2 4909 {
cparata 0:6a670fda63c2 4910 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_CFG1, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4911 return MEMS_ERROR;
cparata 0:6a670fda63c2 4912
cparata 0:6a670fda63c2 4913 *value &= LSM6DSL_ACC_GYRO_INT_EN_MASK; //mask
cparata 0:6a670fda63c2 4914
cparata 0:6a670fda63c2 4915 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4916 }
cparata 0:6a670fda63c2 4917
cparata 0:6a670fda63c2 4918 /*******************************************************************************
cparata 0:6a670fda63c2 4919 * Function Name : LSM6DSL_ACC_GYRO_W_TAP_THS
cparata 0:6a670fda63c2 4920 * Description : Write TAP_THS
cparata 0:6a670fda63c2 4921 * Input : u8_t
cparata 0:6a670fda63c2 4922 * Output : None
cparata 0:6a670fda63c2 4923 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4924 *******************************************************************************/
cparata 0:6a670fda63c2 4925 status_t LSM6DSL_ACC_GYRO_W_TAP_THS(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 4926 {
cparata 0:6a670fda63c2 4927 u8_t value;
cparata 0:6a670fda63c2 4928
cparata 0:6a670fda63c2 4929 newValue = newValue << LSM6DSL_ACC_GYRO_TAP_THS_POSITION; //mask
cparata 0:6a670fda63c2 4930 newValue &= LSM6DSL_ACC_GYRO_TAP_THS_MASK; //coerce
cparata 0:6a670fda63c2 4931
cparata 0:6a670fda63c2 4932 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:6a670fda63c2 4933 return MEMS_ERROR;
cparata 0:6a670fda63c2 4934
cparata 0:6a670fda63c2 4935 value &= ~LSM6DSL_ACC_GYRO_TAP_THS_MASK;
cparata 0:6a670fda63c2 4936 value |= newValue;
cparata 0:6a670fda63c2 4937
cparata 0:6a670fda63c2 4938 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:6a670fda63c2 4939 return MEMS_ERROR;
cparata 0:6a670fda63c2 4940
cparata 0:6a670fda63c2 4941 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4942 }
cparata 0:6a670fda63c2 4943
cparata 0:6a670fda63c2 4944 /*******************************************************************************
cparata 0:6a670fda63c2 4945 * Function Name : LSM6DSL_ACC_GYRO_R_TAP_THS
cparata 0:6a670fda63c2 4946 * Description : Read TAP_THS
cparata 0:6a670fda63c2 4947 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 4948 * Output : Status of TAP_THS
cparata 0:6a670fda63c2 4949 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4950 *******************************************************************************/
cparata 0:6a670fda63c2 4951 status_t LSM6DSL_ACC_GYRO_R_TAP_THS(void *handle, u8_t *value)
cparata 0:6a670fda63c2 4952 {
cparata 0:6a670fda63c2 4953 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4954 return MEMS_ERROR;
cparata 0:6a670fda63c2 4955
cparata 0:6a670fda63c2 4956 *value &= LSM6DSL_ACC_GYRO_TAP_THS_MASK; //coerce
cparata 0:6a670fda63c2 4957 *value = *value >> LSM6DSL_ACC_GYRO_TAP_THS_POSITION; //mask
cparata 0:6a670fda63c2 4958
cparata 0:6a670fda63c2 4959 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4960 }
cparata 0:6a670fda63c2 4961
cparata 0:6a670fda63c2 4962 /*******************************************************************************
cparata 0:6a670fda63c2 4963 * Function Name : LSM6DSL_ACC_GYRO_W_SIXD_THS
cparata 0:6a670fda63c2 4964 * Description : Write SIXD_THS
cparata 0:6a670fda63c2 4965 * Input : LSM6DSL_ACC_GYRO_SIXD_THS_t
cparata 0:6a670fda63c2 4966 * Output : None
cparata 0:6a670fda63c2 4967 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4968 *******************************************************************************/
cparata 0:6a670fda63c2 4969 status_t LSM6DSL_ACC_GYRO_W_SIXD_THS(void *handle, LSM6DSL_ACC_GYRO_SIXD_THS_t newValue)
cparata 0:6a670fda63c2 4970 {
cparata 0:6a670fda63c2 4971 u8_t value;
cparata 0:6a670fda63c2 4972
cparata 0:6a670fda63c2 4973 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:6a670fda63c2 4974 return MEMS_ERROR;
cparata 0:6a670fda63c2 4975
cparata 0:6a670fda63c2 4976 value &= ~LSM6DSL_ACC_GYRO_SIXD_THS_MASK;
cparata 0:6a670fda63c2 4977 value |= newValue;
cparata 0:6a670fda63c2 4978
cparata 0:6a670fda63c2 4979 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:6a670fda63c2 4980 return MEMS_ERROR;
cparata 0:6a670fda63c2 4981
cparata 0:6a670fda63c2 4982 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 4983 }
cparata 0:6a670fda63c2 4984
cparata 0:6a670fda63c2 4985 /*******************************************************************************
cparata 0:6a670fda63c2 4986 * Function Name : LSM6DSL_ACC_GYRO_R_SIXD_THS
cparata 0:6a670fda63c2 4987 * Description : Read SIXD_THS
cparata 0:6a670fda63c2 4988 * Input : Pointer to LSM6DSL_ACC_GYRO_SIXD_THS_t
cparata 0:6a670fda63c2 4989 * Output : Status of SIXD_THS see LSM6DSL_ACC_GYRO_SIXD_THS_t
cparata 0:6a670fda63c2 4990 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 4991 *******************************************************************************/
cparata 0:6a670fda63c2 4992 status_t LSM6DSL_ACC_GYRO_R_SIXD_THS(void *handle, LSM6DSL_ACC_GYRO_SIXD_THS_t *value)
cparata 0:6a670fda63c2 4993 {
cparata 0:6a670fda63c2 4994 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 4995 return MEMS_ERROR;
cparata 0:6a670fda63c2 4996
cparata 0:6a670fda63c2 4997 *value &= LSM6DSL_ACC_GYRO_SIXD_THS_MASK; //mask
cparata 0:6a670fda63c2 4998
cparata 0:6a670fda63c2 4999 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5000 }
cparata 0:6a670fda63c2 5001
cparata 0:6a670fda63c2 5002 /*******************************************************************************
cparata 0:6a670fda63c2 5003 * Function Name : LSM6DSL_ACC_GYRO_W_D4D
cparata 0:6a670fda63c2 5004 * Description : Write D4D_EN
cparata 0:6a670fda63c2 5005 * Input : LSM6DSL_ACC_GYRO_D4D_t
cparata 0:6a670fda63c2 5006 * Output : None
cparata 0:6a670fda63c2 5007 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5008 *******************************************************************************/
cparata 0:6a670fda63c2 5009 status_t LSM6DSL_ACC_GYRO_W_D4D(void *handle, LSM6DSL_ACC_GYRO_D4D_t newValue)
cparata 0:6a670fda63c2 5010 {
cparata 0:6a670fda63c2 5011 u8_t value;
cparata 0:6a670fda63c2 5012
cparata 0:6a670fda63c2 5013 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:6a670fda63c2 5014 return MEMS_ERROR;
cparata 0:6a670fda63c2 5015
cparata 0:6a670fda63c2 5016 value &= ~LSM6DSL_ACC_GYRO_D4D_MASK;
cparata 0:6a670fda63c2 5017 value |= newValue;
cparata 0:6a670fda63c2 5018
cparata 0:6a670fda63c2 5019 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, &value, 1) )
cparata 0:6a670fda63c2 5020 return MEMS_ERROR;
cparata 0:6a670fda63c2 5021
cparata 0:6a670fda63c2 5022 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5023 }
cparata 0:6a670fda63c2 5024
cparata 0:6a670fda63c2 5025 /*******************************************************************************
cparata 0:6a670fda63c2 5026 * Function Name : LSM6DSL_ACC_GYRO_R_D4D
cparata 0:6a670fda63c2 5027 * Description : Read D4D_EN
cparata 0:6a670fda63c2 5028 * Input : Pointer to LSM6DSL_ACC_GYRO_D4D_t
cparata 0:6a670fda63c2 5029 * Output : Status of D4D_EN see LSM6DSL_ACC_GYRO_D4D_t
cparata 0:6a670fda63c2 5030 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5031 *******************************************************************************/
cparata 0:6a670fda63c2 5032 status_t LSM6DSL_ACC_GYRO_R_D4D(void *handle, LSM6DSL_ACC_GYRO_D4D_t *value)
cparata 0:6a670fda63c2 5033 {
cparata 0:6a670fda63c2 5034 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TAP_THS_6D, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5035 return MEMS_ERROR;
cparata 0:6a670fda63c2 5036
cparata 0:6a670fda63c2 5037 *value &= LSM6DSL_ACC_GYRO_D4D_MASK; //mask
cparata 0:6a670fda63c2 5038
cparata 0:6a670fda63c2 5039 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5040 }
cparata 0:6a670fda63c2 5041
cparata 0:6a670fda63c2 5042 /*******************************************************************************
cparata 0:6a670fda63c2 5043 * Function Name : LSM6DSL_ACC_GYRO_W_SHOCK_Duration
cparata 0:6a670fda63c2 5044 * Description : Write SHOCK
cparata 0:6a670fda63c2 5045 * Input : u8_t
cparata 0:6a670fda63c2 5046 * Output : None
cparata 0:6a670fda63c2 5047 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5048 *******************************************************************************/
cparata 0:6a670fda63c2 5049 status_t LSM6DSL_ACC_GYRO_W_SHOCK_Duration(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 5050 {
cparata 0:6a670fda63c2 5051 u8_t value;
cparata 0:6a670fda63c2 5052
cparata 0:6a670fda63c2 5053 newValue = newValue << LSM6DSL_ACC_GYRO_SHOCK_POSITION; //mask
cparata 0:6a670fda63c2 5054 newValue &= LSM6DSL_ACC_GYRO_SHOCK_MASK; //coerce
cparata 0:6a670fda63c2 5055
cparata 0:6a670fda63c2 5056 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:6a670fda63c2 5057 return MEMS_ERROR;
cparata 0:6a670fda63c2 5058
cparata 0:6a670fda63c2 5059 value &= ~LSM6DSL_ACC_GYRO_SHOCK_MASK;
cparata 0:6a670fda63c2 5060 value |= newValue;
cparata 0:6a670fda63c2 5061
cparata 0:6a670fda63c2 5062 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:6a670fda63c2 5063 return MEMS_ERROR;
cparata 0:6a670fda63c2 5064
cparata 0:6a670fda63c2 5065 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5066 }
cparata 0:6a670fda63c2 5067
cparata 0:6a670fda63c2 5068 /*******************************************************************************
cparata 0:6a670fda63c2 5069 * Function Name : LSM6DSL_ACC_GYRO_R_SHOCK_Duration
cparata 0:6a670fda63c2 5070 * Description : Read SHOCK
cparata 0:6a670fda63c2 5071 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 5072 * Output : Status of SHOCK
cparata 0:6a670fda63c2 5073 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5074 *******************************************************************************/
cparata 0:6a670fda63c2 5075 status_t LSM6DSL_ACC_GYRO_R_SHOCK_Duration(void *handle, u8_t *value)
cparata 0:6a670fda63c2 5076 {
cparata 0:6a670fda63c2 5077 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5078 return MEMS_ERROR;
cparata 0:6a670fda63c2 5079
cparata 0:6a670fda63c2 5080 *value &= LSM6DSL_ACC_GYRO_SHOCK_MASK; //coerce
cparata 0:6a670fda63c2 5081 *value = *value >> LSM6DSL_ACC_GYRO_SHOCK_POSITION; //mask
cparata 0:6a670fda63c2 5082
cparata 0:6a670fda63c2 5083 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5084 }
cparata 0:6a670fda63c2 5085 /*******************************************************************************
cparata 0:6a670fda63c2 5086 * Function Name : LSM6DSL_ACC_GYRO_W_QUIET_Duration
cparata 0:6a670fda63c2 5087 * Description : Write QUIET
cparata 0:6a670fda63c2 5088 * Input : u8_t
cparata 0:6a670fda63c2 5089 * Output : None
cparata 0:6a670fda63c2 5090 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5091 *******************************************************************************/
cparata 0:6a670fda63c2 5092 status_t LSM6DSL_ACC_GYRO_W_QUIET_Duration(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 5093 {
cparata 0:6a670fda63c2 5094 u8_t value;
cparata 0:6a670fda63c2 5095
cparata 0:6a670fda63c2 5096 newValue = newValue << LSM6DSL_ACC_GYRO_QUIET_POSITION; //mask
cparata 0:6a670fda63c2 5097 newValue &= LSM6DSL_ACC_GYRO_QUIET_MASK; //coerce
cparata 0:6a670fda63c2 5098
cparata 0:6a670fda63c2 5099 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:6a670fda63c2 5100 return MEMS_ERROR;
cparata 0:6a670fda63c2 5101
cparata 0:6a670fda63c2 5102 value &= ~LSM6DSL_ACC_GYRO_QUIET_MASK;
cparata 0:6a670fda63c2 5103 value |= newValue;
cparata 0:6a670fda63c2 5104
cparata 0:6a670fda63c2 5105 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:6a670fda63c2 5106 return MEMS_ERROR;
cparata 0:6a670fda63c2 5107
cparata 0:6a670fda63c2 5108 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5109 }
cparata 0:6a670fda63c2 5110
cparata 0:6a670fda63c2 5111 /*******************************************************************************
cparata 0:6a670fda63c2 5112 * Function Name : LSM6DSL_ACC_GYRO_R_QUIET_Duration
cparata 0:6a670fda63c2 5113 * Description : Read QUIET
cparata 0:6a670fda63c2 5114 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 5115 * Output : Status of QUIET
cparata 0:6a670fda63c2 5116 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5117 *******************************************************************************/
cparata 0:6a670fda63c2 5118 status_t LSM6DSL_ACC_GYRO_R_QUIET_Duration(void *handle, u8_t *value)
cparata 0:6a670fda63c2 5119 {
cparata 0:6a670fda63c2 5120 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5121 return MEMS_ERROR;
cparata 0:6a670fda63c2 5122
cparata 0:6a670fda63c2 5123 *value &= LSM6DSL_ACC_GYRO_QUIET_MASK; //coerce
cparata 0:6a670fda63c2 5124 *value = *value >> LSM6DSL_ACC_GYRO_QUIET_POSITION; //mask
cparata 0:6a670fda63c2 5125
cparata 0:6a670fda63c2 5126 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5127 }
cparata 0:6a670fda63c2 5128
cparata 0:6a670fda63c2 5129 /*******************************************************************************
cparata 0:6a670fda63c2 5130 * Function Name : LSM6DSL_ACC_GYRO_W_DUR
cparata 0:6a670fda63c2 5131 * Description : Write DUR
cparata 0:6a670fda63c2 5132 * Input : u8_t
cparata 0:6a670fda63c2 5133 * Output : None
cparata 0:6a670fda63c2 5134 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5135 *******************************************************************************/
cparata 0:6a670fda63c2 5136 status_t LSM6DSL_ACC_GYRO_W_DUR(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 5137 {
cparata 0:6a670fda63c2 5138 u8_t value;
cparata 0:6a670fda63c2 5139
cparata 0:6a670fda63c2 5140 newValue = newValue << LSM6DSL_ACC_GYRO_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5141 newValue &= LSM6DSL_ACC_GYRO_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5142
cparata 0:6a670fda63c2 5143 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:6a670fda63c2 5144 return MEMS_ERROR;
cparata 0:6a670fda63c2 5145
cparata 0:6a670fda63c2 5146 value &= ~LSM6DSL_ACC_GYRO_DUR_MASK;
cparata 0:6a670fda63c2 5147 value |= newValue;
cparata 0:6a670fda63c2 5148
cparata 0:6a670fda63c2 5149 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, &value, 1) )
cparata 0:6a670fda63c2 5150 return MEMS_ERROR;
cparata 0:6a670fda63c2 5151
cparata 0:6a670fda63c2 5152 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5153 }
cparata 0:6a670fda63c2 5154
cparata 0:6a670fda63c2 5155 /*******************************************************************************
cparata 0:6a670fda63c2 5156 * Function Name : LSM6DSL_ACC_GYRO_R_DUR
cparata 0:6a670fda63c2 5157 * Description : Read DUR
cparata 0:6a670fda63c2 5158 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 5159 * Output : Status of DUR
cparata 0:6a670fda63c2 5160 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5161 *******************************************************************************/
cparata 0:6a670fda63c2 5162 status_t LSM6DSL_ACC_GYRO_R_DUR(void *handle, u8_t *value)
cparata 0:6a670fda63c2 5163 {
cparata 0:6a670fda63c2 5164 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_INT_DUR2, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5165 return MEMS_ERROR;
cparata 0:6a670fda63c2 5166
cparata 0:6a670fda63c2 5167 *value &= LSM6DSL_ACC_GYRO_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5168 *value = *value >> LSM6DSL_ACC_GYRO_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5169
cparata 0:6a670fda63c2 5170 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5171 }
cparata 0:6a670fda63c2 5172
cparata 0:6a670fda63c2 5173 /*******************************************************************************
cparata 0:6a670fda63c2 5174 * Function Name : LSM6DSL_ACC_GYRO_W_WK_THS
cparata 0:6a670fda63c2 5175 * Description : Write WK_THS
cparata 0:6a670fda63c2 5176 * Input : u8_t
cparata 0:6a670fda63c2 5177 * Output : None
cparata 0:6a670fda63c2 5178 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5179 *******************************************************************************/
cparata 0:6a670fda63c2 5180 status_t LSM6DSL_ACC_GYRO_W_WK_THS(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 5181 {
cparata 0:6a670fda63c2 5182 u8_t value;
cparata 0:6a670fda63c2 5183
cparata 0:6a670fda63c2 5184 newValue = newValue << LSM6DSL_ACC_GYRO_WK_THS_POSITION; //mask
cparata 0:6a670fda63c2 5185 newValue &= LSM6DSL_ACC_GYRO_WK_THS_MASK; //coerce
cparata 0:6a670fda63c2 5186
cparata 0:6a670fda63c2 5187 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:6a670fda63c2 5188 return MEMS_ERROR;
cparata 0:6a670fda63c2 5189
cparata 0:6a670fda63c2 5190 value &= ~LSM6DSL_ACC_GYRO_WK_THS_MASK;
cparata 0:6a670fda63c2 5191 value |= newValue;
cparata 0:6a670fda63c2 5192
cparata 0:6a670fda63c2 5193 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:6a670fda63c2 5194 return MEMS_ERROR;
cparata 0:6a670fda63c2 5195
cparata 0:6a670fda63c2 5196 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5197 }
cparata 0:6a670fda63c2 5198
cparata 0:6a670fda63c2 5199 /*******************************************************************************
cparata 0:6a670fda63c2 5200 * Function Name : LSM6DSL_ACC_GYRO_R_WK_THS
cparata 0:6a670fda63c2 5201 * Description : Read WK_THS
cparata 0:6a670fda63c2 5202 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 5203 * Output : Status of WK_THS
cparata 0:6a670fda63c2 5204 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5205 *******************************************************************************/
cparata 0:6a670fda63c2 5206 status_t LSM6DSL_ACC_GYRO_R_WK_THS(void *handle, u8_t *value)
cparata 0:6a670fda63c2 5207 {
cparata 0:6a670fda63c2 5208 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5209 return MEMS_ERROR;
cparata 0:6a670fda63c2 5210
cparata 0:6a670fda63c2 5211 *value &= LSM6DSL_ACC_GYRO_WK_THS_MASK; //coerce
cparata 0:6a670fda63c2 5212 *value = *value >> LSM6DSL_ACC_GYRO_WK_THS_POSITION; //mask
cparata 0:6a670fda63c2 5213
cparata 0:6a670fda63c2 5214 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5215 }
cparata 0:6a670fda63c2 5216
cparata 0:6a670fda63c2 5217 /*******************************************************************************
cparata 0:6a670fda63c2 5218 * Function Name : LSM6DSL_ACC_GYRO_W_SINGLE_DOUBLE_TAP_EV
cparata 0:6a670fda63c2 5219 * Description : Write SINGLE_DOUBLE_TAP
cparata 0:6a670fda63c2 5220 * Input : LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t
cparata 0:6a670fda63c2 5221 * Output : None
cparata 0:6a670fda63c2 5222 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5223 *******************************************************************************/
cparata 0:6a670fda63c2 5224 status_t LSM6DSL_ACC_GYRO_W_SINGLE_DOUBLE_TAP_EV(void *handle, LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t newValue)
cparata 0:6a670fda63c2 5225 {
cparata 0:6a670fda63c2 5226 u8_t value;
cparata 0:6a670fda63c2 5227
cparata 0:6a670fda63c2 5228 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:6a670fda63c2 5229 return MEMS_ERROR;
cparata 0:6a670fda63c2 5230
cparata 0:6a670fda63c2 5231 value &= ~LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_MASK;
cparata 0:6a670fda63c2 5232 value |= newValue;
cparata 0:6a670fda63c2 5233
cparata 0:6a670fda63c2 5234 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, &value, 1) )
cparata 0:6a670fda63c2 5235 return MEMS_ERROR;
cparata 0:6a670fda63c2 5236
cparata 0:6a670fda63c2 5237 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5238 }
cparata 0:6a670fda63c2 5239
cparata 0:6a670fda63c2 5240 /*******************************************************************************
cparata 0:6a670fda63c2 5241 * Function Name : LSM6DSL_ACC_GYRO_R_SINGLE_DOUBLE_TAP_EV
cparata 0:6a670fda63c2 5242 * Description : Read SINGLE_DOUBLE_TAP
cparata 0:6a670fda63c2 5243 * Input : Pointer to LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t
cparata 0:6a670fda63c2 5244 * Output : Status of SINGLE_DOUBLE_TAP see LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t
cparata 0:6a670fda63c2 5245 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5246 *******************************************************************************/
cparata 0:6a670fda63c2 5247 status_t LSM6DSL_ACC_GYRO_R_SINGLE_DOUBLE_TAP_EV(void *handle, LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_t *value)
cparata 0:6a670fda63c2 5248 {
cparata 0:6a670fda63c2 5249 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_THS, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5250 return MEMS_ERROR;
cparata 0:6a670fda63c2 5251
cparata 0:6a670fda63c2 5252 *value &= LSM6DSL_ACC_GYRO_SINGLE_DOUBLE_TAP_MASK; //mask
cparata 0:6a670fda63c2 5253
cparata 0:6a670fda63c2 5254 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5255 }
cparata 0:6a670fda63c2 5256
cparata 0:6a670fda63c2 5257 /*******************************************************************************
cparata 0:6a670fda63c2 5258 * Function Name : LSM6DSL_ACC_GYRO_W_SLEEP_DUR
cparata 0:6a670fda63c2 5259 * Description : Write SLEEP_DUR
cparata 0:6a670fda63c2 5260 * Input : u8_t
cparata 0:6a670fda63c2 5261 * Output : None
cparata 0:6a670fda63c2 5262 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5263 *******************************************************************************/
cparata 0:6a670fda63c2 5264 status_t LSM6DSL_ACC_GYRO_W_SLEEP_DUR(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 5265 {
cparata 0:6a670fda63c2 5266 u8_t value;
cparata 0:6a670fda63c2 5267
cparata 0:6a670fda63c2 5268 newValue = newValue << LSM6DSL_ACC_GYRO_SLEEP_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5269 newValue &= LSM6DSL_ACC_GYRO_SLEEP_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5270
cparata 0:6a670fda63c2 5271 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5272 return MEMS_ERROR;
cparata 0:6a670fda63c2 5273
cparata 0:6a670fda63c2 5274 value &= ~LSM6DSL_ACC_GYRO_SLEEP_DUR_MASK;
cparata 0:6a670fda63c2 5275 value |= newValue;
cparata 0:6a670fda63c2 5276
cparata 0:6a670fda63c2 5277 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5278 return MEMS_ERROR;
cparata 0:6a670fda63c2 5279
cparata 0:6a670fda63c2 5280 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5281 }
cparata 0:6a670fda63c2 5282
cparata 0:6a670fda63c2 5283 /*******************************************************************************
cparata 0:6a670fda63c2 5284 * Function Name : LSM6DSL_ACC_GYRO_R_SLEEP_DUR
cparata 0:6a670fda63c2 5285 * Description : Read SLEEP_DUR
cparata 0:6a670fda63c2 5286 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 5287 * Output : Status of SLEEP_DUR
cparata 0:6a670fda63c2 5288 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5289 *******************************************************************************/
cparata 0:6a670fda63c2 5290 status_t LSM6DSL_ACC_GYRO_R_SLEEP_DUR(void *handle, u8_t *value)
cparata 0:6a670fda63c2 5291 {
cparata 0:6a670fda63c2 5292 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5293 return MEMS_ERROR;
cparata 0:6a670fda63c2 5294
cparata 0:6a670fda63c2 5295 *value &= LSM6DSL_ACC_GYRO_SLEEP_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5296 *value = *value >> LSM6DSL_ACC_GYRO_SLEEP_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5297
cparata 0:6a670fda63c2 5298 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5299 }
cparata 0:6a670fda63c2 5300
cparata 0:6a670fda63c2 5301 /*******************************************************************************
cparata 0:6a670fda63c2 5302 * Function Name : LSM6DSL_ACC_GYRO_W_TIMER_HR
cparata 0:6a670fda63c2 5303 * Description : Write TIMER_HR
cparata 0:6a670fda63c2 5304 * Input : LSM6DSL_ACC_GYRO_TIMER_HR_t
cparata 0:6a670fda63c2 5305 * Output : None
cparata 0:6a670fda63c2 5306 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5307 *******************************************************************************/
cparata 0:6a670fda63c2 5308 status_t LSM6DSL_ACC_GYRO_W_TIMER_HR(void *handle, LSM6DSL_ACC_GYRO_TIMER_HR_t newValue)
cparata 0:6a670fda63c2 5309 {
cparata 0:6a670fda63c2 5310 u8_t value;
cparata 0:6a670fda63c2 5311
cparata 0:6a670fda63c2 5312 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5313 return MEMS_ERROR;
cparata 0:6a670fda63c2 5314
cparata 0:6a670fda63c2 5315 value &= ~LSM6DSL_ACC_GYRO_TIMER_HR_MASK;
cparata 0:6a670fda63c2 5316 value |= newValue;
cparata 0:6a670fda63c2 5317
cparata 0:6a670fda63c2 5318 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5319 return MEMS_ERROR;
cparata 0:6a670fda63c2 5320
cparata 0:6a670fda63c2 5321 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5322 }
cparata 0:6a670fda63c2 5323
cparata 0:6a670fda63c2 5324 /*******************************************************************************
cparata 0:6a670fda63c2 5325 * Function Name : LSM6DSL_ACC_GYRO_R_TIMER_HR
cparata 0:6a670fda63c2 5326 * Description : Read TIMER_HR
cparata 0:6a670fda63c2 5327 * Input : Pointer to LSM6DSL_ACC_GYRO_TIMER_HR_t
cparata 0:6a670fda63c2 5328 * Output : Status of TIMER_HR see LSM6DSL_ACC_GYRO_TIMER_HR_t
cparata 0:6a670fda63c2 5329 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5330 *******************************************************************************/
cparata 0:6a670fda63c2 5331 status_t LSM6DSL_ACC_GYRO_R_TIMER_HR(void *handle, LSM6DSL_ACC_GYRO_TIMER_HR_t *value)
cparata 0:6a670fda63c2 5332 {
cparata 0:6a670fda63c2 5333 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5334 return MEMS_ERROR;
cparata 0:6a670fda63c2 5335
cparata 0:6a670fda63c2 5336 *value &= LSM6DSL_ACC_GYRO_TIMER_HR_MASK; //mask
cparata 0:6a670fda63c2 5337
cparata 0:6a670fda63c2 5338 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5339 }
cparata 0:6a670fda63c2 5340
cparata 0:6a670fda63c2 5341 /*******************************************************************************
cparata 0:6a670fda63c2 5342 * Function Name : LSM6DSL_ACC_GYRO_W_WAKE_DUR
cparata 0:6a670fda63c2 5343 * Description : Write WAKE_DUR
cparata 0:6a670fda63c2 5344 * Input : u8_t
cparata 0:6a670fda63c2 5345 * Output : None
cparata 0:6a670fda63c2 5346 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5347 *******************************************************************************/
cparata 0:6a670fda63c2 5348 status_t LSM6DSL_ACC_GYRO_W_WAKE_DUR(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 5349 {
cparata 0:6a670fda63c2 5350 u8_t value;
cparata 0:6a670fda63c2 5351
cparata 0:6a670fda63c2 5352 newValue = newValue << LSM6DSL_ACC_GYRO_WAKE_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5353 newValue &= LSM6DSL_ACC_GYRO_WAKE_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5354
cparata 0:6a670fda63c2 5355 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5356 return MEMS_ERROR;
cparata 0:6a670fda63c2 5357
cparata 0:6a670fda63c2 5358 value &= ~LSM6DSL_ACC_GYRO_WAKE_DUR_MASK;
cparata 0:6a670fda63c2 5359 value |= newValue;
cparata 0:6a670fda63c2 5360
cparata 0:6a670fda63c2 5361 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5362 return MEMS_ERROR;
cparata 0:6a670fda63c2 5363
cparata 0:6a670fda63c2 5364 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5365 }
cparata 0:6a670fda63c2 5366
cparata 0:6a670fda63c2 5367 /*******************************************************************************
cparata 0:6a670fda63c2 5368 * Function Name : LSM6DSL_ACC_GYRO_R_WAKE_DUR
cparata 0:6a670fda63c2 5369 * Description : Read WAKE_DUR
cparata 0:6a670fda63c2 5370 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 5371 * Output : Status of WAKE_DUR
cparata 0:6a670fda63c2 5372 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5373 *******************************************************************************/
cparata 0:6a670fda63c2 5374 status_t LSM6DSL_ACC_GYRO_R_WAKE_DUR(void *handle, u8_t *value)
cparata 0:6a670fda63c2 5375 {
cparata 0:6a670fda63c2 5376 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5377 return MEMS_ERROR;
cparata 0:6a670fda63c2 5378
cparata 0:6a670fda63c2 5379 *value &= LSM6DSL_ACC_GYRO_WAKE_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5380 *value = *value >> LSM6DSL_ACC_GYRO_WAKE_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5381
cparata 0:6a670fda63c2 5382 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5383 }
cparata 0:6a670fda63c2 5384
cparata 0:6a670fda63c2 5385 /*******************************************************************************
cparata 0:6a670fda63c2 5386 * Function Name : LSM6DSL_ACC_GYRO_W_FF_THS
cparata 0:6a670fda63c2 5387 * Description : Write FF_THS
cparata 0:6a670fda63c2 5388 * Input : LSM6DSL_ACC_GYRO_FF_THS_t
cparata 0:6a670fda63c2 5389 * Output : None
cparata 0:6a670fda63c2 5390 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5391 *******************************************************************************/
cparata 0:6a670fda63c2 5392 status_t LSM6DSL_ACC_GYRO_W_FF_THS(void *handle, LSM6DSL_ACC_GYRO_FF_THS_t newValue)
cparata 0:6a670fda63c2 5393 {
cparata 0:6a670fda63c2 5394 u8_t value;
cparata 0:6a670fda63c2 5395
cparata 0:6a670fda63c2 5396 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:6a670fda63c2 5397 return MEMS_ERROR;
cparata 0:6a670fda63c2 5398
cparata 0:6a670fda63c2 5399 value &= ~LSM6DSL_ACC_GYRO_FF_THS_MASK;
cparata 0:6a670fda63c2 5400 value |= newValue;
cparata 0:6a670fda63c2 5401
cparata 0:6a670fda63c2 5402 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:6a670fda63c2 5403 return MEMS_ERROR;
cparata 0:6a670fda63c2 5404
cparata 0:6a670fda63c2 5405 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5406 }
cparata 0:6a670fda63c2 5407
cparata 0:6a670fda63c2 5408 /*******************************************************************************
cparata 0:6a670fda63c2 5409 * Function Name : LSM6DSL_ACC_GYRO_R_FF_THS
cparata 0:6a670fda63c2 5410 * Description : Read FF_THS
cparata 0:6a670fda63c2 5411 * Input : Pointer to LSM6DSL_ACC_GYRO_FF_THS_t
cparata 0:6a670fda63c2 5412 * Output : Status of FF_THS see LSM6DSL_ACC_GYRO_FF_THS_t
cparata 0:6a670fda63c2 5413 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5414 *******************************************************************************/
cparata 0:6a670fda63c2 5415 status_t LSM6DSL_ACC_GYRO_R_FF_THS(void *handle, LSM6DSL_ACC_GYRO_FF_THS_t *value)
cparata 0:6a670fda63c2 5416 {
cparata 0:6a670fda63c2 5417 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5418 return MEMS_ERROR;
cparata 0:6a670fda63c2 5419
cparata 0:6a670fda63c2 5420 *value &= LSM6DSL_ACC_GYRO_FF_THS_MASK; //mask
cparata 0:6a670fda63c2 5421
cparata 0:6a670fda63c2 5422 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5423 }
cparata 0:6a670fda63c2 5424
cparata 0:6a670fda63c2 5425 /*******************************************************************************
cparata 0:6a670fda63c2 5426 * Function Name : LSM6DSL_ACC_GYRO_W_FF_Duration
cparata 0:6a670fda63c2 5427 * Description : Write FF_DUR
cparata 0:6a670fda63c2 5428 * Input : u8_t
cparata 0:6a670fda63c2 5429 * Output : None
cparata 0:6a670fda63c2 5430 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5431 *******************************************************************************/
cparata 0:6a670fda63c2 5432 status_t LSM6DSL_ACC_GYRO_W_FF_Duration(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 5433 {
cparata 0:6a670fda63c2 5434 u8_t valueH, valueL;
cparata 0:6a670fda63c2 5435 u8_t value;
cparata 0:6a670fda63c2 5436
cparata 0:6a670fda63c2 5437 valueL = newValue & 0x1F;
cparata 0:6a670fda63c2 5438 valueH = (newValue >> 5) & 0x1;
cparata 0:6a670fda63c2 5439
cparata 0:6a670fda63c2 5440 /* Low part in FREE_FALL reg */
cparata 0:6a670fda63c2 5441 valueL = valueL << LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5442 valueL &= LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5443
cparata 0:6a670fda63c2 5444 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:6a670fda63c2 5445 return MEMS_ERROR;
cparata 0:6a670fda63c2 5446
cparata 0:6a670fda63c2 5447 value &= ~LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_MASK;
cparata 0:6a670fda63c2 5448 value |= valueL;
cparata 0:6a670fda63c2 5449
cparata 0:6a670fda63c2 5450 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, &value, 1) )
cparata 0:6a670fda63c2 5451 return MEMS_ERROR;
cparata 0:6a670fda63c2 5452
cparata 0:6a670fda63c2 5453 /* High part in WAKE_UP_DUR reg */
cparata 0:6a670fda63c2 5454 valueH = valueH << LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5455 valueH &= LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5456
cparata 0:6a670fda63c2 5457 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5458 return MEMS_ERROR;
cparata 0:6a670fda63c2 5459
cparata 0:6a670fda63c2 5460 value &= ~LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_MASK;
cparata 0:6a670fda63c2 5461 value |= valueH;
cparata 0:6a670fda63c2 5462
cparata 0:6a670fda63c2 5463 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, &value, 1) )
cparata 0:6a670fda63c2 5464 return MEMS_ERROR;
cparata 0:6a670fda63c2 5465
cparata 0:6a670fda63c2 5466 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5467 }
cparata 0:6a670fda63c2 5468
cparata 0:6a670fda63c2 5469 /*******************************************************************************
cparata 0:6a670fda63c2 5470 * Function Name : LSM6DSL_ACC_GYRO_R_FF_Duration
cparata 0:6a670fda63c2 5471 * Description : Read FF_DUR
cparata 0:6a670fda63c2 5472 * Input : Pointer to u8_t
cparata 0:6a670fda63c2 5473 * Output : Status of FF_DUR
cparata 0:6a670fda63c2 5474 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5475 *******************************************************************************/
cparata 0:6a670fda63c2 5476 status_t LSM6DSL_ACC_GYRO_R_FF_Duration(void *handle, u8_t *value)
cparata 0:6a670fda63c2 5477 {
cparata 0:6a670fda63c2 5478 u8_t valueH, valueL;
cparata 0:6a670fda63c2 5479
cparata 0:6a670fda63c2 5480 /* Low part from FREE_FALL reg */
cparata 0:6a670fda63c2 5481 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FREE_FALL, (u8_t *)&valueL, 1) )
cparata 0:6a670fda63c2 5482 return MEMS_ERROR;
cparata 0:6a670fda63c2 5483
cparata 0:6a670fda63c2 5484 valueL &= LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5485 valueL = valueL >> LSM6DSL_ACC_GYRO_FF_FREE_FALL_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5486
cparata 0:6a670fda63c2 5487 /* High part from WAKE_UP_DUR reg */
cparata 0:6a670fda63c2 5488 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_WAKE_UP_DUR, (u8_t *)&valueH, 1) )
cparata 0:6a670fda63c2 5489 return MEMS_ERROR;
cparata 0:6a670fda63c2 5490
cparata 0:6a670fda63c2 5491 valueH &= LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_MASK; //coerce
cparata 0:6a670fda63c2 5492 valueH = valueH >> LSM6DSL_ACC_GYRO_FF_WAKE_UP_DUR_POSITION; //mask
cparata 0:6a670fda63c2 5493
cparata 0:6a670fda63c2 5494 *value = ((valueH << 5) & 0x20) | valueL;
cparata 0:6a670fda63c2 5495
cparata 0:6a670fda63c2 5496 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5497 }
cparata 0:6a670fda63c2 5498
cparata 0:6a670fda63c2 5499 /*******************************************************************************
cparata 0:6a670fda63c2 5500 * Function Name : LSM6DSL_ACC_GYRO_W_TimerEvRouteInt1
cparata 0:6a670fda63c2 5501 * Description : Write INT1_TIMER
cparata 0:6a670fda63c2 5502 * Input : LSM6DSL_ACC_GYRO_INT1_TIMER_t
cparata 0:6a670fda63c2 5503 * Output : None
cparata 0:6a670fda63c2 5504 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5505 *******************************************************************************/
cparata 0:6a670fda63c2 5506 status_t LSM6DSL_ACC_GYRO_W_TimerEvRouteInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TIMER_t newValue)
cparata 0:6a670fda63c2 5507 {
cparata 0:6a670fda63c2 5508 u8_t value;
cparata 0:6a670fda63c2 5509
cparata 0:6a670fda63c2 5510 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5511 return MEMS_ERROR;
cparata 0:6a670fda63c2 5512
cparata 0:6a670fda63c2 5513 value &= ~LSM6DSL_ACC_GYRO_INT1_TIMER_MASK;
cparata 0:6a670fda63c2 5514 value |= newValue;
cparata 0:6a670fda63c2 5515
cparata 0:6a670fda63c2 5516 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5517 return MEMS_ERROR;
cparata 0:6a670fda63c2 5518
cparata 0:6a670fda63c2 5519 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5520 }
cparata 0:6a670fda63c2 5521
cparata 0:6a670fda63c2 5522 /*******************************************************************************
cparata 0:6a670fda63c2 5523 * Function Name : LSM6DSL_ACC_GYRO_R_TimerEvRouteInt1
cparata 0:6a670fda63c2 5524 * Description : Read INT1_TIMER
cparata 0:6a670fda63c2 5525 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_TIMER_t
cparata 0:6a670fda63c2 5526 * Output : Status of INT1_TIMER see LSM6DSL_ACC_GYRO_INT1_TIMER_t
cparata 0:6a670fda63c2 5527 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5528 *******************************************************************************/
cparata 0:6a670fda63c2 5529 status_t LSM6DSL_ACC_GYRO_R_TimerEvRouteInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TIMER_t *value)
cparata 0:6a670fda63c2 5530 {
cparata 0:6a670fda63c2 5531 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5532 return MEMS_ERROR;
cparata 0:6a670fda63c2 5533
cparata 0:6a670fda63c2 5534 *value &= LSM6DSL_ACC_GYRO_INT1_TIMER_MASK; //mask
cparata 0:6a670fda63c2 5535
cparata 0:6a670fda63c2 5536 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5537 }
cparata 0:6a670fda63c2 5538
cparata 0:6a670fda63c2 5539 /*******************************************************************************
cparata 0:6a670fda63c2 5540 * Function Name : LSM6DSL_ACC_GYRO_W_TiltEvOnInt1
cparata 0:6a670fda63c2 5541 * Description : Write INT1_TILT
cparata 0:6a670fda63c2 5542 * Input : LSM6DSL_ACC_GYRO_INT1_TILT_t
cparata 0:6a670fda63c2 5543 * Output : None
cparata 0:6a670fda63c2 5544 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5545 *******************************************************************************/
cparata 0:6a670fda63c2 5546 status_t LSM6DSL_ACC_GYRO_W_TiltEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TILT_t newValue)
cparata 0:6a670fda63c2 5547 {
cparata 0:6a670fda63c2 5548 u8_t value;
cparata 0:6a670fda63c2 5549
cparata 0:6a670fda63c2 5550 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5551 return MEMS_ERROR;
cparata 0:6a670fda63c2 5552
cparata 0:6a670fda63c2 5553 value &= ~LSM6DSL_ACC_GYRO_INT1_TILT_MASK;
cparata 0:6a670fda63c2 5554 value |= newValue;
cparata 0:6a670fda63c2 5555
cparata 0:6a670fda63c2 5556 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5557 return MEMS_ERROR;
cparata 0:6a670fda63c2 5558
cparata 0:6a670fda63c2 5559 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5560 }
cparata 0:6a670fda63c2 5561
cparata 0:6a670fda63c2 5562 /*******************************************************************************
cparata 0:6a670fda63c2 5563 * Function Name : LSM6DSL_ACC_GYRO_R_TiltEvOnInt1
cparata 0:6a670fda63c2 5564 * Description : Read INT1_TILT
cparata 0:6a670fda63c2 5565 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_TILT_t
cparata 0:6a670fda63c2 5566 * Output : Status of INT1_TILT see LSM6DSL_ACC_GYRO_INT1_TILT_t
cparata 0:6a670fda63c2 5567 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5568 *******************************************************************************/
cparata 0:6a670fda63c2 5569 status_t LSM6DSL_ACC_GYRO_R_TiltEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TILT_t *value)
cparata 0:6a670fda63c2 5570 {
cparata 0:6a670fda63c2 5571 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5572 return MEMS_ERROR;
cparata 0:6a670fda63c2 5573
cparata 0:6a670fda63c2 5574 *value &= LSM6DSL_ACC_GYRO_INT1_TILT_MASK; //mask
cparata 0:6a670fda63c2 5575
cparata 0:6a670fda63c2 5576 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5577 }
cparata 0:6a670fda63c2 5578
cparata 0:6a670fda63c2 5579 /*******************************************************************************
cparata 0:6a670fda63c2 5580 * Function Name : LSM6DSL_ACC_GYRO_W_6DEvOnInt1
cparata 0:6a670fda63c2 5581 * Description : Write INT1_6D
cparata 0:6a670fda63c2 5582 * Input : LSM6DSL_ACC_GYRO_INT1_6D_t
cparata 0:6a670fda63c2 5583 * Output : None
cparata 0:6a670fda63c2 5584 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5585 *******************************************************************************/
cparata 0:6a670fda63c2 5586 status_t LSM6DSL_ACC_GYRO_W_6DEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_6D_t newValue)
cparata 0:6a670fda63c2 5587 {
cparata 0:6a670fda63c2 5588 u8_t value;
cparata 0:6a670fda63c2 5589
cparata 0:6a670fda63c2 5590 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5591 return MEMS_ERROR;
cparata 0:6a670fda63c2 5592
cparata 0:6a670fda63c2 5593 value &= ~LSM6DSL_ACC_GYRO_INT1_6D_MASK;
cparata 0:6a670fda63c2 5594 value |= newValue;
cparata 0:6a670fda63c2 5595
cparata 0:6a670fda63c2 5596 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5597 return MEMS_ERROR;
cparata 0:6a670fda63c2 5598
cparata 0:6a670fda63c2 5599 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5600 }
cparata 0:6a670fda63c2 5601
cparata 0:6a670fda63c2 5602 /*******************************************************************************
cparata 0:6a670fda63c2 5603 * Function Name : LSM6DSL_ACC_GYRO_R_6DEvOnInt1
cparata 0:6a670fda63c2 5604 * Description : Read INT1_6D
cparata 0:6a670fda63c2 5605 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_6D_t
cparata 0:6a670fda63c2 5606 * Output : Status of INT1_6D see LSM6DSL_ACC_GYRO_INT1_6D_t
cparata 0:6a670fda63c2 5607 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5608 *******************************************************************************/
cparata 0:6a670fda63c2 5609 status_t LSM6DSL_ACC_GYRO_R_6DEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_6D_t *value)
cparata 0:6a670fda63c2 5610 {
cparata 0:6a670fda63c2 5611 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5612 return MEMS_ERROR;
cparata 0:6a670fda63c2 5613
cparata 0:6a670fda63c2 5614 *value &= LSM6DSL_ACC_GYRO_INT1_6D_MASK; //mask
cparata 0:6a670fda63c2 5615
cparata 0:6a670fda63c2 5616 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5617 }
cparata 0:6a670fda63c2 5618
cparata 0:6a670fda63c2 5619 /*******************************************************************************
cparata 0:6a670fda63c2 5620 * Function Name : LSM6DSL_ACC_GYRO_W_TapEvOnInt1
cparata 0:6a670fda63c2 5621 * Description : Write INT1_TAP
cparata 0:6a670fda63c2 5622 * Input : LSM6DSL_ACC_GYRO_INT1_TAP_t
cparata 0:6a670fda63c2 5623 * Output : None
cparata 0:6a670fda63c2 5624 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5625 *******************************************************************************/
cparata 0:6a670fda63c2 5626 status_t LSM6DSL_ACC_GYRO_W_TapEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TAP_t newValue)
cparata 0:6a670fda63c2 5627 {
cparata 0:6a670fda63c2 5628 u8_t value;
cparata 0:6a670fda63c2 5629
cparata 0:6a670fda63c2 5630 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5631 return MEMS_ERROR;
cparata 0:6a670fda63c2 5632
cparata 0:6a670fda63c2 5633 value &= ~LSM6DSL_ACC_GYRO_INT1_TAP_MASK;
cparata 0:6a670fda63c2 5634 value |= newValue;
cparata 0:6a670fda63c2 5635
cparata 0:6a670fda63c2 5636 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5637 return MEMS_ERROR;
cparata 0:6a670fda63c2 5638
cparata 0:6a670fda63c2 5639 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5640 }
cparata 0:6a670fda63c2 5641
cparata 0:6a670fda63c2 5642 /*******************************************************************************
cparata 0:6a670fda63c2 5643 * Function Name : LSM6DSL_ACC_GYRO_R_TapEvOnInt1
cparata 0:6a670fda63c2 5644 * Description : Read INT1_TAP
cparata 0:6a670fda63c2 5645 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_TAP_t
cparata 0:6a670fda63c2 5646 * Output : Status of INT1_TAP see LSM6DSL_ACC_GYRO_INT1_TAP_t
cparata 0:6a670fda63c2 5647 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5648 *******************************************************************************/
cparata 0:6a670fda63c2 5649 status_t LSM6DSL_ACC_GYRO_R_TapEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_TAP_t *value)
cparata 0:6a670fda63c2 5650 {
cparata 0:6a670fda63c2 5651 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5652 return MEMS_ERROR;
cparata 0:6a670fda63c2 5653
cparata 0:6a670fda63c2 5654 *value &= LSM6DSL_ACC_GYRO_INT1_TAP_MASK; //mask
cparata 0:6a670fda63c2 5655
cparata 0:6a670fda63c2 5656 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5657 }
cparata 0:6a670fda63c2 5658
cparata 0:6a670fda63c2 5659 /*******************************************************************************
cparata 0:6a670fda63c2 5660 * Function Name : LSM6DSL_ACC_GYRO_W_FFEvOnInt1
cparata 0:6a670fda63c2 5661 * Description : Write INT1_FF
cparata 0:6a670fda63c2 5662 * Input : LSM6DSL_ACC_GYRO_INT1_FF_t
cparata 0:6a670fda63c2 5663 * Output : None
cparata 0:6a670fda63c2 5664 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5665 *******************************************************************************/
cparata 0:6a670fda63c2 5666 status_t LSM6DSL_ACC_GYRO_W_FFEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_FF_t newValue)
cparata 0:6a670fda63c2 5667 {
cparata 0:6a670fda63c2 5668 u8_t value;
cparata 0:6a670fda63c2 5669
cparata 0:6a670fda63c2 5670 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5671 return MEMS_ERROR;
cparata 0:6a670fda63c2 5672
cparata 0:6a670fda63c2 5673 value &= ~LSM6DSL_ACC_GYRO_INT1_FF_MASK;
cparata 0:6a670fda63c2 5674 value |= newValue;
cparata 0:6a670fda63c2 5675
cparata 0:6a670fda63c2 5676 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5677 return MEMS_ERROR;
cparata 0:6a670fda63c2 5678
cparata 0:6a670fda63c2 5679 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5680 }
cparata 0:6a670fda63c2 5681
cparata 0:6a670fda63c2 5682 /*******************************************************************************
cparata 0:6a670fda63c2 5683 * Function Name : LSM6DSL_ACC_GYRO_R_FFEvOnInt1
cparata 0:6a670fda63c2 5684 * Description : Read INT1_FF
cparata 0:6a670fda63c2 5685 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_FF_t
cparata 0:6a670fda63c2 5686 * Output : Status of INT1_FF see LSM6DSL_ACC_GYRO_INT1_FF_t
cparata 0:6a670fda63c2 5687 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5688 *******************************************************************************/
cparata 0:6a670fda63c2 5689 status_t LSM6DSL_ACC_GYRO_R_FFEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_FF_t *value)
cparata 0:6a670fda63c2 5690 {
cparata 0:6a670fda63c2 5691 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5692 return MEMS_ERROR;
cparata 0:6a670fda63c2 5693
cparata 0:6a670fda63c2 5694 *value &= LSM6DSL_ACC_GYRO_INT1_FF_MASK; //mask
cparata 0:6a670fda63c2 5695
cparata 0:6a670fda63c2 5696 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5697 }
cparata 0:6a670fda63c2 5698
cparata 0:6a670fda63c2 5699 /*******************************************************************************
cparata 0:6a670fda63c2 5700 * Function Name : LSM6DSL_ACC_GYRO_W_WUEvOnInt1
cparata 0:6a670fda63c2 5701 * Description : Write INT1_WU
cparata 0:6a670fda63c2 5702 * Input : LSM6DSL_ACC_GYRO_INT1_WU_t
cparata 0:6a670fda63c2 5703 * Output : None
cparata 0:6a670fda63c2 5704 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5705 *******************************************************************************/
cparata 0:6a670fda63c2 5706 status_t LSM6DSL_ACC_GYRO_W_WUEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_WU_t newValue)
cparata 0:6a670fda63c2 5707 {
cparata 0:6a670fda63c2 5708 u8_t value;
cparata 0:6a670fda63c2 5709
cparata 0:6a670fda63c2 5710 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5711 return MEMS_ERROR;
cparata 0:6a670fda63c2 5712
cparata 0:6a670fda63c2 5713 value &= ~LSM6DSL_ACC_GYRO_INT1_WU_MASK;
cparata 0:6a670fda63c2 5714 value |= newValue;
cparata 0:6a670fda63c2 5715
cparata 0:6a670fda63c2 5716 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5717 return MEMS_ERROR;
cparata 0:6a670fda63c2 5718
cparata 0:6a670fda63c2 5719 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5720 }
cparata 0:6a670fda63c2 5721
cparata 0:6a670fda63c2 5722 /*******************************************************************************
cparata 0:6a670fda63c2 5723 * Function Name : LSM6DSL_ACC_GYRO_R_WUEvOnInt1
cparata 0:6a670fda63c2 5724 * Description : Read INT1_WU
cparata 0:6a670fda63c2 5725 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_WU_t
cparata 0:6a670fda63c2 5726 * Output : Status of INT1_WU see LSM6DSL_ACC_GYRO_INT1_WU_t
cparata 0:6a670fda63c2 5727 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5728 *******************************************************************************/
cparata 0:6a670fda63c2 5729 status_t LSM6DSL_ACC_GYRO_R_WUEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_WU_t *value)
cparata 0:6a670fda63c2 5730 {
cparata 0:6a670fda63c2 5731 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5732 return MEMS_ERROR;
cparata 0:6a670fda63c2 5733
cparata 0:6a670fda63c2 5734 *value &= LSM6DSL_ACC_GYRO_INT1_WU_MASK; //mask
cparata 0:6a670fda63c2 5735
cparata 0:6a670fda63c2 5736 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5737 }
cparata 0:6a670fda63c2 5738
cparata 0:6a670fda63c2 5739 /*******************************************************************************
cparata 0:6a670fda63c2 5740 * Function Name : LSM6DSL_ACC_GYRO_W_SingleTapOnInt1
cparata 0:6a670fda63c2 5741 * Description : Write INT1_SINGLE_TAP
cparata 0:6a670fda63c2 5742 * Input : LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t
cparata 0:6a670fda63c2 5743 * Output : None
cparata 0:6a670fda63c2 5744 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5745 *******************************************************************************/
cparata 0:6a670fda63c2 5746 status_t LSM6DSL_ACC_GYRO_W_SingleTapOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t newValue)
cparata 0:6a670fda63c2 5747 {
cparata 0:6a670fda63c2 5748 u8_t value;
cparata 0:6a670fda63c2 5749
cparata 0:6a670fda63c2 5750 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5751 return MEMS_ERROR;
cparata 0:6a670fda63c2 5752
cparata 0:6a670fda63c2 5753 value &= ~LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_MASK;
cparata 0:6a670fda63c2 5754 value |= newValue;
cparata 0:6a670fda63c2 5755
cparata 0:6a670fda63c2 5756 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5757 return MEMS_ERROR;
cparata 0:6a670fda63c2 5758
cparata 0:6a670fda63c2 5759 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5760 }
cparata 0:6a670fda63c2 5761
cparata 0:6a670fda63c2 5762 /*******************************************************************************
cparata 0:6a670fda63c2 5763 * Function Name : LSM6DSL_ACC_GYRO_R_SingleTapOnInt1
cparata 0:6a670fda63c2 5764 * Description : Read INT1_SINGLE_TAP
cparata 0:6a670fda63c2 5765 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t
cparata 0:6a670fda63c2 5766 * Output : Status of INT1_SINGLE_TAP see LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t
cparata 0:6a670fda63c2 5767 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5768 *******************************************************************************/
cparata 0:6a670fda63c2 5769 status_t LSM6DSL_ACC_GYRO_R_SingleTapOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_t *value)
cparata 0:6a670fda63c2 5770 {
cparata 0:6a670fda63c2 5771 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5772 return MEMS_ERROR;
cparata 0:6a670fda63c2 5773
cparata 0:6a670fda63c2 5774 *value &= LSM6DSL_ACC_GYRO_INT1_SINGLE_TAP_MASK; //mask
cparata 0:6a670fda63c2 5775
cparata 0:6a670fda63c2 5776 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5777 }
cparata 0:6a670fda63c2 5778
cparata 0:6a670fda63c2 5779 /*******************************************************************************
cparata 0:6a670fda63c2 5780 * Function Name : LSM6DSL_ACC_GYRO_W_SleepEvOnInt1
cparata 0:6a670fda63c2 5781 * Description : Write INT1_SLEEP
cparata 0:6a670fda63c2 5782 * Input : LSM6DSL_ACC_GYRO_INT1_SLEEP_t
cparata 0:6a670fda63c2 5783 * Output : None
cparata 0:6a670fda63c2 5784 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5785 *******************************************************************************/
cparata 0:6a670fda63c2 5786 status_t LSM6DSL_ACC_GYRO_W_SleepEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SLEEP_t newValue)
cparata 0:6a670fda63c2 5787 {
cparata 0:6a670fda63c2 5788 u8_t value;
cparata 0:6a670fda63c2 5789
cparata 0:6a670fda63c2 5790 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5791 return MEMS_ERROR;
cparata 0:6a670fda63c2 5792
cparata 0:6a670fda63c2 5793 value &= ~LSM6DSL_ACC_GYRO_INT1_SLEEP_MASK;
cparata 0:6a670fda63c2 5794 value |= newValue;
cparata 0:6a670fda63c2 5795
cparata 0:6a670fda63c2 5796 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, &value, 1) )
cparata 0:6a670fda63c2 5797 return MEMS_ERROR;
cparata 0:6a670fda63c2 5798
cparata 0:6a670fda63c2 5799 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5800 }
cparata 0:6a670fda63c2 5801
cparata 0:6a670fda63c2 5802 /*******************************************************************************
cparata 0:6a670fda63c2 5803 * Function Name : LSM6DSL_ACC_GYRO_R_SleepEvOnInt1
cparata 0:6a670fda63c2 5804 * Description : Read INT1_SLEEP
cparata 0:6a670fda63c2 5805 * Input : Pointer to LSM6DSL_ACC_GYRO_INT1_SLEEP_t
cparata 0:6a670fda63c2 5806 * Output : Status of INT1_SLEEP see LSM6DSL_ACC_GYRO_INT1_SLEEP_t
cparata 0:6a670fda63c2 5807 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5808 *******************************************************************************/
cparata 0:6a670fda63c2 5809 status_t LSM6DSL_ACC_GYRO_R_SleepEvOnInt1(void *handle, LSM6DSL_ACC_GYRO_INT1_SLEEP_t *value)
cparata 0:6a670fda63c2 5810 {
cparata 0:6a670fda63c2 5811 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD1_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5812 return MEMS_ERROR;
cparata 0:6a670fda63c2 5813
cparata 0:6a670fda63c2 5814 *value &= LSM6DSL_ACC_GYRO_INT1_SLEEP_MASK; //mask
cparata 0:6a670fda63c2 5815
cparata 0:6a670fda63c2 5816 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5817 }
cparata 0:6a670fda63c2 5818
cparata 0:6a670fda63c2 5819 /*******************************************************************************
cparata 0:6a670fda63c2 5820 * Function Name : LSM6DSL_ACC_GYRO_W_MagCorrection_Int2
cparata 0:6a670fda63c2 5821 * Description : Write INT2_IRON
cparata 0:6a670fda63c2 5822 * Input : LSM6DSL_ACC_GYRO_INT2_IRON_t
cparata 0:6a670fda63c2 5823 * Output : None
cparata 0:6a670fda63c2 5824 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5825 *******************************************************************************/
cparata 0:6a670fda63c2 5826 status_t LSM6DSL_ACC_GYRO_W_MagCorrection_Int2(void *handle, LSM6DSL_ACC_GYRO_INT2_IRON_t newValue)
cparata 0:6a670fda63c2 5827 {
cparata 0:6a670fda63c2 5828 u8_t value;
cparata 0:6a670fda63c2 5829
cparata 0:6a670fda63c2 5830 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5831 return MEMS_ERROR;
cparata 0:6a670fda63c2 5832
cparata 0:6a670fda63c2 5833 value &= ~LSM6DSL_ACC_GYRO_INT2_IRON_MASK;
cparata 0:6a670fda63c2 5834 value |= newValue;
cparata 0:6a670fda63c2 5835
cparata 0:6a670fda63c2 5836 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5837 return MEMS_ERROR;
cparata 0:6a670fda63c2 5838
cparata 0:6a670fda63c2 5839 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5840 }
cparata 0:6a670fda63c2 5841
cparata 0:6a670fda63c2 5842 /*******************************************************************************
cparata 0:6a670fda63c2 5843 * Function Name : LSM6DSL_ACC_GYRO_R_MagCorrection_Int2
cparata 0:6a670fda63c2 5844 * Description : Read INT2_IRON
cparata 0:6a670fda63c2 5845 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_IRON_t
cparata 0:6a670fda63c2 5846 * Output : Status of INT2_IRON see LSM6DSL_ACC_GYRO_INT2_IRON_t
cparata 0:6a670fda63c2 5847 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5848 *******************************************************************************/
cparata 0:6a670fda63c2 5849 status_t LSM6DSL_ACC_GYRO_R_MagCorrection_Int2(void *handle, LSM6DSL_ACC_GYRO_INT2_IRON_t *value)
cparata 0:6a670fda63c2 5850 {
cparata 0:6a670fda63c2 5851 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5852 return MEMS_ERROR;
cparata 0:6a670fda63c2 5853
cparata 0:6a670fda63c2 5854 *value &= LSM6DSL_ACC_GYRO_INT2_IRON_MASK; //mask
cparata 0:6a670fda63c2 5855
cparata 0:6a670fda63c2 5856 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5857 }
cparata 0:6a670fda63c2 5858
cparata 0:6a670fda63c2 5859 /*******************************************************************************
cparata 0:6a670fda63c2 5860 * Function Name : LSM6DSL_ACC_GYRO_W_TiltEvOnInt2
cparata 0:6a670fda63c2 5861 * Description : Write INT2_TILT
cparata 0:6a670fda63c2 5862 * Input : LSM6DSL_ACC_GYRO_INT2_TILT_t
cparata 0:6a670fda63c2 5863 * Output : None
cparata 0:6a670fda63c2 5864 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5865 *******************************************************************************/
cparata 0:6a670fda63c2 5866 status_t LSM6DSL_ACC_GYRO_W_TiltEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TILT_t newValue)
cparata 0:6a670fda63c2 5867 {
cparata 0:6a670fda63c2 5868 u8_t value;
cparata 0:6a670fda63c2 5869
cparata 0:6a670fda63c2 5870 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5871 return MEMS_ERROR;
cparata 0:6a670fda63c2 5872
cparata 0:6a670fda63c2 5873 value &= ~LSM6DSL_ACC_GYRO_INT2_TILT_MASK;
cparata 0:6a670fda63c2 5874 value |= newValue;
cparata 0:6a670fda63c2 5875
cparata 0:6a670fda63c2 5876 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5877 return MEMS_ERROR;
cparata 0:6a670fda63c2 5878
cparata 0:6a670fda63c2 5879 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5880 }
cparata 0:6a670fda63c2 5881
cparata 0:6a670fda63c2 5882 /*******************************************************************************
cparata 0:6a670fda63c2 5883 * Function Name : LSM6DSL_ACC_GYRO_R_TiltEvOnInt2
cparata 0:6a670fda63c2 5884 * Description : Read INT2_TILT
cparata 0:6a670fda63c2 5885 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_TILT_t
cparata 0:6a670fda63c2 5886 * Output : Status of INT2_TILT see LSM6DSL_ACC_GYRO_INT2_TILT_t
cparata 0:6a670fda63c2 5887 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5888 *******************************************************************************/
cparata 0:6a670fda63c2 5889 status_t LSM6DSL_ACC_GYRO_R_TiltEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TILT_t *value)
cparata 0:6a670fda63c2 5890 {
cparata 0:6a670fda63c2 5891 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5892 return MEMS_ERROR;
cparata 0:6a670fda63c2 5893
cparata 0:6a670fda63c2 5894 *value &= LSM6DSL_ACC_GYRO_INT2_TILT_MASK; //mask
cparata 0:6a670fda63c2 5895
cparata 0:6a670fda63c2 5896 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5897 }
cparata 0:6a670fda63c2 5898
cparata 0:6a670fda63c2 5899 /*******************************************************************************
cparata 0:6a670fda63c2 5900 * Function Name : LSM6DSL_ACC_GYRO_W_6DEvOnInt2
cparata 0:6a670fda63c2 5901 * Description : Write INT2_6D
cparata 0:6a670fda63c2 5902 * Input : LSM6DSL_ACC_GYRO_INT2_6D_t
cparata 0:6a670fda63c2 5903 * Output : None
cparata 0:6a670fda63c2 5904 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5905 *******************************************************************************/
cparata 0:6a670fda63c2 5906 status_t LSM6DSL_ACC_GYRO_W_6DEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_6D_t newValue)
cparata 0:6a670fda63c2 5907 {
cparata 0:6a670fda63c2 5908 u8_t value;
cparata 0:6a670fda63c2 5909
cparata 0:6a670fda63c2 5910 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5911 return MEMS_ERROR;
cparata 0:6a670fda63c2 5912
cparata 0:6a670fda63c2 5913 value &= ~LSM6DSL_ACC_GYRO_INT2_6D_MASK;
cparata 0:6a670fda63c2 5914 value |= newValue;
cparata 0:6a670fda63c2 5915
cparata 0:6a670fda63c2 5916 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5917 return MEMS_ERROR;
cparata 0:6a670fda63c2 5918
cparata 0:6a670fda63c2 5919 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5920 }
cparata 0:6a670fda63c2 5921
cparata 0:6a670fda63c2 5922 /*******************************************************************************
cparata 0:6a670fda63c2 5923 * Function Name : LSM6DSL_ACC_GYRO_R_6DEvOnInt2
cparata 0:6a670fda63c2 5924 * Description : Read INT2_6D
cparata 0:6a670fda63c2 5925 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_6D_t
cparata 0:6a670fda63c2 5926 * Output : Status of INT2_6D see LSM6DSL_ACC_GYRO_INT2_6D_t
cparata 0:6a670fda63c2 5927 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5928 *******************************************************************************/
cparata 0:6a670fda63c2 5929 status_t LSM6DSL_ACC_GYRO_R_6DEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_6D_t *value)
cparata 0:6a670fda63c2 5930 {
cparata 0:6a670fda63c2 5931 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5932 return MEMS_ERROR;
cparata 0:6a670fda63c2 5933
cparata 0:6a670fda63c2 5934 *value &= LSM6DSL_ACC_GYRO_INT2_6D_MASK; //mask
cparata 0:6a670fda63c2 5935
cparata 0:6a670fda63c2 5936 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5937 }
cparata 0:6a670fda63c2 5938
cparata 0:6a670fda63c2 5939 /*******************************************************************************
cparata 0:6a670fda63c2 5940 * Function Name : LSM6DSL_ACC_GYRO_W_TapEvOnInt2
cparata 0:6a670fda63c2 5941 * Description : Write INT2_TAP
cparata 0:6a670fda63c2 5942 * Input : LSM6DSL_ACC_GYRO_INT2_TAP_t
cparata 0:6a670fda63c2 5943 * Output : None
cparata 0:6a670fda63c2 5944 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5945 *******************************************************************************/
cparata 0:6a670fda63c2 5946 status_t LSM6DSL_ACC_GYRO_W_TapEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TAP_t newValue)
cparata 0:6a670fda63c2 5947 {
cparata 0:6a670fda63c2 5948 u8_t value;
cparata 0:6a670fda63c2 5949
cparata 0:6a670fda63c2 5950 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5951 return MEMS_ERROR;
cparata 0:6a670fda63c2 5952
cparata 0:6a670fda63c2 5953 value &= ~LSM6DSL_ACC_GYRO_INT2_TAP_MASK;
cparata 0:6a670fda63c2 5954 value |= newValue;
cparata 0:6a670fda63c2 5955
cparata 0:6a670fda63c2 5956 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5957 return MEMS_ERROR;
cparata 0:6a670fda63c2 5958
cparata 0:6a670fda63c2 5959 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5960 }
cparata 0:6a670fda63c2 5961
cparata 0:6a670fda63c2 5962 /*******************************************************************************
cparata 0:6a670fda63c2 5963 * Function Name : LSM6DSL_ACC_GYRO_R_TapEvOnInt2
cparata 0:6a670fda63c2 5964 * Description : Read INT2_TAP
cparata 0:6a670fda63c2 5965 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_TAP_t
cparata 0:6a670fda63c2 5966 * Output : Status of INT2_TAP see LSM6DSL_ACC_GYRO_INT2_TAP_t
cparata 0:6a670fda63c2 5967 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5968 *******************************************************************************/
cparata 0:6a670fda63c2 5969 status_t LSM6DSL_ACC_GYRO_R_TapEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_TAP_t *value)
cparata 0:6a670fda63c2 5970 {
cparata 0:6a670fda63c2 5971 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 5972 return MEMS_ERROR;
cparata 0:6a670fda63c2 5973
cparata 0:6a670fda63c2 5974 *value &= LSM6DSL_ACC_GYRO_INT2_TAP_MASK; //mask
cparata 0:6a670fda63c2 5975
cparata 0:6a670fda63c2 5976 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 5977 }
cparata 0:6a670fda63c2 5978
cparata 0:6a670fda63c2 5979 /*******************************************************************************
cparata 0:6a670fda63c2 5980 * Function Name : LSM6DSL_ACC_GYRO_W_FFEvOnInt2
cparata 0:6a670fda63c2 5981 * Description : Write INT2_FF
cparata 0:6a670fda63c2 5982 * Input : LSM6DSL_ACC_GYRO_INT2_FF_t
cparata 0:6a670fda63c2 5983 * Output : None
cparata 0:6a670fda63c2 5984 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 5985 *******************************************************************************/
cparata 0:6a670fda63c2 5986 status_t LSM6DSL_ACC_GYRO_W_FFEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_FF_t newValue)
cparata 0:6a670fda63c2 5987 {
cparata 0:6a670fda63c2 5988 u8_t value;
cparata 0:6a670fda63c2 5989
cparata 0:6a670fda63c2 5990 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5991 return MEMS_ERROR;
cparata 0:6a670fda63c2 5992
cparata 0:6a670fda63c2 5993 value &= ~LSM6DSL_ACC_GYRO_INT2_FF_MASK;
cparata 0:6a670fda63c2 5994 value |= newValue;
cparata 0:6a670fda63c2 5995
cparata 0:6a670fda63c2 5996 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 5997 return MEMS_ERROR;
cparata 0:6a670fda63c2 5998
cparata 0:6a670fda63c2 5999 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6000 }
cparata 0:6a670fda63c2 6001
cparata 0:6a670fda63c2 6002 /*******************************************************************************
cparata 0:6a670fda63c2 6003 * Function Name : LSM6DSL_ACC_GYRO_R_FFEvOnInt2
cparata 0:6a670fda63c2 6004 * Description : Read INT2_FF
cparata 0:6a670fda63c2 6005 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_FF_t
cparata 0:6a670fda63c2 6006 * Output : Status of INT2_FF see LSM6DSL_ACC_GYRO_INT2_FF_t
cparata 0:6a670fda63c2 6007 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6008 *******************************************************************************/
cparata 0:6a670fda63c2 6009 status_t LSM6DSL_ACC_GYRO_R_FFEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_FF_t *value)
cparata 0:6a670fda63c2 6010 {
cparata 0:6a670fda63c2 6011 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 6012 return MEMS_ERROR;
cparata 0:6a670fda63c2 6013
cparata 0:6a670fda63c2 6014 *value &= LSM6DSL_ACC_GYRO_INT2_FF_MASK; //mask
cparata 0:6a670fda63c2 6015
cparata 0:6a670fda63c2 6016 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6017 }
cparata 0:6a670fda63c2 6018
cparata 0:6a670fda63c2 6019 /*******************************************************************************
cparata 0:6a670fda63c2 6020 * Function Name : LSM6DSL_ACC_GYRO_W_WUEvOnInt2
cparata 0:6a670fda63c2 6021 * Description : Write INT2_WU
cparata 0:6a670fda63c2 6022 * Input : LSM6DSL_ACC_GYRO_INT2_WU_t
cparata 0:6a670fda63c2 6023 * Output : None
cparata 0:6a670fda63c2 6024 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6025 *******************************************************************************/
cparata 0:6a670fda63c2 6026 status_t LSM6DSL_ACC_GYRO_W_WUEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_WU_t newValue)
cparata 0:6a670fda63c2 6027 {
cparata 0:6a670fda63c2 6028 u8_t value;
cparata 0:6a670fda63c2 6029
cparata 0:6a670fda63c2 6030 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 6031 return MEMS_ERROR;
cparata 0:6a670fda63c2 6032
cparata 0:6a670fda63c2 6033 value &= ~LSM6DSL_ACC_GYRO_INT2_WU_MASK;
cparata 0:6a670fda63c2 6034 value |= newValue;
cparata 0:6a670fda63c2 6035
cparata 0:6a670fda63c2 6036 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 6037 return MEMS_ERROR;
cparata 0:6a670fda63c2 6038
cparata 0:6a670fda63c2 6039 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6040 }
cparata 0:6a670fda63c2 6041
cparata 0:6a670fda63c2 6042 /*******************************************************************************
cparata 0:6a670fda63c2 6043 * Function Name : LSM6DSL_ACC_GYRO_R_WUEvOnInt2
cparata 0:6a670fda63c2 6044 * Description : Read INT2_WU
cparata 0:6a670fda63c2 6045 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_WU_t
cparata 0:6a670fda63c2 6046 * Output : Status of INT2_WU see LSM6DSL_ACC_GYRO_INT2_WU_t
cparata 0:6a670fda63c2 6047 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6048 *******************************************************************************/
cparata 0:6a670fda63c2 6049 status_t LSM6DSL_ACC_GYRO_R_WUEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_WU_t *value)
cparata 0:6a670fda63c2 6050 {
cparata 0:6a670fda63c2 6051 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 6052 return MEMS_ERROR;
cparata 0:6a670fda63c2 6053
cparata 0:6a670fda63c2 6054 *value &= LSM6DSL_ACC_GYRO_INT2_WU_MASK; //mask
cparata 0:6a670fda63c2 6055
cparata 0:6a670fda63c2 6056 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6057 }
cparata 0:6a670fda63c2 6058
cparata 0:6a670fda63c2 6059 /*******************************************************************************
cparata 0:6a670fda63c2 6060 * Function Name : LSM6DSL_ACC_GYRO_W_SingleTapOnInt2
cparata 0:6a670fda63c2 6061 * Description : Write INT2_SINGLE_TAP
cparata 0:6a670fda63c2 6062 * Input : LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t
cparata 0:6a670fda63c2 6063 * Output : None
cparata 0:6a670fda63c2 6064 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6065 *******************************************************************************/
cparata 0:6a670fda63c2 6066 status_t LSM6DSL_ACC_GYRO_W_SingleTapOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t newValue)
cparata 0:6a670fda63c2 6067 {
cparata 0:6a670fda63c2 6068 u8_t value;
cparata 0:6a670fda63c2 6069
cparata 0:6a670fda63c2 6070 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 6071 return MEMS_ERROR;
cparata 0:6a670fda63c2 6072
cparata 0:6a670fda63c2 6073 value &= ~LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_MASK;
cparata 0:6a670fda63c2 6074 value |= newValue;
cparata 0:6a670fda63c2 6075
cparata 0:6a670fda63c2 6076 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 6077 return MEMS_ERROR;
cparata 0:6a670fda63c2 6078
cparata 0:6a670fda63c2 6079 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6080 }
cparata 0:6a670fda63c2 6081
cparata 0:6a670fda63c2 6082 /*******************************************************************************
cparata 0:6a670fda63c2 6083 * Function Name : LSM6DSL_ACC_GYRO_R_SingleTapOnInt2
cparata 0:6a670fda63c2 6084 * Description : Read INT2_SINGLE_TAP
cparata 0:6a670fda63c2 6085 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t
cparata 0:6a670fda63c2 6086 * Output : Status of INT2_SINGLE_TAP see LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t
cparata 0:6a670fda63c2 6087 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6088 *******************************************************************************/
cparata 0:6a670fda63c2 6089 status_t LSM6DSL_ACC_GYRO_R_SingleTapOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_t *value)
cparata 0:6a670fda63c2 6090 {
cparata 0:6a670fda63c2 6091 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 6092 return MEMS_ERROR;
cparata 0:6a670fda63c2 6093
cparata 0:6a670fda63c2 6094 *value &= LSM6DSL_ACC_GYRO_INT2_SINGLE_TAP_MASK; //mask
cparata 0:6a670fda63c2 6095
cparata 0:6a670fda63c2 6096 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6097 }
cparata 0:6a670fda63c2 6098
cparata 0:6a670fda63c2 6099 /*******************************************************************************
cparata 0:6a670fda63c2 6100 * Function Name : LSM6DSL_ACC_GYRO_W_SleepEvOnInt2
cparata 0:6a670fda63c2 6101 * Description : Write INT2_SLEEP
cparata 0:6a670fda63c2 6102 * Input : LSM6DSL_ACC_GYRO_INT2_SLEEP_t
cparata 0:6a670fda63c2 6103 * Output : None
cparata 0:6a670fda63c2 6104 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6105 *******************************************************************************/
cparata 0:6a670fda63c2 6106 status_t LSM6DSL_ACC_GYRO_W_SleepEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SLEEP_t newValue)
cparata 0:6a670fda63c2 6107 {
cparata 0:6a670fda63c2 6108 u8_t value;
cparata 0:6a670fda63c2 6109
cparata 0:6a670fda63c2 6110 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 6111 return MEMS_ERROR;
cparata 0:6a670fda63c2 6112
cparata 0:6a670fda63c2 6113 value &= ~LSM6DSL_ACC_GYRO_INT2_SLEEP_MASK;
cparata 0:6a670fda63c2 6114 value |= newValue;
cparata 0:6a670fda63c2 6115
cparata 0:6a670fda63c2 6116 if( !LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, &value, 1) )
cparata 0:6a670fda63c2 6117 return MEMS_ERROR;
cparata 0:6a670fda63c2 6118
cparata 0:6a670fda63c2 6119 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6120 }
cparata 0:6a670fda63c2 6121
cparata 0:6a670fda63c2 6122 /*******************************************************************************
cparata 0:6a670fda63c2 6123 * Function Name : LSM6DSL_ACC_GYRO_R_SleepEvOnInt2
cparata 0:6a670fda63c2 6124 * Description : Read INT2_SLEEP
cparata 0:6a670fda63c2 6125 * Input : Pointer to LSM6DSL_ACC_GYRO_INT2_SLEEP_t
cparata 0:6a670fda63c2 6126 * Output : Status of INT2_SLEEP see LSM6DSL_ACC_GYRO_INT2_SLEEP_t
cparata 0:6a670fda63c2 6127 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6128 *******************************************************************************/
cparata 0:6a670fda63c2 6129 status_t LSM6DSL_ACC_GYRO_R_SleepEvOnInt2(void *handle, LSM6DSL_ACC_GYRO_INT2_SLEEP_t *value)
cparata 0:6a670fda63c2 6130 {
cparata 0:6a670fda63c2 6131 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_MD2_CFG, (u8_t *)value, 1) )
cparata 0:6a670fda63c2 6132 return MEMS_ERROR;
cparata 0:6a670fda63c2 6133
cparata 0:6a670fda63c2 6134 *value &= LSM6DSL_ACC_GYRO_INT2_SLEEP_MASK; //mask
cparata 0:6a670fda63c2 6135
cparata 0:6a670fda63c2 6136 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6137 }
cparata 0:6a670fda63c2 6138
cparata 0:6a670fda63c2 6139 /*******************************************************************************
cparata 0:6a670fda63c2 6140 * Function Name : status_t LSM6DSL_ACC_GYRO_Get_GetFIFOData(u8_t *buff)
cparata 0:6a670fda63c2 6141 * Description : Read GetFIFOData output register
cparata 0:6a670fda63c2 6142 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 6143 * Output : GetFIFOData buffer u8_t
cparata 0:6a670fda63c2 6144 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6145 *******************************************************************************/
cparata 0:6a670fda63c2 6146 status_t LSM6DSL_ACC_GYRO_Get_GetFIFOData(void *handle, u8_t *buff)
cparata 0:6a670fda63c2 6147 {
cparata 0:6a670fda63c2 6148 u8_t i, j, k;
cparata 0:6a670fda63c2 6149 u8_t numberOfByteForDimension;
cparata 0:6a670fda63c2 6150
cparata 0:6a670fda63c2 6151 numberOfByteForDimension=2/1;
cparata 0:6a670fda63c2 6152
cparata 0:6a670fda63c2 6153 k=0;
cparata 0:6a670fda63c2 6154 for (i=0; i<1;i++ )
cparata 0:6a670fda63c2 6155 {
cparata 0:6a670fda63c2 6156 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:6a670fda63c2 6157 {
cparata 0:6a670fda63c2 6158 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_FIFO_DATA_OUT_L+k, &buff[k], 1))
cparata 0:6a670fda63c2 6159 return MEMS_ERROR;
cparata 0:6a670fda63c2 6160 k++;
cparata 0:6a670fda63c2 6161 }
cparata 0:6a670fda63c2 6162 }
cparata 0:6a670fda63c2 6163
cparata 0:6a670fda63c2 6164 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6165 }
cparata 0:6a670fda63c2 6166
cparata 0:6a670fda63c2 6167 /*******************************************************************************
cparata 0:6a670fda63c2 6168 * Function Name : status_t LSM6DSL_ACC_GYRO_Get_GetTimestamp(u8_t *buff)
cparata 0:6a670fda63c2 6169 * Description : Read GetTimestamp output register
cparata 0:6a670fda63c2 6170 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 6171 * Output : GetTimestamp buffer u8_t
cparata 0:6a670fda63c2 6172 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6173 *******************************************************************************/
cparata 0:6a670fda63c2 6174 status_t LSM6DSL_ACC_GYRO_Get_GetTimestamp(void *handle, u8_t *buff)
cparata 0:6a670fda63c2 6175 {
cparata 0:6a670fda63c2 6176 u8_t i, j, k;
cparata 0:6a670fda63c2 6177 u8_t numberOfByteForDimension;
cparata 0:6a670fda63c2 6178
cparata 0:6a670fda63c2 6179 numberOfByteForDimension=3/1;
cparata 0:6a670fda63c2 6180
cparata 0:6a670fda63c2 6181 k=0;
cparata 0:6a670fda63c2 6182 for (i=0; i<1;i++ )
cparata 0:6a670fda63c2 6183 {
cparata 0:6a670fda63c2 6184 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:6a670fda63c2 6185 {
cparata 0:6a670fda63c2 6186 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_TIMESTAMP0_REG+k, &buff[k], 1))
cparata 0:6a670fda63c2 6187 return MEMS_ERROR;
cparata 0:6a670fda63c2 6188 k++;
cparata 0:6a670fda63c2 6189 }
cparata 0:6a670fda63c2 6190 }
cparata 0:6a670fda63c2 6191
cparata 0:6a670fda63c2 6192 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6193 }
cparata 0:6a670fda63c2 6194
cparata 0:6a670fda63c2 6195 /*******************************************************************************
cparata 0:6a670fda63c2 6196 * Function Name : status_t LSM6DSL_ACC_GYRO_Get_GetStepCounter(u8_t *buff)
cparata 0:6a670fda63c2 6197 * Description : Read GetStepCounter output register
cparata 0:6a670fda63c2 6198 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 6199 * Output : GetStepCounter buffer u8_t
cparata 0:6a670fda63c2 6200 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6201 *******************************************************************************/
cparata 0:6a670fda63c2 6202 status_t LSM6DSL_ACC_GYRO_Get_GetStepCounter(void *handle, u8_t *buff)
cparata 0:6a670fda63c2 6203 {
cparata 0:6a670fda63c2 6204 u8_t i, j, k;
cparata 0:6a670fda63c2 6205 u8_t numberOfByteForDimension;
cparata 0:6a670fda63c2 6206
cparata 0:6a670fda63c2 6207 numberOfByteForDimension=2/1;
cparata 0:6a670fda63c2 6208
cparata 0:6a670fda63c2 6209 k=0;
cparata 0:6a670fda63c2 6210 for (i=0; i<1;i++ )
cparata 0:6a670fda63c2 6211 {
cparata 0:6a670fda63c2 6212 for (j=0; j<numberOfByteForDimension;j++ )
cparata 0:6a670fda63c2 6213 {
cparata 0:6a670fda63c2 6214 if( !LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_STEP_COUNTER_L+k, &buff[k], 1))
cparata 0:6a670fda63c2 6215 return MEMS_ERROR;
cparata 0:6a670fda63c2 6216 k++;
cparata 0:6a670fda63c2 6217 }
cparata 0:6a670fda63c2 6218 }
cparata 0:6a670fda63c2 6219
cparata 0:6a670fda63c2 6220 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6221 }
cparata 0:6a670fda63c2 6222
cparata 0:6a670fda63c2 6223 /*******************************************************************************
cparata 0:6a670fda63c2 6224 * Function Name : LSM6DSL_ACC_GYRO_W_PedoThreshold(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 6225 * Description : Set accelerometer threshold for pedometer
cparata 0:6a670fda63c2 6226 * Input : pointer to [u8_t]
cparata 0:6a670fda63c2 6227 * Output : None
cparata 0:6a670fda63c2 6228 * Return : Status [MEMS_ERROR, MEMS_SUCCESS]
cparata 0:6a670fda63c2 6229 *******************************************************************************/
cparata 0:6a670fda63c2 6230 status_t LSM6DSL_ACC_GYRO_W_PedoThreshold(void *handle, u8_t newValue)
cparata 0:6a670fda63c2 6231 {
cparata 0:6a670fda63c2 6232 u8_t value;
cparata 0:6a670fda63c2 6233
cparata 0:6a670fda63c2 6234 /* Open Embedded Function Register page*/
cparata 0:6a670fda63c2 6235 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:6a670fda63c2 6236
cparata 0:6a670fda63c2 6237 /* read current value */
cparata 0:6a670fda63c2 6238 LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_CONFIG_PEDO_THS_MIN, &value, 1);
cparata 0:6a670fda63c2 6239
cparata 0:6a670fda63c2 6240 value &= ~0x1F;
cparata 0:6a670fda63c2 6241 value |= (newValue & 0x1F);
cparata 0:6a670fda63c2 6242
cparata 0:6a670fda63c2 6243 /* write new value */
cparata 0:6a670fda63c2 6244 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_CONFIG_PEDO_THS_MIN, &value, 1);
cparata 0:6a670fda63c2 6245
cparata 0:6a670fda63c2 6246 /* Close Embedded Function Register page*/
cparata 0:6a670fda63c2 6247 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:6a670fda63c2 6248
cparata 0:6a670fda63c2 6249 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6250 }
cparata 0:6a670fda63c2 6251
cparata 0:6a670fda63c2 6252 /************** Use Sensor Hub *******************/
cparata 0:6a670fda63c2 6253 /*
cparata 0:6a670fda63c2 6254 * Program the nine Soft Iron Matrix coefficients.
cparata 0:6a670fda63c2 6255 * The SI_Matrix buffer must provide coefficients
cparata 0:6a670fda63c2 6256 * in xx, xy, xz, yx, yy, yz, zx, zy, zz order.
cparata 0:6a670fda63c2 6257 */
cparata 0:6a670fda63c2 6258 status_t LSM6DSL_ACC_GYRO_SH_init_SI_Matrix(void *handle, u8_t *SI_matrix)
cparata 0:6a670fda63c2 6259 {
cparata 0:6a670fda63c2 6260 /* Open Embedded Function Register page*/
cparata 0:6a670fda63c2 6261 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:6a670fda63c2 6262
cparata 0:6a670fda63c2 6263 /* Write the Soft Iron Matrix coefficients */
cparata 0:6a670fda63c2 6264 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_MAG_SI_XX, SI_matrix, 9);
cparata 0:6a670fda63c2 6265
cparata 0:6a670fda63c2 6266 /* Close Embedded Function Register page*/
cparata 0:6a670fda63c2 6267 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:6a670fda63c2 6268
cparata 0:6a670fda63c2 6269 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6270 }
cparata 0:6a670fda63c2 6271
cparata 0:6a670fda63c2 6272 /* Read a remote device through I2C Sensor Hub Slave 0 */
cparata 0:6a670fda63c2 6273 status_t LSM6DSL_ACC_GYRO_SH0_Program(void *handle, u8_t SlvAddr, u8_t Reg, u8_t len)
cparata 0:6a670fda63c2 6274 {
cparata 0:6a670fda63c2 6275 /* Open Embedded Function Register page*/
cparata 0:6a670fda63c2 6276 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:6a670fda63c2 6277
cparata 0:6a670fda63c2 6278 /* Write remote device I2C slave address */
cparata 0:6a670fda63c2 6279 SlvAddr |= 0x1; /* Raise the read op bit */
cparata 0:6a670fda63c2 6280 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_ADD, &SlvAddr, 1);
cparata 0:6a670fda63c2 6281
cparata 0:6a670fda63c2 6282 /* Write remote device I2C subaddress */
cparata 0:6a670fda63c2 6283 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_SUBADD, &Reg, 1);
cparata 0:6a670fda63c2 6284
cparata 0:6a670fda63c2 6285 /* Write number of bytes to read [SLAVE0_CONFIG - 04h ]*/
cparata 0:6a670fda63c2 6286 u8_t sl0_cfg = 0;
cparata 0:6a670fda63c2 6287 sl0_cfg |= 0x00; //00 bit [7-6] : no decimation
cparata 0:6a670fda63c2 6288 sl0_cfg |= 0x00; //00 bit [5-4] : one sensor
cparata 0:6a670fda63c2 6289 sl0_cfg |= 0x00; // 0 bit [3] : source mode read disabled
cparata 0:6a670fda63c2 6290 sl0_cfg |= len & 0x07; // bit [2-0] : number of bytes
cparata 0:6a670fda63c2 6291
cparata 0:6a670fda63c2 6292 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLAVE0_CONFIG, &sl0_cfg, 1);
cparata 0:6a670fda63c2 6293
cparata 0:6a670fda63c2 6294 /* Close Embedded Function Register page*/
cparata 0:6a670fda63c2 6295 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:6a670fda63c2 6296
cparata 0:6a670fda63c2 6297 /* Enable FUNC */
cparata 0:6a670fda63c2 6298 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_ENABLED);
cparata 0:6a670fda63c2 6299
cparata 0:6a670fda63c2 6300 /* MASTER_EN */
cparata 0:6a670fda63c2 6301 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_ENABLED);
cparata 0:6a670fda63c2 6302
cparata 0:6a670fda63c2 6303 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6304 }
cparata 0:6a670fda63c2 6305
cparata 0:6a670fda63c2 6306 /* Read a remote device through I2C Sensor Hub Slave 0 */
cparata 0:6a670fda63c2 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:6a670fda63c2 6308 {
cparata 0:6a670fda63c2 6309 LSM6DSL_ACC_GYRO_SENS_HUB_END_t op_cmpl = LSM6DSL_ACC_GYRO_SENS_HUB_END_STILL_ONGOING;
cparata 0:6a670fda63c2 6310 LSM6DSL_ACC_GYRO_XLDA_t op_update = LSM6DSL_ACC_GYRO_XLDA_NO_DATA_AVAIL;
cparata 0:6a670fda63c2 6311 u8_t dummy[6];
cparata 0:6a670fda63c2 6312
cparata 0:6a670fda63c2 6313 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN);
cparata 0:6a670fda63c2 6314
cparata 0:6a670fda63c2 6315 LSM6DSL_ACC_GYRO_SH0_Program(handle, SlvAddr, Reg, len);
cparata 0:6a670fda63c2 6316
cparata 0:6a670fda63c2 6317 /* Syncronize the SH with internal trigger (xl) */
cparata 0:6a670fda63c2 6318 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_104Hz);
cparata 0:6a670fda63c2 6319
cparata 0:6a670fda63c2 6320 /* Wait until operation is not completed */
cparata 0:6a670fda63c2 6321 LSM6DSL_ACC_GYRO_GetRawAccData(handle, dummy);
cparata 0:6a670fda63c2 6322 do {
cparata 0:6a670fda63c2 6323 LSM6DSL_ACC_GYRO_R_XLDA(handle, &op_update);
cparata 0:6a670fda63c2 6324 } while(op_update != LSM6DSL_ACC_GYRO_XLDA_DATA_AVAIL);
cparata 0:6a670fda63c2 6325 do {
cparata 0:6a670fda63c2 6326 LSM6DSL_ACC_GYRO_R_SENS_HUB_END(handle, &op_cmpl);
cparata 0:6a670fda63c2 6327 } while(op_cmpl != LSM6DSL_ACC_GYRO_SENS_HUB_END_OP_COMPLETED);
cparata 0:6a670fda63c2 6328
cparata 0:6a670fda63c2 6329
cparata 0:6a670fda63c2 6330 /* Read the result */
cparata 0:6a670fda63c2 6331 LSM6DSL_ACC_GYRO_ReadReg(handle, LSM6DSL_ACC_GYRO_SENSORHUB1_REG, Bufp, len);
cparata 0:6a670fda63c2 6332
cparata 0:6a670fda63c2 6333 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN);
cparata 0:6a670fda63c2 6334
cparata 0:6a670fda63c2 6335 if (stop) {
cparata 0:6a670fda63c2 6336 /* Stop everything */
cparata 0:6a670fda63c2 6337 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_DISABLED);
cparata 0:6a670fda63c2 6338 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_DISABLED);
cparata 0:6a670fda63c2 6339 }
cparata 0:6a670fda63c2 6340
cparata 0:6a670fda63c2 6341 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6342 }
cparata 0:6a670fda63c2 6343
cparata 0:6a670fda63c2 6344 /* Write a remote device through I2C Sensor Hub Slave 0 */
cparata 0:6a670fda63c2 6345 status_t LSM6DSL_ACC_GYRO_SH0_WriteByte(void *handle, u8_t SlvAddr, u8_t Reg, u8_t Bufp)
cparata 0:6a670fda63c2 6346 {
cparata 0:6a670fda63c2 6347 LSM6DSL_ACC_GYRO_SENS_HUB_END_t op_cmpl = LSM6DSL_ACC_GYRO_SENS_HUB_END_STILL_ONGOING;
cparata 0:6a670fda63c2 6348 LSM6DSL_ACC_GYRO_XLDA_t op_update = LSM6DSL_ACC_GYRO_XLDA_NO_DATA_AVAIL;
cparata 0:6a670fda63c2 6349 u8_t dummy[6];
cparata 0:6a670fda63c2 6350
cparata 0:6a670fda63c2 6351 /* Open Embedded Function Register page*/
cparata 0:6a670fda63c2 6352 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_ENABLED);
cparata 0:6a670fda63c2 6353
cparata 0:6a670fda63c2 6354 /* Write remote device I2C slave address */
cparata 0:6a670fda63c2 6355 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_ADD, &SlvAddr, 1);
cparata 0:6a670fda63c2 6356
cparata 0:6a670fda63c2 6357 /* Write remote device I2C subaddress */
cparata 0:6a670fda63c2 6358 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_SLV0_SUBADD, &Reg, 1);
cparata 0:6a670fda63c2 6359
cparata 0:6a670fda63c2 6360 /* Write the data */
cparata 0:6a670fda63c2 6361 LSM6DSL_ACC_GYRO_WriteReg(handle, LSM6DSL_ACC_GYRO_DATAWRITE_SRC_MODE_SUB_SLV0, &Bufp, 1);
cparata 0:6a670fda63c2 6362
cparata 0:6a670fda63c2 6363 /* Close Embedded Function Register page*/
cparata 0:6a670fda63c2 6364 LSM6DSL_ACC_GYRO_W_EmbeddedAccess(handle, LSM6DSL_ACC_GYRO_EMBEDDED_ACCESS_DISABLED);
cparata 0:6a670fda63c2 6365
cparata 0:6a670fda63c2 6366 /* Enable FUNC */
cparata 0:6a670fda63c2 6367 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_ENABLED);
cparata 0:6a670fda63c2 6368
cparata 0:6a670fda63c2 6369 /* Enable PULL_UP_EN and MASTER_EN */
cparata 0:6a670fda63c2 6370 //LSM6DSL_ACC_GYRO_W_PULL_UP_EN(handle, LSM6DSL_ACC_GYRO_PULL_UP_EN_ENABLED);
cparata 0:6a670fda63c2 6371 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_ENABLED);
cparata 0:6a670fda63c2 6372
cparata 0:6a670fda63c2 6373 /* Syncronize the SH with internal trigger (xl) */
cparata 0:6a670fda63c2 6374 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_104Hz);
cparata 0:6a670fda63c2 6375
cparata 0:6a670fda63c2 6376 /* Wait until operation is not completed */
cparata 0:6a670fda63c2 6377 LSM6DSL_ACC_GYRO_GetRawAccData(handle, dummy);
cparata 0:6a670fda63c2 6378 do {
cparata 0:6a670fda63c2 6379 LSM6DSL_ACC_GYRO_R_XLDA(handle, &op_update);
cparata 0:6a670fda63c2 6380 } while(op_update != LSM6DSL_ACC_GYRO_XLDA_DATA_AVAIL);
cparata 0:6a670fda63c2 6381 do {
cparata 0:6a670fda63c2 6382 LSM6DSL_ACC_GYRO_R_SENS_HUB_END(handle, &op_cmpl);
cparata 0:6a670fda63c2 6383 } while(op_cmpl != LSM6DSL_ACC_GYRO_SENS_HUB_END_OP_COMPLETED);
cparata 0:6a670fda63c2 6384
cparata 0:6a670fda63c2 6385 LSM6DSL_ACC_GYRO_W_ODR_XL(handle, LSM6DSL_ACC_GYRO_ODR_XL_POWER_DOWN);
cparata 0:6a670fda63c2 6386
cparata 0:6a670fda63c2 6387 /* Stop everything */
cparata 0:6a670fda63c2 6388 LSM6DSL_ACC_GYRO_W_FUNC_EN(handle, LSM6DSL_ACC_GYRO_FUNC_EN_DISABLED);
cparata 0:6a670fda63c2 6389 LSM6DSL_ACC_GYRO_W_I2C_MASTER_Enable(handle, LSM6DSL_ACC_GYRO_MASTER_ON_DISABLED);
cparata 0:6a670fda63c2 6390
cparata 0:6a670fda63c2 6391
cparata 0:6a670fda63c2 6392 return MEMS_SUCCESS;
cparata 0:6a670fda63c2 6393 }