works fine on STM

Dependencies:   mbed

Fork of Sample_manerine_SPI_LSM9DS0 by SHENG-HEN HSIEH

Revision:
2:0d90c0436797
Parent:
1:b42c3522a50a
Child:
3:502b83f7761c
--- a/main.cpp	Thu Sep 01 16:37:11 2016 +0000
+++ b/main.cpp	Thu Sep 01 17:14:29 2016 +0000
@@ -9,7 +9,7 @@
 DigitalOut  led(D13);           //detection
 DigitalOut  TT_ext(D12);
 
-//~~~SPI~~~//
+//~~~IMU_SPI~~~//
 DigitalOut  SPI_CSG(D7,1);      //low for GYRO enable
 DigitalOut  SPI_CSXM(D6,1);     //low for ACC/MAG enable
 SPI spi(D4, D5, D3);            //MOSI MISO SCLK
@@ -24,6 +24,18 @@
 //~~~globle~~~//
 Ticker  TT;                         //call a timer
 int     count = 0;                  //one second counter for extrenal led blink
+
+//~~~IMU_SPI~~~//
+short low_byte = 0x00;               //buffer
+short high_byte = 0x00;
+
+short Wx = 0x00;
+short Wy = 0x00;
+short Wz = 0x00;
+
+short Ax = 0x00;
+short Ay = 0x00;
+short Az = 0x00;
 //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑end of Varible registor↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑//
 
 
@@ -96,7 +108,6 @@
     spi.write(CTRL_REG2_XM);
     spi.write(0xC0);                //cut off 50 Hz/ Scale +-2g
     SPI_CSXM = 1;                   //end spi talking
-
 }
 //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑end of init_IMU funtion↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑//
 
@@ -113,17 +124,20 @@
     count = count+1;                //one second counter
 
     SPI_CSG = 0;                    //start spi talking
-    spi.write(0x8f);                //read WHO_AM_I_G   0x0f | B1000 0000
-    int temp = spi.write(0);
+    spi.write(0xE8);                //read B11101000 read/multi/address
+    low_byte = spi.write(0);
+    high_byte = spi.write(0);
+    Wx = high_byte << 8 |low_byte;
     SPI_CSG = 1;                    //end spi talking
 
 
     SPI_CSXM = 0;                   //start spi talking
-    spi.write(0x8f);                //read WHO_AM_I_XM  0x0f | B1000 0000
-    int temp2 = spi.write(0);
+    spi.write(0xE8);                //read B11101000 read/multi/address
+    low_byte = spi.write(0);
+    high_byte = spi.write(0);
+    Ax = high_byte << 8 |low_byte;
     SPI_CSXM = 1;                   //end spi talking
 
-    pc.printf("who_am_I_G:%d\t", temp);
-    pc.printf("who_am_I_XM:%d\n", temp2);
+    pc.printf("%d\t%d\n", Wx, Ax);
 }
 //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑end of Timebase funtion↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑//
\ No newline at end of file