reads the sensor data
Dependencies: MAG3110 MMA8451Q SLCD TSI mbed-src
Fork of KL46Z by
main.cpp@6:9836b4dd7fbb, 2014-02-14 (annotated)
- Committer:
- rajkiran_anthapur
- Date:
- Fri Feb 14 23:27:17 2014 +0000
- Revision:
- 6:9836b4dd7fbb
- Parent:
- 5:a2c3562689b1
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 | 6:9836b4dd7fbb | 15 | MAG3110 mag(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 | 6:9836b4dd7fbb | 23 | int base_rate=100; |
rajkiran_anthapur | 5:a2c3562689b1 | 24 | int A=1, M=1, T=1, L=1, gE=1;; |
rajkiran_anthapur | 6:9836b4dd7fbb | 25 | int aH=base_rate, mH = base_rate, tH = base_rate, lH = base_rate; |
rajkiran_anthapur | 6:9836b4dd7fbb | 26 | Timer t; |
rajkiran_anthapur | 6:9836b4dd7fbb | 27 | int counter; |
rajkiran_anthapur | 6:9836b4dd7fbb | 28 | |
rajkiran_anthapur | 5:a2c3562689b1 | 29 | |
jppang | 0:52fadadad843 | 30 | int main() |
jppang | 0:52fadadad843 | 31 | { |
jppang | 0:52fadadad843 | 32 | using namespace std; |
rajkiran_anthapur | 5:a2c3562689b1 | 33 | int count_acc = 1, count_mag = 1, count_light = 1, count_touch = 1, available = 0; |
rajkiran_anthapur | 6:9836b4dd7fbb | 34 | // int extra_light =0, extra_touch =0, extra_mag =0, extra_acc =0; |
rajkiran_anthapur | 5:a2c3562689b1 | 35 | |
rajkiran_anthapur | 5:a2c3562689b1 | 36 | int magX = 0, magY = 0, magZ = 0; |
rajkiran_anthapur | 6:9836b4dd7fbb | 37 | mag.getValues(&magX, &magY, &magZ); |
rajkiran_anthapur | 5:a2c3562689b1 | 38 | |
rajkiran_anthapur | 5:a2c3562689b1 | 39 | float holdTime = 5.0; |
rajkiran_anthapur | 5:a2c3562689b1 | 40 | // acc.attach(&Acc, 0.010); |
rajkiran_anthapur | 5:a2c3562689b1 | 41 | // mag.attach(&Mag, 0.010); |
rajkiran_anthapur | 5:a2c3562689b1 | 42 | // light.attach(&Light, 0.010); |
rajkiran_anthapur | 5:a2c3562689b1 | 43 | |
rajkiran_anthapur | 6:9836b4dd7fbb | 44 | t.start(); |
jppang | 3:96fe777bad5a | 45 | while(1) { |
rajkiran_anthapur | 6:9836b4dd7fbb | 46 | mag.getValues(&magX, &magY, &magZ); |
rajkiran_anthapur | 6:9836b4dd7fbb | 47 | counter = t.read_ms(); |
rajkiran_anthapur | 6:9836b4dd7fbb | 48 | if(A == 1 && counter%(aH+1) == aH) |
rajkiran_anthapur | 6:9836b4dd7fbb | 49 | cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n" ; |
rajkiran_anthapur | 6:9836b4dd7fbb | 50 | if(M == 1 && counter%(mH+1) == mH) |
rajkiran_anthapur | 6:9836b4dd7fbb | 51 | cout << "M" << mag.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n"; |
rajkiran_anthapur | 6:9836b4dd7fbb | 52 | if(L == 1 && counter%(lH+1) == lH) |
rajkiran_anthapur | 6:9836b4dd7fbb | 53 | cout << "L" << lightSensor << "\n"; |
rajkiran_anthapur | 6:9836b4dd7fbb | 54 | if(T == 1 && counter%(tH+1) == tH) |
rajkiran_anthapur | 6:9836b4dd7fbb | 55 | cout << "T" << tsi.readPercentage() << "\n" ; |
rajkiran_anthapur | 6:9836b4dd7fbb | 56 | // cout <<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\r"; |
rajkiran_anthapur | 6:9836b4dd7fbb | 57 | //if( count_acc != 0 || count_mag != 0 || count_light != 0 || count_touch != 0){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 58 | // available = 1; |
rajkiran_anthapur | 6:9836b4dd7fbb | 59 | // extra_acc = count_acc; |
rajkiran_anthapur | 6:9836b4dd7fbb | 60 | // extra_mag = count_mag; |
rajkiran_anthapur | 6:9836b4dd7fbb | 61 | // extra_light = count_light; |
rajkiran_anthapur | 6:9836b4dd7fbb | 62 | // extra_touch = count_touch; |
rajkiran_anthapur | 6:9836b4dd7fbb | 63 | // } |
rajkiran_anthapur | 6:9836b4dd7fbb | 64 | // |
rajkiran_anthapur | 6:9836b4dd7fbb | 65 | // while( available == 1){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 66 | // if (A == 1 && extra_acc > 0){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 67 | // extra_acc--; |
rajkiran_anthapur | 6:9836b4dd7fbb | 68 | // cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n\r" ; |
rajkiran_anthapur | 6:9836b4dd7fbb | 69 | // } |
rajkiran_anthapur | 6:9836b4dd7fbb | 70 | // if (M == 1 && extra_mag > 0){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 71 | // extra_mag--; |
rajkiran_anthapur | 6:9836b4dd7fbb | 72 | // cout << "M" << magMeter.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n\r"; |
rajkiran_anthapur | 6:9836b4dd7fbb | 73 | // } |
rajkiran_anthapur | 6:9836b4dd7fbb | 74 | // if (T == 1 && extra_touch > 0){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 75 | // extra_touch--; |
rajkiran_anthapur | 6:9836b4dd7fbb | 76 | // cout << "T" << tsi.readPercentage() << "\n\r" ; |
rajkiran_anthapur | 6:9836b4dd7fbb | 77 | // |
rajkiran_anthapur | 6:9836b4dd7fbb | 78 | // } |
rajkiran_anthapur | 6:9836b4dd7fbb | 79 | // if (L == 1 && extra_light > 0){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 80 | // extra_light--; |
rajkiran_anthapur | 6:9836b4dd7fbb | 81 | // cout << "L" << lightSensor << "\n\r"; |
rajkiran_anthapur | 6:9836b4dd7fbb | 82 | // } |
rajkiran_anthapur | 6:9836b4dd7fbb | 83 | // if( extra_acc == 0 && extra_mag == 0 && extra_touch == 0 && extra_light == 0) |
rajkiran_anthapur | 6:9836b4dd7fbb | 84 | // available = 0; |
rajkiran_anthapur | 6:9836b4dd7fbb | 85 | // |
rajkiran_anthapur | 6:9836b4dd7fbb | 86 | // } |
jppang | 3:96fe777bad5a | 87 | |
rajkiran_anthapur | 5:a2c3562689b1 | 88 | if (pc.readable()){// |
rajkiran_anthapur | 5:a2c3562689b1 | 89 | // NVIC_DisableIRQ(TIMER3_IRQn); |
rajkiran_anthapur | 5:a2c3562689b1 | 90 | if(pc.getc() == 'i'){ |
rajkiran_anthapur | 5:a2c3562689b1 | 91 | pc.printf("\n#######################################\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 92 | pc.printf("Entered Sensor configuration Mode\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 93 | pc.printf("#######################################\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 94 | pc.printf("Present Active Sensors\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 95 | if(A == 1) pc.printf("Acccelerometer\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 96 | if(M == 1) pc.printf("Magnetometer\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 97 | if(T == 1) pc.printf("Touchglider\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 98 | if(L == 1) pc.printf("LightSensor\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 99 | pc.printf("#######################################\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 100 | pc.printf("Enable / Disable Sensors? (0/1)\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 101 | pc.printf("Acccelerometer - (0/1)\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 102 | count_acc = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 103 | (count_acc != '0')? A = 1: A=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 104 | if ( A==1 ){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 105 | pc.printf("Acccelerometer - Enabled !\n Enter the rate (Three digit number)\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 106 | aH=0; |
rajkiran_anthapur | 6:9836b4dd7fbb | 107 | pc.printf(" You entered - "); |
rajkiran_anthapur | 6:9836b4dd7fbb | 108 | for(int k=1; k<=3;k++){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 109 | aH = aH * 10 + pc.getc() - 48; |
rajkiran_anthapur | 6:9836b4dd7fbb | 110 | pc.printf("%d",aH%10); |
rajkiran_anthapur | 6:9836b4dd7fbb | 111 | } |
rajkiran_anthapur | 6:9836b4dd7fbb | 112 | pc.printf("\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 113 | aH = 1000 / aH; |
rajkiran_anthapur | 6:9836b4dd7fbb | 114 | // aH = count_acc; |
rajkiran_anthapur | 5:a2c3562689b1 | 115 | // count_acc == 1 ? count_acc = 0: count_acc-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 116 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 117 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 118 | pc.printf("Acccelerometer - Disabled !\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 119 | pc.printf("Magnetometer - (0/1)? \n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 120 | count_mag = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 121 | (count_mag != '0')? M = 1: M=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 122 | if ( M==1 ){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 123 | pc.printf("Magnetometer - Enabled !\n Enter the rate (Three digit number)\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 124 | mH=0; |
rajkiran_anthapur | 6:9836b4dd7fbb | 125 | pc.printf(" You entered - "); |
rajkiran_anthapur | 6:9836b4dd7fbb | 126 | for(int k=1; k<=3;k++){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 127 | mH = mH * 10 + pc.getc() - 48; |
rajkiran_anthapur | 6:9836b4dd7fbb | 128 | pc.printf("%d",mH%10); |
rajkiran_anthapur | 6:9836b4dd7fbb | 129 | } |
rajkiran_anthapur | 6:9836b4dd7fbb | 130 | pc.printf("\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 131 | mH = 1000/mH; |
rajkiran_anthapur | 6:9836b4dd7fbb | 132 | // cout << "MH = " << mH << "\n\r"; |
rajkiran_anthapur | 6:9836b4dd7fbb | 133 | // mH = base_rate/ count_mag; |
rajkiran_anthapur | 5:a2c3562689b1 | 134 | |
rajkiran_anthapur | 5:a2c3562689b1 | 135 | // count_mag == 1 ? count_mag = 0: count_mag-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 136 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 137 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 138 | pc.printf("Magnetometer - Disabled !\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 139 | pc.printf("Touchglider - (0/1)? \n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 140 | count_touch = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 141 | (count_touch != '0')? T = 1: T=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 142 | if ( T==1 ){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 143 | pc.printf("Touchglider - Enabled !\n Enter the rate (Three digit number)\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 144 | tH=0; |
rajkiran_anthapur | 6:9836b4dd7fbb | 145 | pc.printf(" You entered - "); |
rajkiran_anthapur | 6:9836b4dd7fbb | 146 | for(int k=1; k<=3;k++){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 147 | tH = tH * 10 + pc.getc() - 48; |
rajkiran_anthapur | 6:9836b4dd7fbb | 148 | pc.printf("%d",tH%10); |
rajkiran_anthapur | 6:9836b4dd7fbb | 149 | } |
rajkiran_anthapur | 6:9836b4dd7fbb | 150 | pc.printf("\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 151 | tH = 1000 / tH; |
rajkiran_anthapur | 6:9836b4dd7fbb | 152 | // tH = base_rate/ count_touch ; |
rajkiran_anthapur | 5:a2c3562689b1 | 153 | // count_touch == 1 ? count_touch = 0: count_touch-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 154 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 155 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 156 | pc.printf("Touchglider - Disabled !\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 157 | pc.printf("LightSensor - (0/1)? \n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 158 | count_light = (int) pc.getc(); |
rajkiran_anthapur | 5:a2c3562689b1 | 159 | (count_light != '0')? L = 1: L=0; |
rajkiran_anthapur | 5:a2c3562689b1 | 160 | if ( L==1 ){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 161 | pc.printf("LightSensor - Enabled !\n Enter the rate (Three digit number)\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 162 | lH=0; |
rajkiran_anthapur | 6:9836b4dd7fbb | 163 | pc.printf(" You entered - "); |
rajkiran_anthapur | 6:9836b4dd7fbb | 164 | for(int k=1; k<=3;k++){ |
rajkiran_anthapur | 6:9836b4dd7fbb | 165 | lH = lH * 10 + pc.getc() - 48; |
rajkiran_anthapur | 6:9836b4dd7fbb | 166 | pc.printf("%d",lH%10); |
rajkiran_anthapur | 6:9836b4dd7fbb | 167 | } |
rajkiran_anthapur | 6:9836b4dd7fbb | 168 | pc.printf("\n"); |
rajkiran_anthapur | 6:9836b4dd7fbb | 169 | lH = 1000 / lH; |
rajkiran_anthapur | 6:9836b4dd7fbb | 170 | // pc.printf("LH = %d",lH); |
rajkiran_anthapur | 5:a2c3562689b1 | 171 | // count_light == 1 ? count_light = 0: count_light-=1; |
rajkiran_anthapur | 5:a2c3562689b1 | 172 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 173 | else |
rajkiran_anthapur | 5:a2c3562689b1 | 174 | pc.printf("LightSensor - Disabled !\n"); |
rajkiran_anthapur | 5:a2c3562689b1 | 175 | } |
rajkiran_anthapur | 5:a2c3562689b1 | 176 | } |
jppang | 0:52fadadad843 | 177 | } |
jppang | 0:52fadadad843 | 178 | } |