
My fully self designed first stable working Quadrocopter Software.
IMU/Sensors/Comp/HMC5883.h@10:14390c90c3f5, 2015-08-31 (annotated)
- Committer:
- maetugr
- Date:
- Mon Aug 31 20:20:50 2015 +0000
- Revision:
- 10:14390c90c3f5
- Parent:
- 4:b0a60b0b24a9
before changing to MPU9250
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maetugr | 0:12950aa67f2a | 1 | // based on http://mbed.org/users/BlazeX/code/HMC5883/ |
maetugr | 0:12950aa67f2a | 2 | |
maetugr | 0:12950aa67f2a | 3 | #ifndef HMC5883_H |
maetugr | 0:12950aa67f2a | 4 | #define HMC5883_H |
maetugr | 0:12950aa67f2a | 5 | |
maetugr | 0:12950aa67f2a | 6 | #include "mbed.h" |
maetugr | 0:12950aa67f2a | 7 | #include "I2C_Sensor.h" |
maetugr | 0:12950aa67f2a | 8 | |
maetugr | 0:12950aa67f2a | 9 | #define HMC5883_I2C_ADDRESS 0x3C |
maetugr | 0:12950aa67f2a | 10 | |
maetugr | 0:12950aa67f2a | 11 | #define HMC5883_CONF_REG_A 0x00 |
maetugr | 0:12950aa67f2a | 12 | #define HMC5883_CONF_REG_B 0x01 |
maetugr | 0:12950aa67f2a | 13 | #define HMC5883_MODE_REG 0x02 |
maetugr | 0:12950aa67f2a | 14 | #define HMC5883_DATA_OUT_X_MSB 0x03 |
maetugr | 0:12950aa67f2a | 15 | |
maetugr | 0:12950aa67f2a | 16 | class HMC5883 : public I2C_Sensor |
maetugr | 0:12950aa67f2a | 17 | { |
maetugr | 0:12950aa67f2a | 18 | public: |
maetugr | 0:12950aa67f2a | 19 | HMC5883(PinName sda, PinName scl); |
maetugr | 0:12950aa67f2a | 20 | |
maetugr | 4:b0a60b0b24a9 | 21 | void read(); // read all axis from register to array data |
maetugr | 0:12950aa67f2a | 22 | void calibrate(int s); |
maetugr | 0:12950aa67f2a | 23 | float get_angle(); |
maetugr | 2:03e5f7ab473f | 24 | |
maetugr | 2:03e5f7ab473f | 25 | float offset[3]; // calibration offset |
maetugr | 0:12950aa67f2a | 26 | |
maetugr | 0:12950aa67f2a | 27 | private: |
maetugr | 4:b0a60b0b24a9 | 28 | void readraw(); // function to get raw data |
maetugr | 0:12950aa67f2a | 29 | }; |
maetugr | 0:12950aa67f2a | 30 | |
maetugr | 0:12950aa67f2a | 31 | #endif |