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@17:e096e85f6c36, 2012-10-31 (annotated)
- Committer:
- maetugr
- Date:
- Wed Oct 31 16:53:01 2012 +0000
- Revision:
- 17:e096e85f6c36
- Parent:
- 14:cf260677ecde
- Child:
- 18:c8c09a3913ba
alle Sensoren mit i2c auf I2C_Sensor umgestellt (nicht getestet), noch keine calibration save per I2C_Sensor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maetugr | 17:e096e85f6c36 | 1 | // based on http://mbed.org/users/BlazeX/code/HMC5883/ |
maetugr | 17:e096e85f6c36 | 2 | |
maetugr | 11:9bf69bc6df45 | 3 | #ifndef HMC5883_H |
maetugr | 11:9bf69bc6df45 | 4 | #define HMC5883_H |
maetugr | 11:9bf69bc6df45 | 5 | |
maetugr | 17:e096e85f6c36 | 6 | #include "mbed.h" |
maetugr | 17:e096e85f6c36 | 7 | #include "I2C_Sensor.h" |
maetugr | 17:e096e85f6c36 | 8 | |
maetugr | 11:9bf69bc6df45 | 9 | #define HMC5883_CONF_REG_A 0x00 |
maetugr | 11:9bf69bc6df45 | 10 | #define HMC5883_CONF_REG_B 0x01 |
maetugr | 11:9bf69bc6df45 | 11 | #define HMC5883_MODE_REG 0x02 |
maetugr | 11:9bf69bc6df45 | 12 | #define HMC5883_DATA_OUT_X_MSB 0x03 |
maetugr | 11:9bf69bc6df45 | 13 | |
maetugr | 11:9bf69bc6df45 | 14 | // I2C addresses |
maetugr | 17:e096e85f6c36 | 15 | #define HMC5883_I2C_ADDRESS 0x1E |
maetugr | 11:9bf69bc6df45 | 16 | |
maetugr | 17:e096e85f6c36 | 17 | class HMC5883 : public I2C_Sensor |
maetugr | 11:9bf69bc6df45 | 18 | { |
maetugr | 11:9bf69bc6df45 | 19 | public: |
maetugr | 11:9bf69bc6df45 | 20 | HMC5883(PinName sda, PinName scl); |
maetugr | 11:9bf69bc6df45 | 21 | |
maetugr | 11:9bf69bc6df45 | 22 | float data[3]; |
maetugr | 11:9bf69bc6df45 | 23 | void read(); |
maetugr | 12:67a06c9b69d5 | 24 | void calibrate(int s); |
maetugr | 12:67a06c9b69d5 | 25 | float get_angle(); |
maetugr | 12:67a06c9b69d5 | 26 | |
maetugr | 12:67a06c9b69d5 | 27 | private: |
maetugr | 17:e096e85f6c36 | 28 | // raw data and function to get it |
maetugr | 12:67a06c9b69d5 | 29 | int raw[3]; |
maetugr | 12:67a06c9b69d5 | 30 | void readraw(); |
maetugr | 12:67a06c9b69d5 | 31 | |
maetugr | 14:cf260677ecde | 32 | // calibration parameters and their saving |
maetugr | 14:cf260677ecde | 33 | int Min[3]; |
maetugr | 14:cf260677ecde | 34 | int Max[3]; |
maetugr | 14:cf260677ecde | 35 | float scale[3]; |
maetugr | 14:cf260677ecde | 36 | float offset[3]; |
maetugr | 14:cf260677ecde | 37 | LocalFileSystem local; |
maetugr | 11:9bf69bc6df45 | 38 | }; |
maetugr | 11:9bf69bc6df45 | 39 | |
maetugr | 11:9bf69bc6df45 | 40 | #endif |