Basic functions is OK. Lack interrupts function.

Dependents:   Mt05_MtSense07

Revision:
0:4f87d5af61b1
Child:
1:4eefcf1d7351
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AK09970.h	Thu Jan 26 03:08:15 2017 +0000
@@ -0,0 +1,38 @@
+#ifndef AK09970_H
+#define AK09970_H
+
+#include "mbed.h"
+ 
+
+#define AK09970_SLAVE_ADDR 0x18 // 0001_1000b
+
+
+class AK09970 {    
+public:
+    struct Data {
+        float x;    // uT/LSB
+        float y;
+        float z;
+    };
+
+    static const uint8_t DEVICE_ID = 0xC0;
+
+    AK09970(I2C &i2c, PinName int1 = NC);
+    
+    void ConfigDevice();
+    void GetDeviceID(uint8_t *id);
+    void GetData(Data *data);
+    
+private:
+    I2C &_i2c;
+    InterruptIn _int1;
+
+    float ConvertAdcToMagnetic(int16_t adc);
+
+    void RegWrite(char reg, char val);
+    void RegWrite(char reg, char *val, int len);
+    void RegRead (char reg, char *val, int len);
+    void RegReadModifyWrite(char reg, char clr_mask, char set_mask);
+};
+
+#endif
\ No newline at end of file