HEPTA-Sat Training 2019
/
Lab4-06_Detect_Magnetism_x-axis
Lab4
Diff: main.cpp
- 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