秋月販売のL3GD20使用8pinDIPジャイロセンサーモジュールのライブラリです。 FIFOを使って等間隔データの読み込みができます。 構造体のポインタをreadメソッドに渡すと値が入ります。 <今後の予定> ・レジスタへのアクセスの整理整頓 ・データレート/HighLowのフィルター/分解能の設定メソッド ・mbedピン変化割り込みによるデータ取得(おそらく関数ポインタを割り込み処理のメソッドに渡してもらう) ・読み取りデータにフィルターをかける。 ・データ取得の高速化
L3GD20_Resister.h
- Committer:
- lelect
- Date:
- 2014-04-03
- Revision:
- 0:a07d3c1c7d2d
File content as of revision 0:a07d3c1c7d2d:
#ifndef L3GD20_RESISTER_MAP #define L3GD20_RESISTER_MAP union CTRL_REG1 { int word; uint8_t byte; struct { unsigned Yen:1; unsigned Xen:1; unsigned Zen:1; unsigned PD:1; unsigned BW0:1; unsigned BW1:1; unsigned DR0:1; unsigned DR1:1; } b; struct { unsigned Enable:3; unsigned PD:1; unsigned BW:2; unsigned DR:2; } B; }; union CTRL_REG2 { int word; uint8_t byte; struct { unsigned HPCF0:1; unsigned HPCF1:1; unsigned HPCF2:1; unsigned HPCF3:1; unsigned HPM0:1; unsigned HPM1:1; unsigned :2; } b; struct { unsigned HPCF:4; unsigned HPM:2; unsigned none:2; } B; }; union CTRL_REG3 { int word; uint8_t byte; struct { unsigned I2_Empty:1; unsigned I2_ORun:1; unsigned I2_WTM:1; unsigned I2_DRDY:1; unsigned PP_OD:1; unsigned H_Lactive:1; unsigned I1_Boot:1; unsigned I1_Int1:1; } b; }; union CTRL_REG4 { int word; uint8_t byte; struct { unsigned SIM:1; unsigned none:2; unsigned nil:1; unsigned FS0:1; unsigned FS1:1; unsigned BLE:1; unsigned BDU:1; } b; struct { unsigned SIM:1; unsigned none:2; unsigned nil:1; unsigned FS:2; unsigned BLE:1; unsigned BDU:1; } B; }; union CTRL_REG5 { int word; uint8_t byte; struct { unsigned Out_Sel0:1; unsigned Out_Sel1:1; unsigned INT_Sel0:1; unsigned INT_Sel1:1; unsigned HPen:1; unsigned nil:1; unsigned FIFO_EN:1; unsigned BOOT:1; } b; struct { unsigned Out_Sel:2; unsigned INT_Sel:2; unsigned HPen:1; unsigned nil:1; unsigned FIFO_EN:1; unsigned BOOT:1; } B; }; union REF_DATACAP { int word; uint8_t byte; struct { unsigned Ref0:1; unsigned Ref1:1; unsigned Ref2:1; unsigned Ref3:1; unsigned Ref4:1; unsigned Ref5:1; unsigned Ref6:1; unsigned Ref7:1; } b; struct { unsigned Ref:8; } B; }; union OUT_TEMP { int word; uint8_t byte; struct { unsigned Temp0:1; unsigned Temp1:1; unsigned Temp2:1; unsigned Temp3:1; unsigned Temp4:1; unsigned Temp5:1; unsigned Temp6:1; unsigned Temp7:1; } b; struct { unsigned Temp:8; } B; }; union STATUS_REG { int word; uint8_t byte; struct { unsigned XDA:1; unsigned YDA:1; unsigned ZDA:1; unsigned ZYXDA:1; unsigned XOR:1; unsigned YOR:1; unsigned ZOR:1; unsigned XYZOR:1; } b; }; union FIFO_CTRL_REG { int word; uint8_t byte; struct { unsigned WTM0:1; unsigned WTM1:1; unsigned WTM2:1; unsigned WTM3:1; unsigned WTM4:1; unsigned FM0:1; unsigned FM1:1; unsigned FM2:1; } b; struct { unsigned WTM:5; unsigned FM:3; } B; }; union FIFO_SRC_REG { int word; uint8_t byte; struct { unsigned FSS0:1; unsigned FSS1:1; unsigned FSS2:1; unsigned FSS3:1; unsigned FSS4:1; unsigned EMPTY:1; unsigned OVR:1; unsigned WTM:1; } b; struct { unsigned FSS:5; unsigned EMPTY:1; unsigned OVR:1; unsigned WTM:1; } B; }; union INT1_CFG { int word; uint8_t byte; struct { unsigned XLIE:1; unsigned XHIE:1; unsigned YLIE:1; unsigned YHIE:1; unsigned ZLIE:1; unsigned ZHIE:1; unsigned LIR:1; unsigned ANDOR:1; } b; }; union INT1_TSH_XH { int word; uint8_t byte; struct { unsigned THSX8:1; unsigned THSX9:1; unsigned THSX10:1; unsigned THSX11:1; unsigned THSX12:1; unsigned THSX13:1; unsigned THSX14:1; unsigned nil:1; } b; struct { unsigned THSH:7; } B; }; union INT1_TSH_XL { int word; uint8_t byte; struct { unsigned THSX0:1; unsigned THSX1:1; unsigned THSX2:1; unsigned THSX3:1; unsigned THSX4:1; unsigned THSX5:1; unsigned THSX6:1; unsigned THSX7:1; } b; struct { unsigned THSL:7; } B; }; union INT1_TSH_YH { int word; uint8_t byte; struct { unsigned THSY8:1; unsigned THSY9:1; unsigned THSY10:1; unsigned THSY11:1; unsigned THSY12:1; unsigned THSY13:1; unsigned THSY14:1; unsigned nil:1; } b; struct { unsigned THSH:7; } B; }; union INT1_TSH_YL { int word; uint8_t byte; struct { unsigned THSY0:1; unsigned THSY1:1; unsigned THSY2:1; unsigned THSY3:1; unsigned THSY4:1; unsigned THSY5:1; unsigned THSY6:1; unsigned THSY7:1; } b; struct { unsigned THSL:7; } B; }; union INT1_TSH_ZH { int word; uint8_t byte; struct { unsigned THSZ8:1; unsigned THSZ9:1; unsigned THSZ10:1; unsigned THSZ11:1; unsigned THSZ12:1; unsigned THSZ13:1; unsigned THSZ14:1; unsigned nil:1; } b; struct { unsigned THSH:7; } B; }; union INT1_TSH_ZL { int word; uint8_t byte; struct { unsigned THSZ0:1; unsigned THSZ1:1; unsigned THSZ2:1; unsigned THSZ3:1; unsigned THSZ4:1; unsigned THSZ5:1; unsigned THSZ6:1; unsigned THSZ7:1; } b; struct { unsigned THSL:7; } B; }; union INT1_DURATION { int word; uint8_t byte; struct { unsigned D0:1; unsigned D1:1; unsigned D2:1; unsigned D3:1; unsigned D4:1; unsigned D5:1; unsigned D6:1; unsigned WAIT:1; } b; struct { unsigned D:6; unsigned WAIT:1; } B; }; /* #define L3GD20_READ 0x80 #define L3GD20_WHO_AM_I 0x0F #define L3GD20_CTRL_REG1 0x20 #define L3GD20_CTRL_REG2 0x21 #define L3GD20_CTRL_REG3 0x22 #define L3GD20_CTRL_REG4 0x23 #define L3GD20_CTRL_REG5 0x24 #define L3GD20_REFERENCE 0x25 #define L3GD20_OUT_TEMP 0x26 #define L3GD20_STATUS_REG 0x27 #define L3GD20_OUT_X_L 0x28 #define L3GD20_OUT_X_H 0x29 #define L3GD20_OUT_Y_L 0x2A #define L3GD20_OUT_Y_H 0x2B #define L3GD20_OUT_Z_L 0x2C #define L3GD20_OUT_Z_H 0x2D #define L3GD20_FIFO_CTRL_REG 0x2E #define L3GD20_FIFO_SRC_REG 0x2F #define L3GD20_INT1_CFG 0x30 #define L3GD20_INT1_SRC 0x31 #define L3GD20_INT1_THS_XH 0x32 #define L3GD20_INT1_THS_XL 0x33 #define L3GD20_INT1_THS_YH 0x34 #define L3GD20_INT1_THS_YL 0x35 #define L3GD20_INT1_THS_ZH 0x36 #define L3GD20_INT1_THS_ZL 0x37 #define L3GD20_INT1_DURATION 0x38 */ #endif