Mario Quartey-Papafio / Mbed 2 deprecated Accelerometer

Dependencies:   MMA8452 N5110 PowerControl mbed

Committer:
MrMavriks
Date:
Mon May 11 10:04:53 2015 +0000
Revision:
0:39bc90f27661
Child:
1:8359e6982b30
All data values show, and magnitude;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MrMavriks 0:39bc90f27661 1 /**
MrMavriks 0:39bc90f27661 2 @file main.h
MrMavriks 0:39bc90f27661 3 @Header file contains code for displaying acceleration, defines and global variables.
MrMavriks 0:39bc90f27661 4 @Revision 1.0
MrMavriks 0:39bc90f27661 5 @Author Mario Quartey Papafio
MrMavriks 0:39bc90f27661 6 @Date May 2015
MrMavriks 0:39bc90f27661 7 */
MrMavriks 0:39bc90f27661 8
MrMavriks 0:39bc90f27661 9
MrMavriks 0:39bc90f27661 10 #include "mbed.h"
MrMavriks 0:39bc90f27661 11 #include "N5110.h"
MrMavriks 0:39bc90f27661 12 #include "MMA8452.h"
MrMavriks 0:39bc90f27661 13 #include "PowerControl/PowerControl.h"
MrMavriks 0:39bc90f27661 14 #include "PowerControl/EthernetPowerControl.h"
MrMavriks 0:39bc90f27661 15
MrMavriks 0:39bc90f27661 16 /**
MrMavriks 0:39bc90f27661 17 //@to powerdown the usb
MrMavriks 0:39bc90f27661 18 */
MrMavriks 0:39bc90f27661 19
MrMavriks 0:39bc90f27661 20 char buffer[14]; // to store array character takes 6 pixels
MrMavriks 0:39bc90f27661 21 char buffer1[14];
MrMavriks 0:39bc90f27661 22 char buffer2[14];
MrMavriks 0:39bc90f27661 23 char buffer3[14];
MrMavriks 0:39bc90f27661 24
MrMavriks 0:39bc90f27661 25
MrMavriks 0:39bc90f27661 26 #define USR_POWERDOWN (0X104)
MrMavriks 0:39bc90f27661 27 int semihost_powerdown()
MrMavriks 0:39bc90f27661 28 {
MrMavriks 0:39bc90f27661 29 uint32_t arg;
MrMavriks 0:39bc90f27661 30 return __semihost (USR_POWERDOWN, &arg);
MrMavriks 0:39bc90f27661 31 }
MrMavriks 0:39bc90f27661 32
MrMavriks 0:39bc90f27661 33
MrMavriks 0:39bc90f27661 34 DigitalOut myled(LED1);
MrMavriks 0:39bc90f27661 35 N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
MrMavriks 0:39bc90f27661 36 MMA8452 mma8452(p28,p27); // SDA, SCL
MrMavriks 0:39bc90f27661 37 Serial serial(USBTX,USBRX);
MrMavriks 0:39bc90f27661 38
MrMavriks 0:39bc90f27661 39 int multiplication (int length, int reg)
MrMavriks 0:39bc90f27661 40 {
MrMavriks 0:39bc90f27661 41 int m;
MrMavriks 0:39bc90f27661 42 m=length*reg;
MrMavriks 0:39bc90f27661 43 return m;
MrMavriks 0:39bc90f27661 44 }
MrMavriks 0:39bc90f27661 45
MrMavriks 0:39bc90f27661 46
MrMavriks 0:39bc90f27661 47 int main() {
MrMavriks 0:39bc90f27661 48 /**
MrMavriks 0:39bc90f27661 49 @Powers Down Ethernet
MrMavriks 0:39bc90f27661 50 @Powers Down USB interface
MrMavriks 0:39bc90f27661 51
MrMavriks 0:39bc90f27661 52 */
MrMavriks 0:39bc90f27661 53 PHY_PowerDown();
MrMavriks 0:39bc90f27661 54 semihost_powerdown();
MrMavriks 0:39bc90f27661 55 /**
MrMavriks 0:39bc90f27661 56 @Initialises lcd and accelerometer
MrMavriks 0:39bc90f27661 57 */
MrMavriks 0:39bc90f27661 58 // lcd.initSPI();
MrMavriks 0:39bc90f27661 59 lcd.init();
MrMavriks 0:39bc90f27661 60 lcd.printString("Hello World!", 0,0);
MrMavriks 0:39bc90f27661 61 lcd.refresh();
MrMavriks 0:39bc90f27661 62 wait(1);
MrMavriks 0:39bc90f27661 63 lcd.clear();
MrMavriks 0:39bc90f27661 64 mma8452.init(); // 100 Hz update rate, ±4g scale
MrMavriks 0:39bc90f27661 65
MrMavriks 0:39bc90f27661 66 Acceleration acceleration; // Accleration structure declared in MMA8452 class
MrMavriks 0:39bc90f27661 67 while (1) {
MrMavriks 0:39bc90f27661 68 lcd.printString("X Y Z Values", 0,0);
MrMavriks 0:39bc90f27661 69 acceleration = mma8452.readValues(); // read current values and print over serial port
MrMavriks 0:39bc90f27661 70 int xx = sprintf(buffer, "x = %.2f", acceleration.x); // figure eout the length of chars
MrMavriks 0:39bc90f27661 71 int yy = sprintf(buffer1, "y = %.2f", acceleration.y);
MrMavriks 0:39bc90f27661 72 int zz = sprintf(buffer2, "z = %.2f", acceleration.z);
MrMavriks 0:39bc90f27661 73 serial.printf("x = %.2f g y = %.2f g z = %.2f g\n",acceleration.x,acceleration.y,acceleration.z);
MrMavriks 0:39bc90f27661 74 wait(0.1); // short delay until next reading
MrMavriks 0:39bc90f27661 75 if (xx <= 14){ // if the length is smaller than 14 chars. it prints
MrMavriks 0:39bc90f27661 76 lcd.printString(buffer, 10, 1);
MrMavriks 0:39bc90f27661 77 if (yy <= 14){ // if the length is smaller than 14 chars. it prints
MrMavriks 0:39bc90f27661 78 lcd.printString(buffer1, 10, 2);
MrMavriks 0:39bc90f27661 79 if (zz <= 14){ // if the length is smaller than 14 chars. it prints
MrMavriks 0:39bc90f27661 80 lcd.printString(buffer2, 10, 3);
MrMavriks 0:39bc90f27661 81
MrMavriks 0:39bc90f27661 82 float mag = sqrt((acceleration.x*acceleration.x + acceleration.y*acceleration.y + acceleration.z*acceleration.z));
MrMavriks 0:39bc90f27661 83 int ff = sprintf(buffer3, "Mag = %.2f", mag);
MrMavriks 0:39bc90f27661 84 if (mag <= 14){ // if the length is smaller than 14 chars. it prints
MrMavriks 0:39bc90f27661 85 lcd.printString(buffer3, 10, 4);
MrMavriks 0:39bc90f27661 86 }
MrMavriks 0:39bc90f27661 87 }
MrMavriks 0:39bc90f27661 88 }
MrMavriks 0:39bc90f27661 89 }
MrMavriks 0:39bc90f27661 90
MrMavriks 0:39bc90f27661 91 lcd.refresh();
MrMavriks 0:39bc90f27661 92 }
MrMavriks 0:39bc90f27661 93 }