Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MMA8452 N5110 PowerControl mbed
Acceloro.cpp@0:39bc90f27661, 2015-05-11 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |