Bertie Harte
/
arraytest
make public
main.cpp@0:7d4a8ede5b35, 2021-03-26 (annotated)
- Committer:
- BertieHarte
- Date:
- Fri Mar 26 10:18:10 2021 +0000
- Revision:
- 0:7d4a8ede5b35
make public
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
BertieHarte | 0:7d4a8ede5b35 | 1 | #include "mbed.h" |
BertieHarte | 0:7d4a8ede5b35 | 2 | #include "MMA7660.h" |
BertieHarte | 0:7d4a8ede5b35 | 3 | |
BertieHarte | 0:7d4a8ede5b35 | 4 | MMA7660 MMA(p28, p27); // declare accelerometer. |
BertieHarte | 0:7d4a8ede5b35 | 5 | |
BertieHarte | 0:7d4a8ede5b35 | 6 | |
BertieHarte | 0:7d4a8ede5b35 | 7 | // calculate angle function, using x,y,z variables. |
BertieHarte | 0:7d4a8ede5b35 | 8 | float calculateAngle(float x, float y, float z) |
BertieHarte | 0:7d4a8ede5b35 | 9 | { |
BertieHarte | 0:7d4a8ede5b35 | 10 | float Angle; |
BertieHarte | 0:7d4a8ede5b35 | 11 | float PI = 3.14159265; |
BertieHarte | 0:7d4a8ede5b35 | 12 | // formula for calculating the angle - renamed as per program spec, based on equation 7 (Roll). |
BertieHarte | 0:7d4a8ede5b35 | 13 | // convert to degrees from rad using 180/PI |
BertieHarte | 0:7d4a8ede5b35 | 14 | Angle = (atan(y/(sqrt((x*x)+(z*z)))))*(180/PI); |
BertieHarte | 0:7d4a8ede5b35 | 15 | return Angle; |
BertieHarte | 0:7d4a8ede5b35 | 16 | } |
BertieHarte | 0:7d4a8ede5b35 | 17 | // print output |
BertieHarte | 0:7d4a8ede5b35 | 18 | // MMA.(value) is the built in function of MMA7660 library to read the accelerometer postions. |
BertieHarte | 0:7d4a8ede5b35 | 19 | // Print measured values to terminal. |
BertieHarte | 0:7d4a8ede5b35 | 20 | int main() |
BertieHarte | 0:7d4a8ede5b35 | 21 | { |
BertieHarte | 0:7d4a8ede5b35 | 22 | while(1) { |
BertieHarte | 0:7d4a8ede5b35 | 23 | float Arr[10]; |
BertieHarte | 0:7d4a8ede5b35 | 24 | float Angle = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 25 | Arr[0] = Angle; |
BertieHarte | 0:7d4a8ede5b35 | 26 | float Angle1 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 27 | Arr[1] = Angle1; |
BertieHarte | 0:7d4a8ede5b35 | 28 | float Angle2 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 29 | Arr[2] = Angle2; |
BertieHarte | 0:7d4a8ede5b35 | 30 | float Angle3 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 31 | Arr[3] = Angle3; |
BertieHarte | 0:7d4a8ede5b35 | 32 | float Angle4 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 33 | Arr[4] = Angle4; |
BertieHarte | 0:7d4a8ede5b35 | 34 | float Angle5 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 35 | Arr[5] = Angle5; |
BertieHarte | 0:7d4a8ede5b35 | 36 | float Angle6 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 37 | Arr[6] = Angle6; |
BertieHarte | 0:7d4a8ede5b35 | 38 | float Angle7 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 39 | Arr[7] = Angle7; |
BertieHarte | 0:7d4a8ede5b35 | 40 | float Angle8 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 41 | Arr[8] = Angle8; |
BertieHarte | 0:7d4a8ede5b35 | 42 | float Angle9 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 43 | Arr[9] = Angle9; |
BertieHarte | 0:7d4a8ede5b35 | 44 | // float Angle2 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 45 | // float Angle3 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 46 | // float Angle4 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 47 | // float Angle5 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); |
BertieHarte | 0:7d4a8ede5b35 | 48 | printf("0 = %f \n\r" , Arr[0]); |
BertieHarte | 0:7d4a8ede5b35 | 49 | printf("1 = %f \n\r" , Arr[1]); |
BertieHarte | 0:7d4a8ede5b35 | 50 | printf("2 = %f \n\r" , Arr[2]); |
BertieHarte | 0:7d4a8ede5b35 | 51 | printf("3 = %f \n\r" , Arr[3]); |
BertieHarte | 0:7d4a8ede5b35 | 52 | printf("4 = %f \n\r" , Arr[4]); |
BertieHarte | 0:7d4a8ede5b35 | 53 | printf("5 = %f \n\r" , Arr[5]); |
BertieHarte | 0:7d4a8ede5b35 | 54 | printf("6 = %f \n\r" , Arr[6]); |
BertieHarte | 0:7d4a8ede5b35 | 55 | printf("7 = %f \n\r" , Arr[7]); |
BertieHarte | 0:7d4a8ede5b35 | 56 | printf("8 = %f \n\r" , Arr[8]); |
BertieHarte | 0:7d4a8ede5b35 | 57 | printf("9 = %f \n\r" , Arr[9]); |
BertieHarte | 0:7d4a8ede5b35 | 58 | float LAngle = (Arr[0]+Arr[1]+Arr[2]+Arr[3]+Arr[4]+Arr[5]+Arr[6]+Arr[7]+Arr[8]+Arr[9])/10; |
BertieHarte | 0:7d4a8ede5b35 | 59 | if (LAngle != 0.000000) { |
BertieHarte | 0:7d4a8ede5b35 | 60 | printf ("Angle = %f \n \r", LAngle); |
BertieHarte | 0:7d4a8ede5b35 | 61 | wait(1); |
BertieHarte | 0:7d4a8ede5b35 | 62 | } else { |
BertieHarte | 0:7d4a8ede5b35 | 63 | } |
BertieHarte | 0:7d4a8ede5b35 | 64 | } |
BertieHarte | 0:7d4a8ede5b35 | 65 | } |