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/AK9750.h	Thu Jan 26 03:08:15 2017 +0000
@@ -0,0 +1,41 @@
+#ifndef AK9750_H
+#define AK9750_H
+
+#include "mbed.h"
+ 
+
+#define AK9750_SLAVE_ADDR 0xC8 // 1100_1000b
+
+
+class AK9750 {    
+public:
+    struct Data {
+        float ir1;  // pA
+        float ir2;
+        float ir3;
+        float ir4;
+        float tmp;  // 'C
+    };
+
+    static const uint8_t DEVICE_ID = 0x13;
+
+    AK9750(I2C &i2c, PinName int1 = NC);
+    
+    void ConfigDevice();
+    void GetDeviceID(uint8_t *id);
+    void GetData(Data *data);
+    int32_t GetTriggeredAreaNum(Data *data);
+    
+private:
+    I2C &_i2c;
+    InterruptIn _int1;
+    
+    float ConvertAdcToIr(int16_t adc);
+    float ConvertAdcToTemperature(int16_t adc);
+
+    void RegWrite(char reg, char  val);
+    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