MAG3110 Three-Axis, Digital Magnetmeter

Dependents:   test_MAG3110 testSensor

Committer:
Rhyme
Date:
Fri Dec 25 07:49:21 2015 +0000
Revision:
0:f9e4f54ab660
First commit for MSS/MSU type

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:f9e4f54ab660 1 /**
Rhyme 0:f9e4f54ab660 2 * Xtrinsic MAG3110 Three-Axis,
Rhyme 0:f9e4f54ab660 3 * Digital Magnetometer
Rhyme 0:f9e4f54ab660 4 */
Rhyme 0:f9e4f54ab660 5
Rhyme 0:f9e4f54ab660 6 #ifndef _MAG3110_H_
Rhyme 0:f9e4f54ab660 7 #define _MAG3110_H_
Rhyme 0:f9e4f54ab660 8
Rhyme 0:f9e4f54ab660 9 #include "mbed.h"
Rhyme 0:f9e4f54ab660 10
Rhyme 0:f9e4f54ab660 11 /**
Rhyme 0:f9e4f54ab660 12 *
Rhyme 0:f9e4f54ab660 13 */
Rhyme 0:f9e4f54ab660 14
Rhyme 0:f9e4f54ab660 15 class MAG3110
Rhyme 0:f9e4f54ab660 16 {
Rhyme 0:f9e4f54ab660 17 public:
Rhyme 0:f9e4f54ab660 18 /**
Rhyme 0:f9e4f54ab660 19 * MAG3110 constructor
Rhyme 0:f9e4f54ab660 20 *
Rhyme 0:f9e4f54ab660 21 * @param sda SDA pin
Rhyme 0:f9e4f54ab660 22 * @param scl SCL pin
Rhyme 0:f9e4f54ab660 23 * @param addr 7bit address of the I2C peripheral
Rhyme 0:f9e4f54ab660 24 */
Rhyme 0:f9e4f54ab660 25 MAG3110(PinName sda, PinName scl, int addr) ;
Rhyme 0:f9e4f54ab660 26
Rhyme 0:f9e4f54ab660 27 ~MAG3110() ;
Rhyme 0:f9e4f54ab660 28
Rhyme 0:f9e4f54ab660 29 /*
Rhyme 0:f9e4f54ab660 30 * some member functions here (yet to be written)
Rhyme 0:f9e4f54ab660 31 */
Rhyme 0:f9e4f54ab660 32 void standby() ;
Rhyme 0:f9e4f54ab660 33 void activate() ;
Rhyme 0:f9e4f54ab660 34 uint8_t getStatus() ;
Rhyme 0:f9e4f54ab660 35 int16_t getX() ;
Rhyme 0:f9e4f54ab660 36 int16_t getY() ;
Rhyme 0:f9e4f54ab660 37 int16_t getZ() ;
Rhyme 0:f9e4f54ab660 38 uint8_t getID() ;
Rhyme 0:f9e4f54ab660 39 int16_t getOffsetX() ;
Rhyme 0:f9e4f54ab660 40 int16_t getOffsetY() ;
Rhyme 0:f9e4f54ab660 41 int16_t getOffsetZ() ;
Rhyme 0:f9e4f54ab660 42 void setOffsetX(int16_t newOffset) ;
Rhyme 0:f9e4f54ab660 43 void setOffsetY(int16_t newOffset) ;
Rhyme 0:f9e4f54ab660 44 void setOffsetZ(int16_t newOffset) ;
Rhyme 0:f9e4f54ab660 45 uint8_t getCtrlReg1() ;
Rhyme 0:f9e4f54ab660 46 uint8_t getCtrlReg2() ;
Rhyme 0:f9e4f54ab660 47 void setCtrlReg1(uint8_t newValue) ;
Rhyme 0:f9e4f54ab660 48 void setCtrlReg2(uint8_t newValue) ;
Rhyme 0:f9e4f54ab660 49 uint8_t getTemp() ;
Rhyme 0:f9e4f54ab660 50
Rhyme 0:f9e4f54ab660 51 private:
Rhyme 0:f9e4f54ab660 52 I2C m_i2c;
Rhyme 0:f9e4f54ab660 53 int m_addr;
Rhyme 0:f9e4f54ab660 54 void readRegs(int addr, uint8_t *data, int len) ;
Rhyme 0:f9e4f54ab660 55 void writeRegs(uint8_t *data, int len) ;
Rhyme 0:f9e4f54ab660 56 } ;
Rhyme 0:f9e4f54ab660 57 #endif /* _MAG3110_H_ */