Cyber Physical Systems Mark Roche LAB 2

Dependencies:   mbed MMA7660

Committer:
mark_roche
Date:
Wed May 11 17:09:09 2022 +0000
Revision:
0:0d335e3eea24
Child:
1:3a0dea78e0c5
Cyber Physical Systems; ; Mark Roche LAB 2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mark_roche 0:0d335e3eea24 1
mark_roche 0:0d335e3eea24 2 #include "mbed.h"
mark_roche 0:0d335e3eea24 3 #include "MMA7660.h"
mark_roche 0:0d335e3eea24 4
mark_roche 0:0d335e3eea24 5 MMA7660 MMA(p28, p27);
mark_roche 0:0d335e3eea24 6
mark_roche 0:0d335e3eea24 7 #define PI 3.14159265
mark_roche 0:0d335e3eea24 8
mark_roche 0:0d335e3eea24 9 DigitalOut connectionLed(LED1);
mark_roche 0:0d335e3eea24 10
mark_roche 0:0d335e3eea24 11 float calculateAngle(float x, float y, float z){
mark_roche 0:0d335e3eea24 12 float angle = 0;
mark_roche 0:0d335e3eea24 13
mark_roche 0:0d335e3eea24 14 float top_part = x;
mark_roche 0:0d335e3eea24 15 float bott_part = sqrt((y*y)+(z*z));
mark_roche 0:0d335e3eea24 16 float res = atan(top_part/bott_part);
mark_roche 0:0d335e3eea24 17 float val = 180.0 / PI;
mark_roche 0:0d335e3eea24 18 angle = res * val;
mark_roche 0:0d335e3eea24 19 return angle;
mark_roche 0:0d335e3eea24 20 }
mark_roche 0:0d335e3eea24 21
mark_roche 0:0d335e3eea24 22
mark_roche 0:0d335e3eea24 23
mark_roche 0:0d335e3eea24 24 int main() {
mark_roche 0:0d335e3eea24 25 if (MMA.testConnection())
mark_roche 0:0d335e3eea24 26 connectionLed = 1;
mark_roche 0:0d335e3eea24 27 printf("\r\n\n");
mark_roche 0:0d335e3eea24 28 while(1) {
mark_roche 0:0d335e3eea24 29 float res = calculateAngle(MMA.x(), MMA.y(), MMA.z());
mark_roche 0:0d335e3eea24 30 printf("angle = %f \r", res);
mark_roche 0:0d335e3eea24 31 wait(1);
mark_roche 0:0d335e3eea24 32
mark_roche 0:0d335e3eea24 33 }
mark_roche 0:0d335e3eea24 34 }