reads the sensor data
Dependencies: MAG3110 MMA8451Q SLCD TSI mbed-src
Fork of KL46Z by
main.cpp@5:a2c3562689b1, 2014-02-14 (annotated)
- Committer:
- rajkiran_anthapur
- Date:
- Fri Feb 14 07:44:14 2014 +0000
- Revision:
- 5:a2c3562689b1
- Parent:
- 4:e3770fac7512
- Child:
- 6:9836b4dd7fbb
final;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jppang | 0:52fadadad843 | 1 | #include "mbed.h" |
jppang | 0:52fadadad843 | 2 | #include "TSISensor.h" |
jppang | 0:52fadadad843 | 3 | #include "MMA8451Q.h" |
jppang | 0:52fadadad843 | 4 | #include "MAG3110.h" |
jppang | 0:52fadadad843 | 5 | #include <cstdlib> |
jppang | 0:52fadadad843 | 6 | #include <iostream> |
jppang | 0:52fadadad843 | 7 | |
rajkiran_anthapur | 5:a2c3562689b1 | 8 | |
rajkiran_anthapur | 5:a2c3562689b1 | 9 | |
rajkiran_anthapur | 5:a2c3562689b1 | 10 | |
jppang | 0:52fadadad843 | 11 | Serial pc(USBTX, USBRX); |
jppang | 0:52fadadad843 | 12 | |
jppang | 0:52fadadad843 | 13 | TSISensor tsi; |
rajkiran_anthapur | 5:a2c3562689b1 | 14 | MMA8451Q acc51(PTE25, PTE24, 0x1D<<1); |
rajkiran_anthapur | 5:a2c3562689b1 | 15 | MAG3110 magMeter(PTE25, PTE24, 0x0E<<1); |
jppang | 0:52fadadad843 | 16 | |
jppang | 0:52fadadad843 | 17 | PwmOut rled(PTE29); |
jppang | 0:52fadadad843 | 18 | PwmOut gled(PTD5); |
jppang | 0:52fadadad843 | 19 | AnalogIn lightSensor(PTE22); |
jppang | 4:e3770fac7512 | 20 | InterruptIn s1(PTC3); |
jppang | 4:e3770fac7512 | 21 | InterruptIn s3(PTC12); |
jppang | 0:52fadadad843 | 22 | |
rajkiran_anthapur | 5:a2c3562689b1 | 23 | int A=1, M=1, T=1, L=1, gE=1;; |
rajkiran_anthapur | 5:a2c3562689b1 | 24 | int aH=A, mH = M, tH = T, lH = L; |
rajkiran_anthapur | 5:a2c3562689b1 | 25 | |
jppang | 0:52fadadad843 | 26 | int main() |
jppang | 0:52fadadad843 | 27 | { |
jppang | 0:52fadadad843 | 28 | using namespace std; |
rajkiran_anthapur | 5:a2c3562689b1 | 29 | int count_acc = 1, count_mag = 1, count_light = 1, count_touch = 1, available = 0; |
rajkiran_anthapur | 5:a2c3562689b1 | 30 | int extra_light =0, extra_touch =0, extra_mag =0, extra_acc =0; |
rajkiran_anthapur | 5:a2c3562689b1 | 31 | |
rajkiran_anthapur | 5:a2c3562689b1 | 32 | int magX = 0, magY = 0, magZ = 0; |
rajkiran_anthapur | 5:a2c3562689b1 | 33 | magMeter.getValues(&magX, &magY, &magZ); |
rajkiran_anthapur | 5:a2c3562689b1 | 34 | |
rajkiran_anthapur | 5:a2c3562689b1 | 35 | float holdTime = 5.0; |
rajkiran_anthapur | 5:a2c3562689b1 | 36 | // acc.attach(&Acc, 0.010); |
rajkiran_anthapur | 5:a2c3562689b1 | 37 | // mag.attach(&Mag, 0.010); |
rajkiran_anthapur | 5:a2c3562689b1 | 38 | // light.attach(&Light, 0.010); |
rajkiran_anthapur | 5:a2c3562689b1 | 39 | |
rajkiran_anthapur | 5:a2c3562689b1 | 40 | |
jppang | 3:96fe777bad5a | 41 | while(1) { |
rajkiran_anthapur | 5:a2c3562689b1 | 42 | |
rajkiran_anthapur | 5:a2c3562689b1 | 43 | |
rajkiran_anthapur | 5:a2c3562689b1 | 44 | if(A == 1) |
rajkiran_anthapur | 5:a2c3562689b1 | 45 | cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n\r" ; |
rajkiran_anthapur | 5:a2c3562689b1 | 46 | if(M == 1) |
rajkiran_anthapur | 5:a2c3562689b1 | 47 | cout << "M" << magMeter.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n\r"; |
rajkiran_anthapur | 5:a2c3562689b1 | 48 | if(L == 1) |
rajkiran_anthapur | 5:a2c3562689b1 | 49 | cout << "L" << lightSensor << "\n\r"; |
rajkiran_anthapur | 5:a2c3562689b1 | 50 | if(T == 1) |
rajkiran_anthapur | 5:a2c3562689b1 | 51 | cout << "T" << tsi.readPercentage() << "\n\r" ; |
rajkiran_anthapur | 5:a2c3562689b1 | 52 | |
rajkiran_anthapur | 5:a2c3562689b1 | 53 | if( count_acc != 0 || count_mag != 0 || count_light != 0 || count_touch != 0){ |
rajkiran_anthapur | 5:a2c3562689b1 | 54 | available = 1; |
rajkiran_anthapur | 5:a2c3562689b1 | 55 | extra_acc = count_acc; |
rajkiran_anthapur | 5:a2c3562689b1 | 56 | extra_mag = count_mag; |
rajkiran_anthapur | 5:a2c3562689b1 | 57 | extra_light = count_light; |
rajkiran_anthapur | 5:a2c3562689b1 | 58 | extra_touch = count_touch; |
rajkiran_anthapur | 5:a2c3562689b1 | 59 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 60 | |
rajkiran_anthapur | 5:a2c3562689b1 | 61 | while( available == 1){ |
rajkiran_anthapur | 5:a2c3562689b1 | 62 | if (A == 1 && extra_acc > 0){ |
rajkiran_anthapur | 5:a2c3562689b1 | 63 | extra_acc--; |
rajkiran_anthapur | 5:a2c3562689b1 | 64 | cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n\r" ; |
rajkiran_anthapur | 5:a2c3562689b1 | 65 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 66 | if (M == 1 && extra_mag > 0){ |
rajkiran_anthapur | 5:a2c3562689b1 | 67 | extra_mag--; |
rajkiran_anthapur | 5:a2c3562689b1 | 68 | cout << "M" << magMeter.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n\r"; |
rajkiran_anthapur | 5:a2c3562689b1 | 69 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 70 | if (T == 1 && extra_touch > 0){ |
rajkiran_anthapur | 5:a2c3562689b1 | 71 | extra_touch--; |
rajkiran_anthapur | 5:a2c3562689b1 | 72 | cout << "T" << tsi.readPercentage() << "\n\r" ; |
rajkiran_anthapur | 5:a2c3562689b1 | 73 | |
rajkiran_anthapur | 5:a2c3562689b1 | 74 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 75 | if (L == 1 && extra_light > 0){ |
rajkiran_anthapur | 5:a2c3562689b1 | 76 | extra_light--; |
rajkiran_anthapur | 5:a2c3562689b1 | 77 | cout << "L" << lightSensor << "\n\r"; |
rajkiran_anthapur | 5:a2c3562689b1 | 78 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 79 | if( extra_acc == 0 && extra_mag == 0 && extra_touch == 0 && extra_light == 0) |
rajkiran_anthapur | 5:a2c3562689b1 | 80 | available = 0; |
rajkiran_anthapur | 5:a2c3562689b1 | 81 | |
rajkiran_anthapur | 5:a2c3562689b1 | 82 | } |
jppang | 3:96fe777bad5a | 83 | |
rajkiran_anthapur | 5:a2c3562689b1 | 84 | if (pc.readable()){// |
rajkiran_anthapur | 5:a2c3562689b1 | 85 | // NVIC_DisableIRQ(TIMER3_IRQn); |
rajkiran_anthapur | 5:a2c3562689b1 | 86 | if(pc.getc() == 'i'){ |
rajkiran_anthapur | 5:a2c3562689b1 | 87 | pc.printf("\n#######################################\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 88 | pc.printf("Entered Sensor configuration Mode\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 89 | pc.printf("#######################################\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 90 | pc.printf("Present Active Sensors\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 91 | if(A == 1) pc.printf("Acccelerometer\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 92 | if(M == 1) pc.printf("Magnetometer\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 93 | if(T == 1) pc.printf("Touchglider\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 94 | if(L == 1) pc.printf("LightSensor\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 95 | pc.printf("#######################################\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 96 | pc.printf("Enable / Disable Sensors? (0-9)\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 97 | pc.printf("Acccelerometer - (0-9)"); |
rajkiran_anthapur | 5:a2c3562689b1 | 98 | count_acc = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 99 | (count_acc != '0')? A = 1: A=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 100 | if ( A==1 ){ |
rajkiran_anthapur | 5:a2c3562689b1 | 101 | pc.printf("Acccelerometer - Enabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 102 | // count_acc == 1 ? count_acc = 0: count_acc-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 103 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 104 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 105 | pc.printf("Acccelerometer - Disabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 106 | pc.printf("Magnetometer - (0-9)? "); |
rajkiran_anthapur | 5:a2c3562689b1 | 107 | count_mag = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 108 | (count_mag != '0')? M = 1: M=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 109 | if ( M==1 ){ |
rajkiran_anthapur | 5:a2c3562689b1 | 110 | pc.printf("Magnetometer - Enabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 111 | |
rajkiran_anthapur | 5:a2c3562689b1 | 112 | // count_mag == 1 ? count_mag = 0: count_mag-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 113 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 114 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 115 | pc.printf("Magnetometer - Disabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 116 | pc.printf("Touchglider - (0-9)? "); |
rajkiran_anthapur | 5:a2c3562689b1 | 117 | count_touch = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 118 | (count_touch != '0')? T = 1: T=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 119 | if ( T==1 ){ |
rajkiran_anthapur | 5:a2c3562689b1 | 120 | pc.printf("Touchglider - Enabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 121 | |
rajkiran_anthapur | 5:a2c3562689b1 | 122 | // count_touch == 1 ? count_touch = 0: count_touch-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 123 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 124 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 125 | pc.printf("Touchglider - Disabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 126 | pc.printf("LightSensor - (0-9)? "); |
rajkiran_anthapur | 5:a2c3562689b1 | 127 | count_light = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 128 | (count_light != '0')? L = 1: L=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 129 | if ( L==1 ){ |
rajkiran_anthapur | 5:a2c3562689b1 | 130 | pc.printf("LightSensor - Enabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 131 | |
rajkiran_anthapur | 5:a2c3562689b1 | 132 | // count_light == 1 ? count_light = 0: count_light-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 133 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 134 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 135 | pc.printf("LightSensor - Disabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 136 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 137 | } |
jppang | 0:52fadadad843 | 138 | } |
jppang | 0:52fadadad843 | 139 | } |