I2C_comm

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
ShaolinPoutine
Date:
Mon Jan 16 19:02:49 2017 +0000
Parent:
1:7f23dfc59683
Commit message:
Ca fonstionne

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 7f23dfc59683 -r a83e46376681 main.cpp
--- a/main.cpp	Mon Jan 16 17:20:22 2017 +0000
+++ b/main.cpp	Mon Jan 16 19:02:49 2017 +0000
@@ -78,7 +78,11 @@
     char data[6];
     int16_t x, y, z;
     int16_t buffer;
- 
+    
+    int mean[32];
+    int angle;
+    
+    int iteration = 0;
     while(1) {
         accelero.write(device, &XYZ_Data, 1, true);
         accelero.read(device, data, 6);
@@ -93,10 +97,22 @@
         ((char*) &buffer)[1]= data[4];    //MSB
         z = buffer >> 4;
         
-        int theta = std::acos((double)z * z / (double) (x*x + y*y + z*z)) * radtodeg * 100; 
-
-        printDecimalNumber(theta);
-        wait(0.5);
+        if (z > 1024)
+            z = 1024;
+        if (z < -1024)
+            z = -1024;
+        
+        int theta = std::acos((double) z / (double) 1024) * radtodeg * 100;
+        mean[iteration % 32] = theta >> 5;
+        
+        if (iteration % 16 == 0){
+            angle = 0;
+            for (int i = 0; i < 32; i++){
+                angle += mean[i];
+            }
+            printDecimalNumber(angle);
+        }
+        wait(0.006);
+        iteration++;
     }
-    
 }
\ No newline at end of file