NOT FINISHED YET!!! My first try to get a self built fully working Quadrocopter based on an mbed, a self built frame and some other more or less cheap parts.
Sensors/Comp/HMC5883.h@40:2ca410923691, 2014-02-14 (annotated)
- Committer:
- maetugr
- Date:
- Fri Feb 14 14:17:32 2014 +0000
- Revision:
- 40:2ca410923691
- Parent:
- 34:3aa1cbcde59d
now with MPU6050 before taking it too FlyBed2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maetugr | 34:3aa1cbcde59d | 1 | // based on http://mbed.org/users/BlazeX/code/HMC5883/ |
maetugr | 34:3aa1cbcde59d | 2 | |
maetugr | 34:3aa1cbcde59d | 3 | #ifndef HMC5883_H |
maetugr | 34:3aa1cbcde59d | 4 | #define HMC5883_H |
maetugr | 34:3aa1cbcde59d | 5 | |
maetugr | 34:3aa1cbcde59d | 6 | #include "mbed.h" |
maetugr | 34:3aa1cbcde59d | 7 | #include "I2C_Sensor.h" |
maetugr | 34:3aa1cbcde59d | 8 | |
maetugr | 34:3aa1cbcde59d | 9 | #define HMC5883_I2C_ADDRESS 0x3C |
maetugr | 34:3aa1cbcde59d | 10 | |
maetugr | 34:3aa1cbcde59d | 11 | #define HMC5883_CONF_REG_A 0x00 |
maetugr | 34:3aa1cbcde59d | 12 | #define HMC5883_CONF_REG_B 0x01 |
maetugr | 34:3aa1cbcde59d | 13 | #define HMC5883_MODE_REG 0x02 |
maetugr | 34:3aa1cbcde59d | 14 | #define HMC5883_DATA_OUT_X_MSB 0x03 |
maetugr | 34:3aa1cbcde59d | 15 | |
maetugr | 34:3aa1cbcde59d | 16 | class HMC5883 : public I2C_Sensor |
maetugr | 34:3aa1cbcde59d | 17 | { |
maetugr | 34:3aa1cbcde59d | 18 | public: |
maetugr | 34:3aa1cbcde59d | 19 | HMC5883(PinName sda, PinName scl); |
maetugr | 40:2ca410923691 | 20 | float data[3]; // where the measured data is saved |
maetugr | 40:2ca410923691 | 21 | void read(); // read all axis from register to array data |
maetugr | 34:3aa1cbcde59d | 22 | void calibrate(int s); |
maetugr | 34:3aa1cbcde59d | 23 | float get_angle(); |
maetugr | 34:3aa1cbcde59d | 24 | |
maetugr | 34:3aa1cbcde59d | 25 | private: |
maetugr | 40:2ca410923691 | 26 | int raw[3]; |
maetugr | 40:2ca410923691 | 27 | void readraw(); // function to get raw data |
maetugr | 34:3aa1cbcde59d | 28 | |
maetugr | 34:3aa1cbcde59d | 29 | float scale[3]; // calibration parameters |
maetugr | 34:3aa1cbcde59d | 30 | float offset[3]; |
maetugr | 34:3aa1cbcde59d | 31 | }; |
maetugr | 34:3aa1cbcde59d | 32 | |
maetugr | 34:3aa1cbcde59d | 33 | #endif |