L3GD20 Library using FIFO and Interrupt
Fork of L3GD20_SPI by
Embed:
(wiki syntax)
Show/hide line numbers
L3GD20_Resister.h
00001 #ifndef L3GD20_RESISTER_MAP 00002 #define L3GD20_RESISTER_MAP 00003 typedef struct { 00004 int16_t X; 00005 int16_t Y; 00006 int16_t Z; 00007 float x; 00008 float y; 00009 float z; 00010 } anglerrates; 00011 00012 union CTRL_REG1 { 00013 int word; 00014 uint8_t byte; 00015 struct { 00016 unsigned Yen:1; 00017 unsigned Xen:1; 00018 unsigned Zen:1; 00019 unsigned PD:1; 00020 unsigned BW0:1; 00021 unsigned BW1:1; 00022 unsigned DR0:1; 00023 unsigned DR1:1; 00024 } b; 00025 struct { 00026 unsigned Enable:3; 00027 unsigned PD:1; 00028 unsigned BW:2; 00029 unsigned DR:2; 00030 } B; 00031 }; 00032 union CTRL_REG2 { 00033 int word; 00034 uint8_t byte; 00035 struct { 00036 unsigned HPCF0:1; 00037 unsigned HPCF1:1; 00038 unsigned HPCF2:1; 00039 unsigned HPCF3:1; 00040 unsigned HPM0:1; 00041 unsigned HPM1:1; 00042 unsigned :2; 00043 } b; 00044 struct { 00045 unsigned HPCF:4; 00046 unsigned HPM:2; 00047 unsigned none:2; 00048 } B; 00049 }; 00050 union CTRL_REG3 { 00051 int word; 00052 uint8_t byte; 00053 struct { 00054 unsigned I2_Empty:1; 00055 unsigned I2_ORun:1; 00056 unsigned I2_WTM:1; 00057 unsigned I2_DRDY:1; 00058 unsigned PP_OD:1; 00059 unsigned H_Lactive:1; 00060 unsigned I1_Boot:1; 00061 unsigned I1_Int1:1; 00062 } b; 00063 }; 00064 union CTRL_REG4 { 00065 int word; 00066 uint8_t byte; 00067 struct { 00068 unsigned SIM:1; 00069 unsigned none:2; 00070 unsigned nil:1; 00071 unsigned FS0:1; 00072 unsigned FS1:1; 00073 unsigned BLE:1; 00074 unsigned BDU:1; 00075 } b; 00076 struct { 00077 unsigned SIM:1; 00078 unsigned none:2; 00079 unsigned nil:1; 00080 unsigned FS:2; 00081 unsigned BLE:1; 00082 unsigned BDU:1; 00083 } B; 00084 }; 00085 union CTRL_REG5 { 00086 int word; 00087 uint8_t byte; 00088 struct { 00089 unsigned Out_Sel0:1; 00090 unsigned Out_Sel1:1; 00091 unsigned INT_Sel0:1; 00092 unsigned INT_Sel1:1; 00093 unsigned HPen:1; 00094 unsigned nil:1; 00095 unsigned FIFO_EN:1; 00096 unsigned BOOT:1; 00097 } b; 00098 struct { 00099 unsigned Out_Sel:2; 00100 unsigned INT_Sel:2; 00101 unsigned HPen:1; 00102 unsigned nil:1; 00103 unsigned FIFO_EN:1; 00104 unsigned BOOT:1; 00105 } B; 00106 }; 00107 union REF_DATACAP { 00108 int word; 00109 uint8_t byte; 00110 struct { 00111 unsigned Ref0:1; 00112 unsigned Ref1:1; 00113 unsigned Ref2:1; 00114 unsigned Ref3:1; 00115 unsigned Ref4:1; 00116 unsigned Ref5:1; 00117 unsigned Ref6:1; 00118 unsigned Ref7:1; 00119 } b; 00120 struct { 00121 unsigned Ref:8; 00122 } B; 00123 }; 00124 union OUT_TEMP { 00125 int word; 00126 uint8_t byte; 00127 struct { 00128 unsigned Temp0:1; 00129 unsigned Temp1:1; 00130 unsigned Temp2:1; 00131 unsigned Temp3:1; 00132 unsigned Temp4:1; 00133 unsigned Temp5:1; 00134 unsigned Temp6:1; 00135 unsigned Temp7:1; 00136 } b; 00137 struct { 00138 unsigned Temp:8; 00139 } B; 00140 }; 00141 union STATUS_REG { 00142 int word; 00143 uint8_t byte; 00144 struct { 00145 unsigned XDA:1; 00146 unsigned YDA:1; 00147 unsigned ZDA:1; 00148 unsigned ZYXDA:1; 00149 unsigned XOR:1; 00150 unsigned YOR:1; 00151 unsigned ZOR:1; 00152 unsigned XYZOR:1; 00153 } b; 00154 }; 00155 union FIFO_CTRL_REG { 00156 int word; 00157 uint8_t byte; 00158 struct { 00159 unsigned WTM0:1; 00160 unsigned WTM1:1; 00161 unsigned WTM2:1; 00162 unsigned WTM3:1; 00163 unsigned WTM4:1; 00164 unsigned FM0:1; 00165 unsigned FM1:1; 00166 unsigned FM2:1; 00167 } b; 00168 struct { 00169 unsigned WTM:5; 00170 unsigned FM:3; 00171 } B; 00172 }; 00173 union FIFO_SRC_REG { 00174 int word; 00175 uint8_t byte; 00176 struct { 00177 unsigned FSS0:1; 00178 unsigned FSS1:1; 00179 unsigned FSS2:1; 00180 unsigned FSS3:1; 00181 unsigned FSS4:1; 00182 unsigned EMPTY:1; 00183 unsigned OVR:1; 00184 unsigned WTM:1; 00185 } b; 00186 struct { 00187 unsigned FSS:5; 00188 unsigned EMPTY:1; 00189 unsigned OVR:1; 00190 unsigned WTM:1; 00191 } B; 00192 }; 00193 union INT1_CFG { 00194 int word; 00195 uint8_t byte; 00196 struct { 00197 unsigned XLIE:1; 00198 unsigned XHIE:1; 00199 unsigned YLIE:1; 00200 unsigned YHIE:1; 00201 unsigned ZLIE:1; 00202 unsigned ZHIE:1; 00203 unsigned LIR:1; 00204 unsigned ANDOR:1; 00205 } b; 00206 }; 00207 union INT1_TSH_XH { 00208 int word; 00209 uint8_t byte; 00210 struct { 00211 unsigned THSX8:1; 00212 unsigned THSX9:1; 00213 unsigned THSX10:1; 00214 unsigned THSX11:1; 00215 unsigned THSX12:1; 00216 unsigned THSX13:1; 00217 unsigned THSX14:1; 00218 unsigned nil:1; 00219 } b; 00220 struct { 00221 unsigned THSH:7; 00222 } B; 00223 }; 00224 union INT1_TSH_XL { 00225 int word; 00226 uint8_t byte; 00227 struct { 00228 unsigned THSX0:1; 00229 unsigned THSX1:1; 00230 unsigned THSX2:1; 00231 unsigned THSX3:1; 00232 unsigned THSX4:1; 00233 unsigned THSX5:1; 00234 unsigned THSX6:1; 00235 unsigned THSX7:1; 00236 } b; 00237 struct { 00238 unsigned THSL:7; 00239 } B; 00240 }; 00241 union INT1_TSH_YH { 00242 int word; 00243 uint8_t byte; 00244 struct { 00245 unsigned THSY8:1; 00246 unsigned THSY9:1; 00247 unsigned THSY10:1; 00248 unsigned THSY11:1; 00249 unsigned THSY12:1; 00250 unsigned THSY13:1; 00251 unsigned THSY14:1; 00252 unsigned nil:1; 00253 } b; 00254 struct { 00255 unsigned THSH:7; 00256 } B; 00257 }; 00258 union INT1_TSH_YL { 00259 int word; 00260 uint8_t byte; 00261 struct { 00262 unsigned THSY0:1; 00263 unsigned THSY1:1; 00264 unsigned THSY2:1; 00265 unsigned THSY3:1; 00266 unsigned THSY4:1; 00267 unsigned THSY5:1; 00268 unsigned THSY6:1; 00269 unsigned THSY7:1; 00270 } b; 00271 struct { 00272 unsigned THSL:7; 00273 } B; 00274 }; 00275 union INT1_TSH_ZH { 00276 int word; 00277 uint8_t byte; 00278 struct { 00279 unsigned THSZ8:1; 00280 unsigned THSZ9:1; 00281 unsigned THSZ10:1; 00282 unsigned THSZ11:1; 00283 unsigned THSZ12:1; 00284 unsigned THSZ13:1; 00285 unsigned THSZ14:1; 00286 unsigned nil:1; 00287 } b; 00288 struct { 00289 unsigned THSH:7; 00290 } B; 00291 }; 00292 union INT1_TSH_ZL { 00293 int word; 00294 uint8_t byte; 00295 struct { 00296 unsigned THSZ0:1; 00297 unsigned THSZ1:1; 00298 unsigned THSZ2:1; 00299 unsigned THSZ3:1; 00300 unsigned THSZ4:1; 00301 unsigned THSZ5:1; 00302 unsigned THSZ6:1; 00303 unsigned THSZ7:1; 00304 } b; 00305 struct { 00306 unsigned THSL:7; 00307 } B; 00308 }; 00309 union INT1_DURATION { 00310 int word; 00311 uint8_t byte; 00312 struct { 00313 unsigned D0:1; 00314 unsigned D1:1; 00315 unsigned D2:1; 00316 unsigned D3:1; 00317 unsigned D4:1; 00318 unsigned D5:1; 00319 unsigned D6:1; 00320 unsigned WAIT:1; 00321 } b; 00322 struct { 00323 unsigned D:6; 00324 unsigned WAIT:1; 00325 } B; 00326 }; 00327 /* 00328 #define L3GD20_READ 0x80 00329 #define L3GD20_WHO_AM_I 0x0F 00330 #define L3GD20_CTRL_REG1 0x20 00331 #define L3GD20_CTRL_REG2 0x21 00332 #define L3GD20_CTRL_REG3 0x22 00333 #define L3GD20_CTRL_REG4 0x23 00334 #define L3GD20_CTRL_REG5 0x24 00335 #define L3GD20_REFERENCE 0x25 00336 #define L3GD20_OUT_TEMP 0x26 00337 #define L3GD20_STATUS_REG 0x27 00338 #define L3GD20_OUT_X_L 0x28 00339 #define L3GD20_OUT_X_H 0x29 00340 #define L3GD20_OUT_Y_L 0x2A 00341 #define L3GD20_OUT_Y_H 0x2B 00342 #define L3GD20_OUT_Z_L 0x2C 00343 #define L3GD20_OUT_Z_H 0x2D 00344 #define L3GD20_FIFO_CTRL_REG 0x2E 00345 #define L3GD20_FIFO_SRC_REG 0x2F 00346 #define L3GD20_INT1_CFG 0x30 00347 #define L3GD20_INT1_SRC 0x31 00348 #define L3GD20_INT1_THS_XH 0x32 00349 #define L3GD20_INT1_THS_XL 0x33 00350 #define L3GD20_INT1_THS_YH 0x34 00351 #define L3GD20_INT1_THS_YL 0x35 00352 #define L3GD20_INT1_THS_ZH 0x36 00353 #define L3GD20_INT1_THS_ZL 0x37 00354 #define L3GD20_INT1_DURATION 0x38 00355 */ 00356 00357 #endif
Generated on Wed Jul 13 2022 09:18:54 by 1.7.2