Mark Roche
/
LAB_2_MR
Cyber Physical Systems Mark Roche LAB 2
main.cpp@1:3a0dea78e0c5, 2022-05-11 (annotated)
- Committer:
- mark_roche
- Date:
- Wed May 11 17:12:01 2022 +0000
- Revision:
- 1:3a0dea78e0c5
- Parent:
- 0:0d335e3eea24
CPS Lab 2 Mark Roche
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mark_roche | 1:3a0dea78e0c5 | 1 | //____Industry 4.0: Cyber Phys Systs-51296_______ |
mark_roche | 1:3a0dea78e0c5 | 2 | //____Lab 2 Mark Roche_____ |
mark_roche | 1:3a0dea78e0c5 | 3 | |
mark_roche | 0:0d335e3eea24 | 4 | |
mark_roche | 0:0d335e3eea24 | 5 | #include "mbed.h" |
mark_roche | 0:0d335e3eea24 | 6 | #include "MMA7660.h" |
mark_roche | 0:0d335e3eea24 | 7 | |
mark_roche | 0:0d335e3eea24 | 8 | MMA7660 MMA(p28, p27); |
mark_roche | 0:0d335e3eea24 | 9 | |
mark_roche | 0:0d335e3eea24 | 10 | #define PI 3.14159265 |
mark_roche | 0:0d335e3eea24 | 11 | |
mark_roche | 0:0d335e3eea24 | 12 | DigitalOut connectionLed(LED1); |
mark_roche | 0:0d335e3eea24 | 13 | |
mark_roche | 0:0d335e3eea24 | 14 | float calculateAngle(float x, float y, float z){ |
mark_roche | 0:0d335e3eea24 | 15 | float angle = 0; |
mark_roche | 0:0d335e3eea24 | 16 | |
mark_roche | 0:0d335e3eea24 | 17 | float top_part = x; |
mark_roche | 0:0d335e3eea24 | 18 | float bott_part = sqrt((y*y)+(z*z)); |
mark_roche | 0:0d335e3eea24 | 19 | float res = atan(top_part/bott_part); |
mark_roche | 0:0d335e3eea24 | 20 | float val = 180.0 / PI; |
mark_roche | 0:0d335e3eea24 | 21 | angle = res * val; |
mark_roche | 0:0d335e3eea24 | 22 | return angle; |
mark_roche | 0:0d335e3eea24 | 23 | } |
mark_roche | 0:0d335e3eea24 | 24 | |
mark_roche | 0:0d335e3eea24 | 25 | |
mark_roche | 0:0d335e3eea24 | 26 | |
mark_roche | 0:0d335e3eea24 | 27 | int main() { |
mark_roche | 0:0d335e3eea24 | 28 | if (MMA.testConnection()) |
mark_roche | 0:0d335e3eea24 | 29 | connectionLed = 1; |
mark_roche | 0:0d335e3eea24 | 30 | printf("\r\n\n"); |
mark_roche | 0:0d335e3eea24 | 31 | while(1) { |
mark_roche | 0:0d335e3eea24 | 32 | float res = calculateAngle(MMA.x(), MMA.y(), MMA.z()); |
mark_roche | 0:0d335e3eea24 | 33 | printf("angle = %f \r", res); |
mark_roche | 0:0d335e3eea24 | 34 | wait(1); |
mark_roche | 0:0d335e3eea24 | 35 | |
mark_roche | 0:0d335e3eea24 | 36 | } |
mark_roche | 0:0d335e3eea24 | 37 | } |