ITG3200 library with multiple configurable full-scale ranges. Based on the Sensor_test by Bo Carøe.
Fork of ITG3200 by
ITG3200.h@2:044664f2cc01, 2012-08-15 (annotated)
- Committer:
- cdonate
- Date:
- Wed Aug 15 22:17:36 2012 +0000
- Revision:
- 2:044664f2cc01
- Parent:
- 1:1208ffc3ace9
No change
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cdonate | 2:044664f2cc01 | 1 | #pragma once |
cdonate | 2:044664f2cc01 | 2 | |
cdonate | 2:044664f2cc01 | 3 | //I2C address is either 0x68 or 0x69 , depending on pin AD0, check block diagram for your device |
cdonate | 2:044664f2cc01 | 4 | #define ITG3200_ADRESS 0x69 |
cdonate | 2:044664f2cc01 | 5 | |
cdonate | 2:044664f2cc01 | 6 | //Convert gyro raw data to radians per second, 1 degree/s = 0,017453293 rad/s. |
cdonate | 2:044664f2cc01 | 7 | //The value is 0,017453293/LSB (+- 250 degrees/s) |
cdonate | 2:044664f2cc01 | 8 | |
cdonate | 2:044664f2cc01 | 9 | //const float fConvRPS= 2.6646248854961832061068702290076e-4; //For +- 500 degrees/s |
cdonate | 2:044664f2cc01 | 10 | //const float fConvRPS= 1.2141420883e-3; //For +- 2000 degrees/s |
cdonate | 2:044664f2cc01 | 11 | |
cdonate | 2:044664f2cc01 | 12 | const float fConvRPS= 1.3323124427480916030534351145038e-4; //For +- 250 degrees/s |
cdonate | 2:044664f2cc01 | 13 | |
cdonate | 2:044664f2cc01 | 14 | class ITG3200 { |
cdonate | 2:044664f2cc01 | 15 | protected: |
cdonate | 2:044664f2cc01 | 16 | I2C & I2CBus; |
cdonate | 2:044664f2cc01 | 17 | Timer & GlobalTime; |
cdonate | 2:044664f2cc01 | 18 | |
cdonate | 2:044664f2cc01 | 19 | public: |
cdonate | 2:044664f2cc01 | 20 | //Offset |
cdonate | 2:044664f2cc01 | 21 | float Offset[3]; |
cdonate | 2:044664f2cc01 | 22 | |
cdonate | 2:044664f2cc01 | 23 | //Rotational speed around all three axes |
cdonate | 2:044664f2cc01 | 24 | short RawRate[3]; //Raw data |
cdonate | 2:044664f2cc01 | 25 | float Rate[3]; //Calibrated rotation rate in radians per second |
cdonate | 2:044664f2cc01 | 26 | |
cdonate | 2:044664f2cc01 | 27 | |
cdonate | 2:044664f2cc01 | 28 | //Initialization |
cdonate | 2:044664f2cc01 | 29 | ITG3200(I2C & I2CBus_, Timer & GlobalTime_); |
cdonate | 2:044664f2cc01 | 30 | void Init(); |
cdonate | 2:044664f2cc01 | 31 | |
cdonate | 2:044664f2cc01 | 32 | |
cdonate | 2:044664f2cc01 | 33 | private: |
cdonate | 2:044664f2cc01 | 34 | //Read raw data |
cdonate | 2:044664f2cc01 | 35 | void ReadRawData(); |
cdonate | 2:044664f2cc01 | 36 | |
cdonate | 2:044664f2cc01 | 37 | public: |
cdonate | 2:044664f2cc01 | 38 | //Update Method |
cdonate | 2:044664f2cc01 | 39 | void Update(); |
cdonate | 2:044664f2cc01 | 40 | char getInfo(void); |
cdonate | 2:044664f2cc01 | 41 | |
cdonate | 2:044664f2cc01 | 42 | //Calibration |
cdonate | 2:044664f2cc01 | 43 | void Calibrate(int ms); |
cdonate | 2:044664f2cc01 | 44 | }; |