Raphaël Drouin
/
I2C_comm
I2C_comm
Revision 2:a83e46376681, committed 2017-01-16
- 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