Lab4

Dependencies:   mbed HEPTA_EPS

Revision:
25:efb6bdda7c02
Parent:
24:cfcbac775459
Child:
26:993102540f3d
--- a/main.cpp	Tue Aug 27 01:01:24 2019 +0000
+++ b/main.cpp	Tue Aug 27 01:09:20 2019 +0000
@@ -1,23 +1,54 @@
 #include "mbed.h"
 #include"HEPTA_EPS.h"
-#include"HEPTA_CDH.h"
-#include"HEPTA_SENSOR.h"
-#include"HEPTA_COM.h"
 
 Serial pc(USBTX,USBRX);
 HEPTA_EPS eps(p16,p26);
-HEPTA_CDH cdh(p5, p6, p7, p8, "sd");
-HEPTA_SENSOR sensor(p17, 
-                    p28,p27,0xD0,0x18,
-                    p13, p14,p25,p24);
-HEPTA_COM com(p9,p10);
+I2C i2c(p28, p27);
 
-DigitalOut myled(LED1);
-
+const int addr_accel_gyro = 0xD0;
+char cmd[2];
+const int addr_compus = 0x18;
+short int mxl,mxh,myl,myh,mzl,mzh,st2;
 int main()
 {
-    myled = 1;
-    wait(0.5);
-    myled = 0;
-    wait(0.5);
+    i2c.frequency(100000);
+    cmd[0]=0x6B;
+    cmd[1]=0x00;
+    i2c.write(addr_accel_gyro,cmd,2);
+    cmd[0] = 0x37;
+    cmd[1] = 0x02;
+    i2c.write(addr_accel_gyro,cmd,2);
+    i2c.stop();
+    while(1) {
+        i2c.start();
+        i2c.write(addr_compus);
+        i2c.write(0x0A);
+        i2c.write(0x12);
+        i2c.stop();
+        i2c.start();
+        i2c.write(addr_compus);
+        i2c.write(0x03);
+        i2c.start();
+        i2c.write(addr_compus|0x01);
+        mxl = i2c.read(0);
+        i2c.stop();
+        i2c.start();
+        i2c.write(addr_compus);
+        i2c.write(0x04);
+        i2c.start();
+        i2c.write(addr_compus|0x01);
+        mxh = i2c.read(0);
+        i2c.stop();
+        i2c.start();
+        i2c.write(addr_compus);
+        i2c.write(0x09);
+        i2c.start();
+        i2c.write(addr_compus|0x01);
+        st2 = i2c.read(0);
+        i2c.stop();
+        double  mg_x = short((mxh<<8) | (mxl));
+        double MX = ( mg_x)*0.15;
+        pc.printf("MX = %f\r\n",MX);
+        wait(0.5);
+    }
 }
\ No newline at end of file