My attempt to made a more useful lib. You can get the accelerator and magnetometer.
Fork of LSM303DLH by
LSM303DLH_RegisterDef.h@6:86cf2afe3e52, 2017-08-06 (annotated)
- Committer:
- salco
- Date:
- Sun Aug 06 22:23:24 2017 +0000
- Revision:
- 6:86cf2afe3e52
- Parent:
- 5:48722ae56546
- Child:
- 7:275a0a69cff5
Cleanup done;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
salco | 5:48722ae56546 | 1 | #ifndef __LSM303DLH_REGISTERDEF_H_ |
salco | 5:48722ae56546 | 2 | #define __LSM303DLH_REGISTERDEF_H_ |
salco | 5:48722ae56546 | 3 | |
salco | 5:48722ae56546 | 4 | /** @defgroup regA Register |
salco | 6:86cf2afe3e52 | 5 | * Register for accelerometer |
salco | 6:86cf2afe3e52 | 6 | * @{ |
salco | 6:86cf2afe3e52 | 7 | */ |
salco | 6:86cf2afe3e52 | 8 | |
salco | 6:86cf2afe3e52 | 9 | //#if defined(DOXYGEN_ONLY) |
salco | 6:86cf2afe3e52 | 10 | |
salco | 6:86cf2afe3e52 | 11 | /**@note add LSM303DLH:: to use the docc doxygen for no reason*/ |
salco | 6:86cf2afe3e52 | 12 | |
salco | 6:86cf2afe3e52 | 13 | /** CTRL_REG1_A structure definition |
salco | 6:86cf2afe3e52 | 14 | */ |
salco | 6:86cf2afe3e52 | 15 | union Ctrl_Reg1_A_t |
salco | 6:86cf2afe3e52 | 16 | { |
salco | 6:86cf2afe3e52 | 17 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 18 | struct{ |
salco | 6:86cf2afe3e52 | 19 | uint8_t Xen:1; /**< X axis enable. Default value: 1.*/ |
salco | 6:86cf2afe3e52 | 20 | uint8_t Yen:1; /**< Y axis enable. Default value: 1.*/ |
salco | 6:86cf2afe3e52 | 21 | uint8_t Zen:1; /**< Z axis enable. Default value: 1.*/ |
salco | 6:86cf2afe3e52 | 22 | uint8_t LPen:1;/**< Low-power mode enable. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 23 | uint8_t ODR:4; /**< Data rate selection. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 24 | }; |
salco | 6:86cf2afe3e52 | 25 | }; |
salco | 6:86cf2afe3e52 | 26 | |
salco | 6:86cf2afe3e52 | 27 | /** CTRL_REG2_A structure definition |
salco | 6:86cf2afe3e52 | 28 | */ |
salco | 6:86cf2afe3e52 | 29 | union Ctrl_Reg2_A_t |
salco | 6:86cf2afe3e52 | 30 | { |
salco | 6:86cf2afe3e52 | 31 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 32 | struct{ |
salco | 6:86cf2afe3e52 | 33 | uint8_t HPIS1:1; /**< High pass filter enabled for AOI function on Interrupt 1.*/ |
salco | 6:86cf2afe3e52 | 34 | uint8_t HPIS2:1; /**< High pass filter enabled for AOI function on Interrupt 2.*/ |
salco | 6:86cf2afe3e52 | 35 | uint8_t HPCLICK:1; /**< High pass filter enabled for CLICK function.*/ |
salco | 6:86cf2afe3e52 | 36 | uint8_t FDS:1; /**< Filtered data selection. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 37 | uint8_t HPCF:2; /**< High pass filter cut-off frequency selection.*/ |
salco | 6:86cf2afe3e52 | 38 | uint8_t HPM:2; /**< High pass filter mode selection. Default value: 00*/ |
salco | 6:86cf2afe3e52 | 39 | }; |
salco | 6:86cf2afe3e52 | 40 | }; |
salco | 6:86cf2afe3e52 | 41 | |
salco | 6:86cf2afe3e52 | 42 | /** CTRL_REG3_A structure definition |
salco | 6:86cf2afe3e52 | 43 | */ |
salco | 6:86cf2afe3e52 | 44 | union Ctrl_Reg3_A_t |
salco | 6:86cf2afe3e52 | 45 | { |
salco | 6:86cf2afe3e52 | 46 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 47 | struct{ |
salco | 6:86cf2afe3e52 | 48 | uint8_t _Reserved:1; /**< Do not use.*/ |
salco | 6:86cf2afe3e52 | 49 | uint8_t I1_OVERRUN:1; /**< FIFO overrun interrupt on INT1. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 50 | uint8_t I1_WTM:1; /**< FIFO watermark interrupt on INT1. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 51 | uint8_t I1_DRDY2:1; /**< DRDY2 interrupt on INT1. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 52 | uint8_t I1_DRDY1:1; /**< DRDY1 interrupt on INT1. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 53 | uint8_t I1_AOI2:1; /**< AOI2 interrupt on INT1. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 54 | uint8_t I1_AOI1:1; /**< AOI1 interrupt on INT1. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 55 | uint8_t I1_CLICK:1; /**< CLICK interrupt on INT1. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 56 | }; |
salco | 6:86cf2afe3e52 | 57 | }; |
salco | 6:86cf2afe3e52 | 58 | |
salco | 6:86cf2afe3e52 | 59 | /** CTRL_REG4_A structure definition |
salco | 6:86cf2afe3e52 | 60 | */ |
salco | 6:86cf2afe3e52 | 61 | union Ctrl_Reg4_A_t |
salco | 6:86cf2afe3e52 | 62 | { |
salco | 6:86cf2afe3e52 | 63 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 64 | struct{ |
salco | 6:86cf2afe3e52 | 65 | uint8_t SIM:1; /**< SPI serial interface mode selection. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 66 | uint8_t _Reserved:2; /**< Do not use.*/ |
salco | 6:86cf2afe3e52 | 67 | uint8_t HR:1; /**< High resolution output mode: Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 68 | uint8_t FS:2; /**< Full-scale selection. Default value: 00.*/ |
salco | 6:86cf2afe3e52 | 69 | uint8_t BLE:1; /**< Big/little endian data selection. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 70 | uint8_t BDU:1; /**< Block data update. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 71 | }; |
salco | 6:86cf2afe3e52 | 72 | }; |
salco | 6:86cf2afe3e52 | 73 | |
salco | 6:86cf2afe3e52 | 74 | /** CTRL_REG5_A structure definition |
salco | 6:86cf2afe3e52 | 75 | */ |
salco | 6:86cf2afe3e52 | 76 | union Ctrl_Reg5_A_t |
salco | 6:86cf2afe3e52 | 77 | { |
salco | 6:86cf2afe3e52 | 78 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 79 | struct{ |
salco | 6:86cf2afe3e52 | 80 | uint8_t D4D_INT2:1; /**< 4D detection is enabled on INT2 when 6D bit on INT2_CFG is set to 1.*/ |
salco | 6:86cf2afe3e52 | 81 | uint8_t LIR_INT2:1; /**< Latch interrupt request on INT2_SRC register, with INT2_SRC register |
salco | 6:86cf2afe3e52 | 82 | cleared by reading INT2_SRC itself. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 83 | uint8_t D4D_INT1:1; /**< 4D detection is enabled on INT1 when 6D bit on INT1_CFG is set to 1.*/ |
salco | 6:86cf2afe3e52 | 84 | uint8_t LIR_INT1:1; /**< Latch interrupt request on INT1_SRC register, with INT1_SRC register |
salco | 6:86cf2afe3e52 | 85 | cleared by reading INT1_SRC itself. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 86 | uint8_t _Reserved:2; /**< Do not use.*/ |
salco | 6:86cf2afe3e52 | 87 | uint8_t FIFO_EN:1; /**< FIFO enable. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 88 | uint8_t BOOT:1; /**< Reboot memory content. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 89 | }; |
salco | 6:86cf2afe3e52 | 90 | }; |
salco | 6:86cf2afe3e52 | 91 | |
salco | 6:86cf2afe3e52 | 92 | |
salco | 6:86cf2afe3e52 | 93 | |
salco | 6:86cf2afe3e52 | 94 | /** CTRL_REG6_A structure definition |
salco | 6:86cf2afe3e52 | 95 | */ |
salco | 6:86cf2afe3e52 | 96 | union Ctrl_Reg6_A_t |
salco | 6:86cf2afe3e52 | 97 | { |
salco | 6:86cf2afe3e52 | 98 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 99 | struct{ |
salco | 6:86cf2afe3e52 | 100 | uint8_t _Reserved:1; /**< Do not use.*/ |
salco | 6:86cf2afe3e52 | 101 | uint8_t H_LACTIVE:1; /**< Interrupt active high, low. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 102 | uint8_t __Reserved:1; /**< Do not use.*/ |
salco | 6:86cf2afe3e52 | 103 | uint8_t P2_ACT:1; /**< Active function status on PAD2. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 104 | uint8_t BOOT_I1:1; /**< Reboot memory content on PAD2. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 105 | uint8_t I2_INT2:1; /**< Interrupt 2 on PAD2. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 106 | uint8_t I2_INT1:1; /**< Interrupt 1 on PAD2. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 107 | uint8_t I2_CLICKen:1; /**< CLICK interrupt on PAD2. Default value 0.*/ |
salco | 6:86cf2afe3e52 | 108 | }; |
salco | 6:86cf2afe3e52 | 109 | }; |
salco | 6:86cf2afe3e52 | 110 | |
salco | 6:86cf2afe3e52 | 111 | /** Status_Reg_A structure definition |
salco | 6:86cf2afe3e52 | 112 | */ |
salco | 6:86cf2afe3e52 | 113 | union Status_Reg_A_t |
salco | 6:86cf2afe3e52 | 114 | { |
salco | 6:86cf2afe3e52 | 115 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 116 | struct{ |
salco | 5:48722ae56546 | 117 | |
salco | 6:86cf2afe3e52 | 118 | uint8_t XDA:1; /**< X axis new data available. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 119 | uint8_t YDA:1; /**< Y axis new data available. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 120 | uint8_t ZDA:1; /**< Z axis new data available. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 121 | uint8_t ZYXDA:1; /**< X, Y, and Z axis new data available. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 122 | uint8_t XOR:1; /**< X axis data overrun. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 123 | uint8_t YOR:1; /**< Y axis data overrun. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 124 | uint8_t ZOR:1; /**< Z axis data overrun. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 125 | uint8_t ZYXOR:1; /**< X, Y, and Z axis data overrun. Default value: 0.*/ |
salco | 6:86cf2afe3e52 | 126 | }; |
salco | 6:86cf2afe3e52 | 127 | }; |
salco | 6:86cf2afe3e52 | 128 | |
salco | 6:86cf2afe3e52 | 129 | /** OUT_XYZ structure. The value is expressed in 2’s complement |
salco | 6:86cf2afe3e52 | 130 | */ |
salco | 6:86cf2afe3e52 | 131 | union OUT_XYZ_t |
salco | 6:86cf2afe3e52 | 132 | { |
salco | 6:86cf2afe3e52 | 133 | int16_t value; /**< Value in signed integer.*/ |
salco | 6:86cf2afe3e52 | 134 | uint8_t byte[2]; |
salco | 6:86cf2afe3e52 | 135 | struct{ |
salco | 6:86cf2afe3e52 | 136 | uint8_t UT_L_A; /**< Low register.*/ |
salco | 6:86cf2afe3e52 | 137 | uint8_t UT_H_A; /**< High register.*/ |
salco | 6:86cf2afe3e52 | 138 | }; |
salco | 6:86cf2afe3e52 | 139 | }; |
salco | 6:86cf2afe3e52 | 140 | /** @} */ // end of regA |
salco | 5:48722ae56546 | 141 | |
salco | 6:86cf2afe3e52 | 142 | /** @defgroup regM Register |
salco | 6:86cf2afe3e52 | 143 | * Register for magnetometer |
salco | 6:86cf2afe3e52 | 144 | * @{ |
salco | 6:86cf2afe3e52 | 145 | */ |
salco | 6:86cf2afe3e52 | 146 | |
salco | 6:86cf2afe3e52 | 147 | /** SR_Reg_M structure definition |
salco | 6:86cf2afe3e52 | 148 | */ |
salco | 6:86cf2afe3e52 | 149 | union SR_Reg_M_t |
salco | 6:86cf2afe3e52 | 150 | { |
salco | 6:86cf2afe3e52 | 151 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 152 | struct{ |
salco | 6:86cf2afe3e52 | 153 | uint8_t DRDY:1; /**< Data output register lock.*/ |
salco | 6:86cf2afe3e52 | 154 | uint8_t LOCK:1; /**< Data ready bit.*/ |
salco | 6:86cf2afe3e52 | 155 | uint8_t _Reserved:8; /**< Do not use.*/ |
salco | 6:86cf2afe3e52 | 156 | }; |
salco | 6:86cf2afe3e52 | 157 | }; |
salco | 5:48722ae56546 | 158 | |
salco | 6:86cf2afe3e52 | 159 | /** CRA_REG_M structure definition |
salco | 6:86cf2afe3e52 | 160 | */ |
salco | 6:86cf2afe3e52 | 161 | union CRA_REG_M_t |
salco | 6:86cf2afe3e52 | 162 | { |
salco | 6:86cf2afe3e52 | 163 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 164 | struct{ |
salco | 6:86cf2afe3e52 | 165 | uint8_t _Reserved:2; /**< Do not use. Must be set to 0*/ |
salco | 6:86cf2afe3e52 | 166 | uint8_t DO:3; /**< Data output rate bits.*/ |
salco | 6:86cf2afe3e52 | 167 | uint8_t __Reserved:2; /**< Do not use. Must be set to 0*/ |
salco | 6:86cf2afe3e52 | 168 | uint8_t TEMP_EN:1; /**< Temperature sensor enable.*/ |
salco | 6:86cf2afe3e52 | 169 | }; |
salco | 6:86cf2afe3e52 | 170 | }; |
salco | 6:86cf2afe3e52 | 171 | |
salco | 6:86cf2afe3e52 | 172 | /** CRB_REG_M structure definition |
salco | 6:86cf2afe3e52 | 173 | */ |
salco | 6:86cf2afe3e52 | 174 | union CRB_REG_M_t |
salco | 6:86cf2afe3e52 | 175 | { |
salco | 6:86cf2afe3e52 | 176 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 177 | struct{ |
salco | 6:86cf2afe3e52 | 178 | uint8_t _Reserved:5; /**< Do not use. Must be set to ‘0*/ |
salco | 6:86cf2afe3e52 | 179 | uint8_t GN:3; /**< Gain configuration.*/ |
salco | 6:86cf2afe3e52 | 180 | }; |
salco | 6:86cf2afe3e52 | 181 | }; |
salco | 6:86cf2afe3e52 | 182 | |
salco | 6:86cf2afe3e52 | 183 | /** MR_REG_M structure definition |
salco | 6:86cf2afe3e52 | 184 | */ |
salco | 6:86cf2afe3e52 | 185 | union MR_REG_M_t |
salco | 6:86cf2afe3e52 | 186 | { |
salco | 6:86cf2afe3e52 | 187 | uint8_t byte; /**< Value in byte.*/ |
salco | 6:86cf2afe3e52 | 188 | struct{ |
salco | 6:86cf2afe3e52 | 189 | uint8_t MD:2; /**< Mode select bits. These bits select the operation mode of this device.*/ |
salco | 6:86cf2afe3e52 | 190 | uint8_t _Reserved:6; /**< Do not use. Must be set to 0*/ |
salco | 6:86cf2afe3e52 | 191 | |
salco | 6:86cf2afe3e52 | 192 | }; |
salco | 6:86cf2afe3e52 | 193 | }; |
salco | 6:86cf2afe3e52 | 194 | /** @} */ // end of regM |
salco | 5:48722ae56546 | 195 | |
salco | 5:48722ae56546 | 196 | #endif //__LSM303DLH_REGISTERDEF_H_ |