Suppressed conflicting destructor function.

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   D7A_1x_TRAINING D7_MLX_AND_BAT D7A_1x_demo_sensors_v3

Fork of X_NUCLEO_IKS01A1 by ST

Committer:
yordan
Date:
Thu Feb 09 16:10:33 2017 +0000
Revision:
99:5233cf5eb09d
Parent:
97:de5a5c00299a
Fix regression with DEBUG_LED on NUCLEO-L152RE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jeej 96:8cac3f3245b5 1 /**
Jeej 96:8cac3f3245b5 2 ******************************************************************************
Jeej 96:8cac3f3245b5 3 * @file LSM303C_MAG_driver.h
Jeej 96:8cac3f3245b5 4 * @author MEMS Application Team
Jeej 96:8cac3f3245b5 5 * @version V1.1
Jeej 96:8cac3f3245b5 6 * @date 25-February-2016
Jeej 96:8cac3f3245b5 7 * @brief LSM303C Magnetometer header driver file
Jeej 96:8cac3f3245b5 8 ******************************************************************************
Jeej 96:8cac3f3245b5 9 * @attention
Jeej 96:8cac3f3245b5 10 *
Jeej 96:8cac3f3245b5 11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
Jeej 96:8cac3f3245b5 12 *
Jeej 96:8cac3f3245b5 13 * Redistribution and use in source and binary forms, with or without modification,
Jeej 96:8cac3f3245b5 14 * are permitted provided that the following conditions are met:
Jeej 96:8cac3f3245b5 15 * 1. Redistributions of source code must retain the above copyright notice,
Jeej 96:8cac3f3245b5 16 * this list of conditions and the following disclaimer.
Jeej 96:8cac3f3245b5 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
Jeej 96:8cac3f3245b5 18 * this list of conditions and the following disclaimer in the documentation
Jeej 96:8cac3f3245b5 19 * and/or other materials provided with the distribution.
Jeej 96:8cac3f3245b5 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Jeej 96:8cac3f3245b5 21 * may be used to endorse or promote products derived from this software
Jeej 96:8cac3f3245b5 22 * without specific prior written permission.
Jeej 96:8cac3f3245b5 23 *
Jeej 96:8cac3f3245b5 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Jeej 96:8cac3f3245b5 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Jeej 96:8cac3f3245b5 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Jeej 96:8cac3f3245b5 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Jeej 96:8cac3f3245b5 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Jeej 96:8cac3f3245b5 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Jeej 96:8cac3f3245b5 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Jeej 96:8cac3f3245b5 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Jeej 96:8cac3f3245b5 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Jeej 96:8cac3f3245b5 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Jeej 96:8cac3f3245b5 34 *
Jeej 96:8cac3f3245b5 35 ******************************************************************************
Jeej 96:8cac3f3245b5 36 */
Jeej 96:8cac3f3245b5 37
Jeej 96:8cac3f3245b5 38 /* Define to prevent recursive inclusion -------------------------------------*/
Jeej 96:8cac3f3245b5 39 #ifndef __LSM303C_MAG_DRIVER__H
Jeej 96:8cac3f3245b5 40 #define __LSM303C_MAG_DRIVER__H
Jeej 96:8cac3f3245b5 41
Jeej 96:8cac3f3245b5 42 /* Includes ------------------------------------------------------------------*/
Jeej 96:8cac3f3245b5 43 #include <stdint.h>
Jeej 96:8cac3f3245b5 44
Jeej 96:8cac3f3245b5 45 /* Exported types ------------------------------------------------------------*/
Jeej 96:8cac3f3245b5 46
Jeej 96:8cac3f3245b5 47 #ifdef __cplusplus
Jeej 96:8cac3f3245b5 48 extern "C" {
Jeej 96:8cac3f3245b5 49 #endif
Jeej 96:8cac3f3245b5 50
Jeej 96:8cac3f3245b5 51 //these could change accordingly with the architecture
Jeej 96:8cac3f3245b5 52
Jeej 96:8cac3f3245b5 53 #ifndef __ARCHDEP__TYPES
Jeej 96:8cac3f3245b5 54 #define __ARCHDEP__TYPES
Jeej 96:8cac3f3245b5 55
Jeej 96:8cac3f3245b5 56 typedef unsigned char u8_t;
Jeej 96:8cac3f3245b5 57 typedef unsigned short int u16_t;
Jeej 96:8cac3f3245b5 58 typedef unsigned int u32_t;
Jeej 96:8cac3f3245b5 59 typedef int i32_t;
Jeej 96:8cac3f3245b5 60 typedef short int i16_t;
Jeej 96:8cac3f3245b5 61 typedef signed char i8_t;
Jeej 96:8cac3f3245b5 62
Jeej 96:8cac3f3245b5 63 #endif /*__ARCHDEP__TYPES*/
Jeej 96:8cac3f3245b5 64
Jeej 96:8cac3f3245b5 65 /* Exported common structure --------------------------------------------------------*/
Jeej 96:8cac3f3245b5 66
Jeej 96:8cac3f3245b5 67 #ifndef __SHARED__TYPES
Jeej 96:8cac3f3245b5 68 #define __SHARED__TYPES
Jeej 96:8cac3f3245b5 69
Jeej 96:8cac3f3245b5 70 typedef union{
Jeej 96:8cac3f3245b5 71 i16_t i16bit[3];
Jeej 96:8cac3f3245b5 72 u8_t u8bit[6];
Jeej 96:8cac3f3245b5 73 } Type3Axis16bit_U;
Jeej 96:8cac3f3245b5 74
Jeej 96:8cac3f3245b5 75 typedef union{
Jeej 96:8cac3f3245b5 76 i16_t i16bit;
Jeej 96:8cac3f3245b5 77 u8_t u8bit[2];
Jeej 96:8cac3f3245b5 78 } Type1Axis16bit_U;
Jeej 96:8cac3f3245b5 79
Jeej 96:8cac3f3245b5 80 typedef union{
Jeej 96:8cac3f3245b5 81 i32_t i32bit;
Jeej 96:8cac3f3245b5 82 u8_t u8bit[4];
Jeej 96:8cac3f3245b5 83 } Type1Axis32bit_U;
Jeej 96:8cac3f3245b5 84
Jeej 96:8cac3f3245b5 85 typedef enum {
Jeej 96:8cac3f3245b5 86 MEMS_SUCCESS = 0x01,
Jeej 96:8cac3f3245b5 87 MEMS_ERROR = 0x00
Jeej 96:8cac3f3245b5 88 } status_t;
Jeej 96:8cac3f3245b5 89
Jeej 96:8cac3f3245b5 90 #endif /*__SHARED__TYPES*/
Jeej 96:8cac3f3245b5 91
Jeej 96:8cac3f3245b5 92 /* Exported macro ------------------------------------------------------------*/
Jeej 96:8cac3f3245b5 93
Jeej 96:8cac3f3245b5 94 /* Exported constants --------------------------------------------------------*/
Jeej 96:8cac3f3245b5 95
Jeej 96:8cac3f3245b5 96 /************** I2C Address *****************/
Jeej 96:8cac3f3245b5 97
Jeej 96:8cac3f3245b5 98 #define LSM303C_MAG_I2C_ADDRESS 0x3C
Jeej 97:de5a5c00299a 99 #define I_AM_LSM303C_MAG 0x3D
Jeej 96:8cac3f3245b5 100
Jeej 96:8cac3f3245b5 101 /* Magnetic field Registers */
Jeej 96:8cac3f3245b5 102 #define LSM303C_WHO_AM_I_REG_M 0x0F /* device identification register */
Jeej 96:8cac3f3245b5 103 #define LSM303C_CTRL_REG1_M 0x20 /* Magnetic control register 1 */
Jeej 96:8cac3f3245b5 104 #define LSM303C_CTRL_REG2_M 0x21 /* Magnetic control register 2 */
Jeej 96:8cac3f3245b5 105 #define LSM303C_CTRL_REG3_M 0x22 /* Magnetic control register 3 */
Jeej 96:8cac3f3245b5 106 #define LSM303C_CTRL_REG4_M 0x23 /* Magnetic control register 4 */
Jeej 96:8cac3f3245b5 107 #define LSM303C_CTRL_REG5_M 0x24 /* Magnetic control register 5 */
Jeej 96:8cac3f3245b5 108
Jeej 96:8cac3f3245b5 109 #define LSM303C_STATUS_REG_M 0x27 /* Magnetic status register M */
Jeej 96:8cac3f3245b5 110
Jeej 96:8cac3f3245b5 111 #define LSM303C_OUT_X_L_M 0x28 /* Output Register X magnetic field */
Jeej 96:8cac3f3245b5 112 #define LSM303C_OUT_X_H_M 0x29 /* Output Register X magnetic field */
Jeej 96:8cac3f3245b5 113 #define LSM303C_OUT_Y_L_M 0x2A /* Output Register Y magnetic field */
Jeej 96:8cac3f3245b5 114 #define LSM303C_OUT_Y_H_M 0x2B /* Output Register Y magnetic field */
Jeej 96:8cac3f3245b5 115 #define LSM303C_OUT_Z_L_M 0x2C /* Output Register Z magnetic field */
Jeej 96:8cac3f3245b5 116 #define LSM303C_OUT_Z_H_M 0x2D /* Output Register Z magnetic field */
Jeej 96:8cac3f3245b5 117
Jeej 96:8cac3f3245b5 118 #define LSM303C_TEMP_OUT_L_M 0x2E /* Temperature Register magnetic field */
Jeej 96:8cac3f3245b5 119 #define LSM303C_TEMP_OUT_H_M 0x2F /* Temperature Register magnetic field */
Jeej 96:8cac3f3245b5 120
Jeej 96:8cac3f3245b5 121 #define LSM303C_INT_CFG_M 0x30 /* Axis interrupt configuration */
Jeej 96:8cac3f3245b5 122 #define LSM303C_INT_SRC_M 0x31 /* Axis interrupt source */
Jeej 96:8cac3f3245b5 123 #define LSM303C_INT_THS_L_M 0x32 /* Interrupt threshold L */
Jeej 96:8cac3f3245b5 124 #define LSM303C_INT_THS_H_M 0x33 /* Interrupt threshold M */
Jeej 96:8cac3f3245b5 125
Jeej 96:8cac3f3245b5 126 /* Private Function Prototype -------------------------------------------------------*/
Jeej 96:8cac3f3245b5 127
Jeej 96:8cac3f3245b5 128 void LSM303C_MAG_SwapHighLowByte(u8_t *bufferToSwap, u8_t numberOfByte, u8_t dimension);
Jeej 96:8cac3f3245b5 129
Jeej 96:8cac3f3245b5 130 /* Public Function Prototypes -------------------------------------------------------*/
Jeej 96:8cac3f3245b5 131
Jeej 96:8cac3f3245b5 132 status_t LSM303C_MAG_ReadReg( void *handle, u8_t Reg, u8_t* Data );
Jeej 96:8cac3f3245b5 133 status_t LSM303C_MAG_WriteReg( void *handle, u8_t Reg, u8_t Data );
Jeej 96:8cac3f3245b5 134
Jeej 96:8cac3f3245b5 135 /*******************************************************************************
Jeej 96:8cac3f3245b5 136 * Register : WHO_AM_I_REG
Jeej 96:8cac3f3245b5 137 * Address : 0X4F
Jeej 96:8cac3f3245b5 138 * Bit Group Name: WHO_AM_I
Jeej 96:8cac3f3245b5 139 * Permission : RO
Jeej 96:8cac3f3245b5 140 *******************************************************************************/
Jeej 96:8cac3f3245b5 141 #define LSM303C_MAG_WHO_AM_I_MASK 0xFF
Jeej 96:8cac3f3245b5 142 #define LSM303C_MAG_WHO_AM_I_POSITION 0
Jeej 96:8cac3f3245b5 143 status_t LSM303C_MAG_R_WHO_AM_I(void *handle, u8_t *value);
Jeej 96:8cac3f3245b5 144
Jeej 96:8cac3f3245b5 145 /*******************************************************************************
Jeej 96:8cac3f3245b5 146 * Register : CFG_REG_A
Jeej 96:8cac3f3245b5 147 * Address : 0X60
Jeej 96:8cac3f3245b5 148 * Bit Group Name: MD
Jeej 96:8cac3f3245b5 149 * Permission : RW
Jeej 96:8cac3f3245b5 150 *******************************************************************************/
Jeej 96:8cac3f3245b5 151 typedef enum {
Jeej 96:8cac3f3245b5 152 LSM303C_MAG_MD_CONTINUOS_MODE =0x00,
Jeej 96:8cac3f3245b5 153 LSM303C_MAG_MD_SINGLE_MODE =0x01,
Jeej 96:8cac3f3245b5 154 LSM303C_MAG_MD_IDLE1_MODE =0x02,
Jeej 96:8cac3f3245b5 155 LSM303C_MAG_MD_IDLE2_MODE =0x03,
Jeej 96:8cac3f3245b5 156 } LSM303C_MAG_MD_t;
Jeej 96:8cac3f3245b5 157
Jeej 96:8cac3f3245b5 158 #define LSM303C_MAG_MD_MASK 0x03
Jeej 96:8cac3f3245b5 159 status_t LSM303C_MAG_W_MD(void *handle, LSM303C_MAG_MD_t newValue);
Jeej 96:8cac3f3245b5 160 status_t LSM303C_MAG_R_MD(void *handle, LSM303C_MAG_MD_t *value);
Jeej 96:8cac3f3245b5 161
Jeej 96:8cac3f3245b5 162 /*******************************************************************************
Jeej 96:8cac3f3245b5 163 * Register : CFG_REG_A
Jeej 96:8cac3f3245b5 164 * Address : 0X60
Jeej 96:8cac3f3245b5 165 * Bit Group Name: ODR
Jeej 96:8cac3f3245b5 166 * Permission : RW
Jeej 96:8cac3f3245b5 167 *******************************************************************************/
Jeej 96:8cac3f3245b5 168 typedef enum {
Jeej 96:8cac3f3245b5 169 LSM303C_MAG_ODR_0_625Hz =0x00,
Jeej 96:8cac3f3245b5 170 LSM303C_MAG_ODR_1_25Hz =0x04,
Jeej 96:8cac3f3245b5 171 LSM303C_MAG_ODR_2_5Hz =0x08,
Jeej 96:8cac3f3245b5 172 LSM303C_MAG_ODR_5Hz =0x0C,
Jeej 96:8cac3f3245b5 173 LSM303C_MAG_ODR_10Hz =0x10,
Jeej 96:8cac3f3245b5 174 LSM303C_MAG_ODR_20Hz =0x14,
Jeej 96:8cac3f3245b5 175 LSM303C_MAG_ODR_40Hz =0x18,
Jeej 96:8cac3f3245b5 176 LSM303C_MAG_ODR_80Hz =0x1C,
Jeej 96:8cac3f3245b5 177 } LSM303C_MAG_ODR_t;
Jeej 96:8cac3f3245b5 178
Jeej 96:8cac3f3245b5 179 #define LSM303C_MAG_ODR_MASK 0x1C
Jeej 96:8cac3f3245b5 180 status_t LSM303C_MAG_W_ODR(void *handle, LSM303C_MAG_ODR_t newValue);
Jeej 96:8cac3f3245b5 181 status_t LSM303C_MAG_R_ODR(void *handle, LSM303C_MAG_ODR_t *value);
Jeej 96:8cac3f3245b5 182
Jeej 96:8cac3f3245b5 183 /*******************************************************************************
Jeej 96:8cac3f3245b5 184 * Register : CFG_REG_A
Jeej 96:8cac3f3245b5 185 * Address : 0X60
Jeej 96:8cac3f3245b5 186 * Bit Group Name: LP
Jeej 96:8cac3f3245b5 187 * Permission : RW
Jeej 96:8cac3f3245b5 188 *******************************************************************************/
Jeej 96:8cac3f3245b5 189 typedef enum {
Jeej 96:8cac3f3245b5 190 LSM303C_MAG_HR_MODE =0x00,
Jeej 96:8cac3f3245b5 191 LSM303C_MAG_LP_MODE =0x20,
Jeej 96:8cac3f3245b5 192 } LSM303C_MAG_LP_t;
Jeej 96:8cac3f3245b5 193
Jeej 96:8cac3f3245b5 194 #define LSM303C_MAG_LP_MASK 0x20
Jeej 96:8cac3f3245b5 195 status_t LSM303C_MAG_W_LP(void *handle, LSM303C_MAG_LP_t newValue);
Jeej 96:8cac3f3245b5 196 status_t LSM303C_MAG_R_LP(void *handle, LSM303C_MAG_LP_t *value);
Jeej 96:8cac3f3245b5 197
Jeej 96:8cac3f3245b5 198 /*******************************************************************************
Jeej 96:8cac3f3245b5 199 * Register : CFG_REG_A
Jeej 96:8cac3f3245b5 200 * Address : 0X60
Jeej 96:8cac3f3245b5 201 * Bit Group Name: SOFT_RST
Jeej 96:8cac3f3245b5 202 * Permission : RW
Jeej 96:8cac3f3245b5 203 *******************************************************************************/
Jeej 96:8cac3f3245b5 204 typedef enum {
Jeej 96:8cac3f3245b5 205 LSM303C_MAG_SOFT_RST_DISABLED =0x00,
Jeej 96:8cac3f3245b5 206 LSM303C_MAG_SOFT_RST_ENABLED =0x04,
Jeej 96:8cac3f3245b5 207 } LSM303C_MAG_SOFT_RST_t;
Jeej 96:8cac3f3245b5 208
Jeej 96:8cac3f3245b5 209 #define LSM303C_MAG_SOFT_RST_MASK 0x04
Jeej 96:8cac3f3245b5 210 status_t LSM303C_MAG_W_SOFT_RST(void *handle, LSM303C_MAG_SOFT_RST_t newValue);
Jeej 96:8cac3f3245b5 211 status_t LSM303C_MAG_R_SOFT_RST(void *handle, LSM303C_MAG_SOFT_RST_t *value);
Jeej 96:8cac3f3245b5 212
Jeej 96:8cac3f3245b5 213 /*******************************************************************************
Jeej 96:8cac3f3245b5 214 * Register : CFG_REG_C
Jeej 96:8cac3f3245b5 215 * Address : 0X62
Jeej 96:8cac3f3245b5 216 * Bit Group Name: ST
Jeej 96:8cac3f3245b5 217 * Permission : RW
Jeej 96:8cac3f3245b5 218 *******************************************************************************/
Jeej 96:8cac3f3245b5 219 typedef enum {
Jeej 96:8cac3f3245b5 220 LSM303C_MAG_ST_DISABLED =0x00,
Jeej 96:8cac3f3245b5 221 LSM303C_MAG_ST_ENABLED =0x01,
Jeej 96:8cac3f3245b5 222 } LSM303C_MAG_ST_t;
Jeej 96:8cac3f3245b5 223
Jeej 96:8cac3f3245b5 224 #define LSM303C_MAG_ST_MASK 0x01
Jeej 96:8cac3f3245b5 225 status_t LSM303C_MAG_W_ST(void *handle, LSM303C_MAG_ST_t newValue);
Jeej 96:8cac3f3245b5 226 status_t LSM303C_MAG_R_ST(void *handle, LSM303C_MAG_ST_t *value);
Jeej 96:8cac3f3245b5 227
Jeej 96:8cac3f3245b5 228 /*******************************************************************************
Jeej 96:8cac3f3245b5 229 * Register : CFG_REG_C
Jeej 96:8cac3f3245b5 230 * Address : 0X62
Jeej 96:8cac3f3245b5 231 * Bit Group Name: BLE
Jeej 96:8cac3f3245b5 232 * Permission : RW
Jeej 96:8cac3f3245b5 233 *******************************************************************************/
Jeej 96:8cac3f3245b5 234 typedef enum {
Jeej 96:8cac3f3245b5 235 LSM303C_MAG_BLE_DISABLED =0x00,
Jeej 96:8cac3f3245b5 236 LSM303C_MAG_BLE_ENABLED =0x02,
Jeej 96:8cac3f3245b5 237 } LSM303C_MAG_BLE_t;
Jeej 96:8cac3f3245b5 238
Jeej 96:8cac3f3245b5 239 #define LSM303C_MAG_BLE_MASK 0x02
Jeej 96:8cac3f3245b5 240 status_t LSM303C_MAG_W_BLE(void *handle, LSM303C_MAG_BLE_t newValue);
Jeej 96:8cac3f3245b5 241 status_t LSM303C_MAG_R_BLE(void *handle, LSM303C_MAG_BLE_t *value);
Jeej 96:8cac3f3245b5 242
Jeej 96:8cac3f3245b5 243 /*******************************************************************************
Jeej 96:8cac3f3245b5 244 * Register : CFG_REG_C
Jeej 96:8cac3f3245b5 245 * Address : 0X62
Jeej 96:8cac3f3245b5 246 * Bit Group Name: BDU
Jeej 96:8cac3f3245b5 247 * Permission : RW
Jeej 96:8cac3f3245b5 248 *******************************************************************************/
Jeej 96:8cac3f3245b5 249 typedef enum {
Jeej 96:8cac3f3245b5 250 LSM303C_MAG_BDU_DISABLED =0x00,
Jeej 96:8cac3f3245b5 251 LSM303C_MAG_BDU_ENABLED =0x40,
Jeej 96:8cac3f3245b5 252 } LSM303C_MAG_BDU_t;
Jeej 96:8cac3f3245b5 253
Jeej 96:8cac3f3245b5 254 #define LSM303C_MAG_BDU_MASK 0x40
Jeej 96:8cac3f3245b5 255 status_t LSM303C_MAG_W_BDU(void *handle, LSM303C_MAG_BDU_t newValue);
Jeej 96:8cac3f3245b5 256 status_t LSM303C_MAG_R_BDU(void *handle, LSM303C_MAG_BDU_t *value);
Jeej 96:8cac3f3245b5 257
Jeej 96:8cac3f3245b5 258 /*******************************************************************************
Jeej 96:8cac3f3245b5 259 * Register : CFG_REG_C
Jeej 96:8cac3f3245b5 260 * Address : 0X62
Jeej 96:8cac3f3245b5 261 * Bit Group Name: I2C_DIS
Jeej 96:8cac3f3245b5 262 * Permission : RW
Jeej 96:8cac3f3245b5 263 *******************************************************************************/
Jeej 96:8cac3f3245b5 264 typedef enum {
Jeej 96:8cac3f3245b5 265 LSM303C_MAG_I2C_ENABLED =0x00,
Jeej 96:8cac3f3245b5 266 LSM303C_MAG_I2C_DISABLED =0x80,
Jeej 96:8cac3f3245b5 267 } LSM303C_MAG_I2C_DIS_t;
Jeej 96:8cac3f3245b5 268
Jeej 96:8cac3f3245b5 269 #define LSM303C_MAG_I2C_DIS_MASK 0x80
Jeej 96:8cac3f3245b5 270 status_t LSM303C_MAG_W_I2C_DIS(void *handle, LSM303C_MAG_I2C_DIS_t newValue);
Jeej 96:8cac3f3245b5 271 status_t LSM303C_MAG_R_I2C_DIS(void *handle, LSM303C_MAG_I2C_DIS_t *value);
Jeej 96:8cac3f3245b5 272
Jeej 96:8cac3f3245b5 273 /*******************************************************************************
Jeej 96:8cac3f3245b5 274 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 275 * Address : 0X67
Jeej 96:8cac3f3245b5 276 * Bit Group Name: XDA
Jeej 96:8cac3f3245b5 277 * Permission : RO
Jeej 96:8cac3f3245b5 278 *******************************************************************************/
Jeej 96:8cac3f3245b5 279 typedef enum {
Jeej 96:8cac3f3245b5 280 LSM303C_MAG_XDA_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 281 LSM303C_MAG_XDA_EV_ON =0x01,
Jeej 96:8cac3f3245b5 282 } LSM303C_MAG_XDA_t;
Jeej 96:8cac3f3245b5 283
Jeej 96:8cac3f3245b5 284 #define LSM303C_MAG_XDA_MASK 0x01
Jeej 96:8cac3f3245b5 285 status_t LSM303C_MAG_R_XDA(void *handle, LSM303C_MAG_XDA_t *value);
Jeej 96:8cac3f3245b5 286
Jeej 96:8cac3f3245b5 287 /*******************************************************************************
Jeej 96:8cac3f3245b5 288 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 289 * Address : 0X67
Jeej 96:8cac3f3245b5 290 * Bit Group Name: YDA
Jeej 96:8cac3f3245b5 291 * Permission : RO
Jeej 96:8cac3f3245b5 292 *******************************************************************************/
Jeej 96:8cac3f3245b5 293 typedef enum {
Jeej 96:8cac3f3245b5 294 LSM303C_MAG_YDA_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 295 LSM303C_MAG_YDA_EV_ON =0x02,
Jeej 96:8cac3f3245b5 296 } LSM303C_MAG_YDA_t;
Jeej 96:8cac3f3245b5 297
Jeej 96:8cac3f3245b5 298 #define LSM303C_MAG_YDA_MASK 0x02
Jeej 96:8cac3f3245b5 299 status_t LSM303C_MAG_R_YDA(void *handle, LSM303C_MAG_YDA_t *value);
Jeej 96:8cac3f3245b5 300
Jeej 96:8cac3f3245b5 301 /*******************************************************************************
Jeej 96:8cac3f3245b5 302 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 303 * Address : 0X67
Jeej 96:8cac3f3245b5 304 * Bit Group Name: ZDA
Jeej 96:8cac3f3245b5 305 * Permission : RO
Jeej 96:8cac3f3245b5 306 *******************************************************************************/
Jeej 96:8cac3f3245b5 307 typedef enum {
Jeej 96:8cac3f3245b5 308 LSM303C_MAG_ZDA_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 309 LSM303C_MAG_ZDA_EV_ON =0x04,
Jeej 96:8cac3f3245b5 310 } LSM303C_MAG_ZDA_t;
Jeej 96:8cac3f3245b5 311
Jeej 96:8cac3f3245b5 312 #define LSM303C_MAG_ZDA_MASK 0x04
Jeej 96:8cac3f3245b5 313 status_t LSM303C_MAG_R_ZDA(void *handle, LSM303C_MAG_ZDA_t *value);
Jeej 96:8cac3f3245b5 314
Jeej 96:8cac3f3245b5 315 /*******************************************************************************
Jeej 96:8cac3f3245b5 316 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 317 * Address : 0X67
Jeej 96:8cac3f3245b5 318 * Bit Group Name: ZYXDA
Jeej 96:8cac3f3245b5 319 * Permission : RO
Jeej 96:8cac3f3245b5 320 *******************************************************************************/
Jeej 96:8cac3f3245b5 321 typedef enum {
Jeej 96:8cac3f3245b5 322 LSM303C_MAG_ZYXDA_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 323 LSM303C_MAG_ZYXDA_EV_ON =0x08,
Jeej 96:8cac3f3245b5 324 } LSM303C_MAG_ZYXDA_t;
Jeej 96:8cac3f3245b5 325
Jeej 96:8cac3f3245b5 326 #define LSM303C_MAG_ZYXDA_MASK 0x08
Jeej 96:8cac3f3245b5 327 status_t LSM303C_MAG_R_ZYXDA(void *handle, LSM303C_MAG_ZYXDA_t *value);
Jeej 96:8cac3f3245b5 328
Jeej 96:8cac3f3245b5 329 /*******************************************************************************
Jeej 96:8cac3f3245b5 330 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 331 * Address : 0X67
Jeej 96:8cac3f3245b5 332 * Bit Group Name: XOR
Jeej 96:8cac3f3245b5 333 * Permission : RO
Jeej 96:8cac3f3245b5 334 *******************************************************************************/
Jeej 96:8cac3f3245b5 335 typedef enum {
Jeej 96:8cac3f3245b5 336 LSM303C_MAG_XOR_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 337 LSM303C_MAG_XOR_EV_ON =0x10,
Jeej 96:8cac3f3245b5 338 } LSM303C_MAG_XOR_t;
Jeej 96:8cac3f3245b5 339
Jeej 96:8cac3f3245b5 340 #define LSM303C_MAG_XOR_MASK 0x10
Jeej 96:8cac3f3245b5 341 status_t LSM303C_MAG_R_XOR(void *handle, LSM303C_MAG_XOR_t *value);
Jeej 96:8cac3f3245b5 342
Jeej 96:8cac3f3245b5 343 /*******************************************************************************
Jeej 96:8cac3f3245b5 344 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 345 * Address : 0X67
Jeej 96:8cac3f3245b5 346 * Bit Group Name: YOR
Jeej 96:8cac3f3245b5 347 * Permission : RO
Jeej 96:8cac3f3245b5 348 *******************************************************************************/
Jeej 96:8cac3f3245b5 349 typedef enum {
Jeej 96:8cac3f3245b5 350 LSM303C_MAG_YOR_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 351 LSM303C_MAG_YOR_EV_ON =0x20,
Jeej 96:8cac3f3245b5 352 } LSM303C_MAG_YOR_t;
Jeej 96:8cac3f3245b5 353
Jeej 96:8cac3f3245b5 354 #define LSM303C_MAG_YOR_MASK 0x20
Jeej 96:8cac3f3245b5 355 status_t LSM303C_MAG_R_YOR(void *handle, LSM303C_MAG_YOR_t *value);
Jeej 96:8cac3f3245b5 356
Jeej 96:8cac3f3245b5 357 /*******************************************************************************
Jeej 96:8cac3f3245b5 358 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 359 * Address : 0X67
Jeej 96:8cac3f3245b5 360 * Bit Group Name: ZOR
Jeej 96:8cac3f3245b5 361 * Permission : RO
Jeej 96:8cac3f3245b5 362 *******************************************************************************/
Jeej 96:8cac3f3245b5 363 typedef enum {
Jeej 96:8cac3f3245b5 364 LSM303C_MAG_ZOR_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 365 LSM303C_MAG_ZOR_EV_ON =0x40,
Jeej 96:8cac3f3245b5 366 } LSM303C_MAG_ZOR_t;
Jeej 96:8cac3f3245b5 367
Jeej 96:8cac3f3245b5 368 #define LSM303C_MAG_ZOR_MASK 0x40
Jeej 96:8cac3f3245b5 369 status_t LSM303C_MAG_R_ZOR(void *handle, LSM303C_MAG_ZOR_t *value);
Jeej 96:8cac3f3245b5 370
Jeej 96:8cac3f3245b5 371 /*******************************************************************************
Jeej 96:8cac3f3245b5 372 * Register : STATUS_REG
Jeej 96:8cac3f3245b5 373 * Address : 0X67
Jeej 96:8cac3f3245b5 374 * Bit Group Name: ZYXOR
Jeej 96:8cac3f3245b5 375 * Permission : RO
Jeej 96:8cac3f3245b5 376 *******************************************************************************/
Jeej 96:8cac3f3245b5 377 typedef enum {
Jeej 96:8cac3f3245b5 378 LSM303C_MAG_ZYXOR_EV_OFF =0x00,
Jeej 96:8cac3f3245b5 379 LSM303C_MAG_ZYXOR_EV_ON =0x80,
Jeej 96:8cac3f3245b5 380 } LSM303C_MAG_ZYXOR_t;
Jeej 96:8cac3f3245b5 381
Jeej 96:8cac3f3245b5 382 #define LSM303C_MAG_ZYXOR_MASK 0x80
Jeej 96:8cac3f3245b5 383 status_t LSM303C_MAG_R_ZYXOR(void *handle, LSM303C_MAG_ZYXOR_t *value);
Jeej 96:8cac3f3245b5 384 /*******************************************************************************
Jeej 96:8cac3f3245b5 385 * Register : <REGISTER_L> - <REGISTER_H>
Jeej 96:8cac3f3245b5 386 * Output Type : Magnetic
Jeej 96:8cac3f3245b5 387 * Permission : ro
Jeej 96:8cac3f3245b5 388 *******************************************************************************/
Jeej 96:8cac3f3245b5 389 status_t LSM303C_MAG_Get_Raw_Magnetic(void *handle, u8_t *buff);
Jeej 96:8cac3f3245b5 390 status_t LSM303C_MAG_Get_Magnetic(void *handle, int *buff);
Jeej 96:8cac3f3245b5 391
Jeej 96:8cac3f3245b5 392 /*******************************************************************************
Jeej 96:8cac3f3245b5 393 * Register : <REGISTER_L> - <REGISTER_H>
Jeej 96:8cac3f3245b5 394 * Output Type : IntThreshld
Jeej 96:8cac3f3245b5 395 * Permission : rw
Jeej 96:8cac3f3245b5 396 *******************************************************************************/
Jeej 96:8cac3f3245b5 397 status_t LSM303C_MAG_Get_IntThreshld(void *handle, u8_t *buff);
Jeej 96:8cac3f3245b5 398 status_t LSM303C_MAG_Set_IntThreshld(void *handle, u8_t *buff);
Jeej 96:8cac3f3245b5 399
Jeej 96:8cac3f3245b5 400 #ifdef __cplusplus
Jeej 96:8cac3f3245b5 401 }
Jeej 96:8cac3f3245b5 402 #endif
Jeej 96:8cac3f3245b5 403
Jeej 96:8cac3f3245b5 404 #endif