Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: CalibrateMagneto QuaternionMath
Fork of SML2 by
Magnetometer.h@46:fd5a62296b12, 2015-05-27 (annotated)
- Committer:
- pvaibhav
- Date:
- Wed May 27 13:01:43 2015 +0000
- Revision:
- 46:fd5a62296b12
- Parent:
- 34:01dec68de3ed
Code reformatted
Who changed what in which revision?
| User | Revision | Line number | New 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 | 14:d9fbb3ccd482 | 6 | #include "CalibrateMagneto.h" | 
| pvaibhav | 4:e759b8c756da | 7 | |
| pvaibhav | 12:1632d7391453 | 8 | class Magnetometer : public I2CPeripheral, public Sensor | 
| pvaibhav | 12:1632d7391453 | 9 | { | 
| pvaibhav | 4:e759b8c756da | 10 | public: | 
| pvaibhav | 4:e759b8c756da | 11 | Magnetometer(I2C &i2c); | 
| pvaibhav | 12:1632d7391453 | 12 | |
| pvaibhav | 11:d21275e60ebb | 13 | virtual bool powerOn(); | 
| pvaibhav | 11:d21275e60ebb | 14 | virtual void powerOff(); | 
| pvaibhav | 11:d21275e60ebb | 15 | virtual void start(); | 
| pvaibhav | 11:d21275e60ebb | 16 | virtual void stop(); | 
| pvaibhav | 11:d21275e60ebb | 17 | |
| pvaibhav | 11:d21275e60ebb | 18 | virtual Vector3 read(); | 
| pvaibhav | 12:1632d7391453 | 19 | |
| pvaibhav | 12:1632d7391453 | 20 | bool performSelfTest(); | 
| pvaibhav | 46:fd5a62296b12 | 21 | |
| pvaibhav | 34:01dec68de3ed | 22 | void getCalibration(Vector3 &mins, Vector3 &maxs); | 
| pvaibhav | 12:1632d7391453 | 23 | |
| pvaibhav | 11:d21275e60ebb | 24 | private: | 
| pvaibhav | 11:d21275e60ebb | 25 | // Calibration data | 
| pvaibhav | 11:d21275e60ebb | 26 | int8_t dig_x1; | 
| pvaibhav | 11:d21275e60ebb | 27 | int8_t dig_y1; | 
| pvaibhav | 11:d21275e60ebb | 28 | int8_t dig_x2; | 
| pvaibhav | 11:d21275e60ebb | 29 | int8_t dig_y2; | 
| pvaibhav | 11:d21275e60ebb | 30 | uint16_t dig_z1; | 
| pvaibhav | 11:d21275e60ebb | 31 | int16_t dig_z2; | 
| pvaibhav | 11:d21275e60ebb | 32 | int16_t dig_z3; | 
| pvaibhav | 11:d21275e60ebb | 33 | int16_t dig_z4; | 
| pvaibhav | 11:d21275e60ebb | 34 | uint8_t dig_xy1; | 
| pvaibhav | 11:d21275e60ebb | 35 | int8_t dig_xy2; | 
| pvaibhav | 11:d21275e60ebb | 36 | uint16_t dig_xyz1; | 
| pvaibhav | 12:1632d7391453 | 37 | |
| pvaibhav | 11:d21275e60ebb | 38 | // Hard iron cancellation data | 
| pvaibhav | 14:d9fbb3ccd482 | 39 | CalibrateMagneto calibrator; | 
| pvaibhav | 12:1632d7391453 | 40 | |
| pvaibhav | 11:d21275e60ebb | 41 | void readCalibrationData(); | 
| pvaibhav | 46:fd5a62296b12 | 42 | |
| pvaibhav | 32:d37447aec6b4 | 43 | InterruptIn int1; | 
| pvaibhav | 32:d37447aec6b4 | 44 | InterruptIn int2; | 
| pvaibhav | 4:e759b8c756da | 45 | }; | 
| pvaibhav | 4:e759b8c756da | 46 | |
| pvaibhav | 4:e759b8c756da | 47 | #endif//_H_MAGNETOMETER_H | 
