My fully self designed first stable working Quadrocopter Software.

Dependencies:   mbed

Dependents:   fluy343

/media/uploads/maetugr/dsc09031.jpg

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?

UserRevisionLine numberNew 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