L3GD20 Library using FIFO and Interrupt

Fork of L3GD20_SPI by Tatsuki Fukuda

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers L3GD20_Resister.h Source File

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