Matthias Grob
/
FlyBed2
My fully self designed first stable working Quadrocopter Software.
IMU/Sensors/Comp/HMC5883.h@0:12950aa67f2a, 2013-09-02 (annotated)
- Committer:
- maetugr
- Date:
- Mon Sep 02 15:04:22 2013 +0000
- Revision:
- 0:12950aa67f2a
- Child:
- 2:03e5f7ab473f
first commit of new version (only one axis for test until now); note: no more Ticker! (made problems because of interrupts)
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 | 0:12950aa67f2a | 21 | virtual 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 | 0:12950aa67f2a | 24 | |
maetugr | 0:12950aa67f2a | 25 | private: |
maetugr | 0:12950aa67f2a | 26 | virtual void readraw(); // function to get raw data |
maetugr | 0:12950aa67f2a | 27 | |
maetugr | 0:12950aa67f2a | 28 | float offset[3]; // calibration offset |
maetugr | 0:12950aa67f2a | 29 | }; |
maetugr | 0:12950aa67f2a | 30 | |
maetugr | 0:12950aa67f2a | 31 | #endif |