MAG3110 Three-Axis, Digital Magnetmeter

Dependents:   test_MAG3110 testSensor

Revision:
0:f9e4f54ab660
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MAG3110.h	Fri Dec 25 07:49:21 2015 +0000
@@ -0,0 +1,57 @@
+/**
+ * Xtrinsic MAG3110 Three-Axis,
+ * Digital Magnetometer
+ */
+
+#ifndef _MAG3110_H_
+#define _MAG3110_H_
+
+#include "mbed.h"
+
+/**
+ *
+ */
+
+class MAG3110
+{
+public:
+ /**
+ * MAG3110 constructor
+ *
+ * @param sda SDA pin
+ * @param scl SCL pin
+ * @param addr 7bit address of the I2C peripheral
+ */
+ MAG3110(PinName sda, PinName scl, int addr) ;
+ 
+ ~MAG3110() ;
+
+ /*
+  * some member functions here (yet to be written)
+  */
+ void    standby() ;
+ void    activate() ;
+ uint8_t getStatus() ;
+ int16_t getX() ;
+ int16_t getY() ;
+ int16_t getZ() ;
+ uint8_t getID() ;
+ int16_t getOffsetX() ;
+ int16_t getOffsetY() ;
+ int16_t getOffsetZ() ;
+ void    setOffsetX(int16_t newOffset) ;
+ void    setOffsetY(int16_t newOffset) ;
+ void    setOffsetZ(int16_t newOffset) ;
+ uint8_t getCtrlReg1() ;
+ uint8_t getCtrlReg2() ;
+ void    setCtrlReg1(uint8_t newValue) ;
+ void    setCtrlReg2(uint8_t newValue) ;
+ uint8_t  getTemp() ;
+
+private:
+  I2C m_i2c;
+  int m_addr;
+  void readRegs(int addr, uint8_t *data, int len) ;
+  void writeRegs(uint8_t *data, int len) ;
+} ;
+#endif /* _MAG3110_H_ */
\ No newline at end of file