Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Committer:
pvaibhav
Date:
Thu Mar 12 10:16:01 2015 +0000
Revision:
11:d21275e60ebb
Parent:
4:e759b8c756da
Child:
12:1632d7391453
Magnetometer driver implemented including hall-compensation. Reading registers for all sensors uses big-endian sequential read.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pvaibhav 4:e759b8c756da 1 #ifndef _H_MAGNETOMETER_H
pvaibhav 4:e759b8c756da 2 #define _H_MAGNETOMETER_H
pvaibhav 4:e759b8c756da 3
pvaibhav 4:e759b8c756da 4 #include "I2CPeripheral.h"
pvaibhav 11:d21275e60ebb 5 #include "Sensor.h"
pvaibhav 4:e759b8c756da 6
pvaibhav 11:d21275e60ebb 7 class Magnetometer : public I2CPeripheral, public Sensor {
pvaibhav 4:e759b8c756da 8 public:
pvaibhav 4:e759b8c756da 9 Magnetometer(I2C &i2c);
pvaibhav 11:d21275e60ebb 10
pvaibhav 11:d21275e60ebb 11 virtual bool powerOn();
pvaibhav 11:d21275e60ebb 12 virtual void powerOff();
pvaibhav 11:d21275e60ebb 13 virtual void start();
pvaibhav 11:d21275e60ebb 14 virtual void stop();
pvaibhav 11:d21275e60ebb 15
pvaibhav 11:d21275e60ebb 16 virtual Vector3 read();
pvaibhav 11:d21275e60ebb 17
pvaibhav 11:d21275e60ebb 18 private:
pvaibhav 11:d21275e60ebb 19 // Calibration data
pvaibhav 11:d21275e60ebb 20 int8_t dig_x1;
pvaibhav 11:d21275e60ebb 21 int8_t dig_y1;
pvaibhav 11:d21275e60ebb 22 int8_t dig_x2;
pvaibhav 11:d21275e60ebb 23 int8_t dig_y2;
pvaibhav 11:d21275e60ebb 24 uint16_t dig_z1;
pvaibhav 11:d21275e60ebb 25 int16_t dig_z2;
pvaibhav 11:d21275e60ebb 26 int16_t dig_z3;
pvaibhav 11:d21275e60ebb 27 int16_t dig_z4;
pvaibhav 11:d21275e60ebb 28 uint8_t dig_xy1;
pvaibhav 11:d21275e60ebb 29 int8_t dig_xy2;
pvaibhav 11:d21275e60ebb 30 uint16_t dig_xyz1;
pvaibhav 11:d21275e60ebb 31
pvaibhav 11:d21275e60ebb 32 // Hard iron cancellation data
pvaibhav 11:d21275e60ebb 33 Vector3 sum;
pvaibhav 11:d21275e60ebb 34 Vector3 hardIron;
pvaibhav 11:d21275e60ebb 35 size_t numSamples;
pvaibhav 11:d21275e60ebb 36
pvaibhav 11:d21275e60ebb 37 void readCalibrationData();
pvaibhav 4:e759b8c756da 38 };
pvaibhav 4:e759b8c756da 39
pvaibhav 4:e759b8c756da 40 #endif//_H_MAGNETOMETER_H