reads the sensor data
Dependencies: MAG3110 MMA8451Q SLCD TSI mbed-src
Fork of KL46Z by
Diff: main.cpp
- Revision:
- 5:a2c3562689b1
- Parent:
- 4:e3770fac7512
- Child:
- 6:9836b4dd7fbb
--- a/main.cpp Sun Feb 09 12:29:43 2014 +0000 +++ b/main.cpp Fri Feb 14 07:44:14 2014 +0000 @@ -5,11 +5,14 @@ #include <cstdlib> #include <iostream> + + + Serial pc(USBTX, USBRX); TSISensor tsi; -MMA8451Q acc(PTE25, PTE24, 0x1D<<1); -MAG3110 mag(PTE25, PTE24, 0x0E<<1); +MMA8451Q acc51(PTE25, PTE24, 0x1D<<1); +MAG3110 magMeter(PTE25, PTE24, 0x0E<<1); PwmOut rled(PTE29); PwmOut gled(PTD5); @@ -17,34 +20,120 @@ InterruptIn s1(PTC3); InterruptIn s3(PTC12); - +int A=1, M=1, T=1, L=1, gE=1;; +int aH=A, mH = M, tH = T, lH = L; + int main() { using namespace std; - - float onTime = 1.0; - // float offTime = 0.0; - float holdTime = 1.0; - int magX = 0, magY = 0, magZ = 0; - + int count_acc = 1, count_mag = 1, count_light = 1, count_touch = 1, available = 0; + int extra_light =0, extra_touch =0, extra_mag =0, extra_acc =0; + + int magX = 0, magY = 0, magZ = 0; + magMeter.getValues(&magX, &magY, &magZ); + + float holdTime = 5.0; + // acc.attach(&Acc, 0.010); +// mag.attach(&Mag, 0.010); +// light.attach(&Light, 0.010); + + while(1) { - - rled = onTime - abs(acc.getAccX()); - gled = onTime - abs(acc.getAccY()); - mag.getValues(&magX, &magY, &magZ); + + + if(A == 1) + cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n\r" ; + if(M == 1) + cout << "M" << magMeter.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n\r"; + if(L == 1) + cout << "L" << lightSensor << "\n\r"; + if(T == 1) + cout << "T" << tsi.readPercentage() << "\n\r" ; + + if( count_acc != 0 || count_mag != 0 || count_light != 0 || count_touch != 0){ + available = 1; + extra_acc = count_acc; + extra_mag = count_mag; + extra_light = count_light; + extra_touch = count_touch; + } + + while( available == 1){ + if (A == 1 && extra_acc > 0){ + extra_acc--; + cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n\r" ; + } + if (M == 1 && extra_mag > 0){ + extra_mag--; + cout << "M" << magMeter.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n\r"; + } + if (T == 1 && extra_touch > 0){ + extra_touch--; + cout << "T" << tsi.readPercentage() << "\n\r" ; + + } + if (L == 1 && extra_light > 0){ + extra_light--; + cout << "L" << lightSensor << "\n\r"; + } + if( extra_acc == 0 && extra_mag == 0 && extra_touch == 0 && extra_light == 0) + available = 0; + + } - cout << "MMA8451: " << acc.getAccX() << "\t" << acc.getAccY() << "\t" << acc.getAccZ() << "\n\r" << endl; - cout << "MAG3110: " << magX << "\t" << magY << "\t" << magZ << "\n\r" << endl; - cout << "MAG3110: " << mag.getHeading() << "\n\r" << endl; - wait(holdTime); - - rled = tsi.readPercentage(); - gled = tsi.readPercentage(); - - cout << "Touch: " << tsi.readPercentage() << "\n\r" << endl; - cout << "SW1: " << s1 << "\n\r" << endl; - cout << "SW3: " << s3 << "\n\r" << endl; - cout << "Light Sensor: " << lightSensor << "\n\r" << endl; - wait(holdTime); + if (pc.readable()){// +// NVIC_DisableIRQ(TIMER3_IRQn); + if(pc.getc() == 'i'){ + pc.printf("\n#######################################\n"); + pc.printf("Entered Sensor configuration Mode\n"); + pc.printf("#######################################\n"); + pc.printf("Present Active Sensors\n"); + if(A == 1) pc.printf("Acccelerometer\n"); + if(M == 1) pc.printf("Magnetometer\n"); + if(T == 1) pc.printf("Touchglider\n"); + if(L == 1) pc.printf("LightSensor\n"); + pc.printf("#######################################\n"); + pc.printf("Enable / Disable Sensors? (0-9)\n"); + pc.printf("Acccelerometer - (0-9)"); + count_acc = (int) pc.getc(); + (count_acc != '0')? A = 1: A=0; + if ( A==1 ){ + pc.printf("Acccelerometer - Enabled !\n"); +// count_acc == 1 ? count_acc = 0: count_acc-=1; + } + else + pc.printf("Acccelerometer - Disabled !\n"); + pc.printf("Magnetometer - (0-9)? "); + count_mag = (int) pc.getc(); + (count_mag != '0')? M = 1: M=0; + if ( M==1 ){ + pc.printf("Magnetometer - Enabled !\n"); + +// count_mag == 1 ? count_mag = 0: count_mag-=1; + } + else + pc.printf("Magnetometer - Disabled !\n"); + pc.printf("Touchglider - (0-9)? "); + count_touch = (int) pc.getc(); + (count_touch != '0')? T = 1: T=0; + if ( T==1 ){ + pc.printf("Touchglider - Enabled !\n"); + +// count_touch == 1 ? count_touch = 0: count_touch-=1; + } + else + pc.printf("Touchglider - Disabled !\n"); + pc.printf("LightSensor - (0-9)? "); + count_light = (int) pc.getc(); + (count_light != '0')? L = 1: L=0; + if ( L==1 ){ + pc.printf("LightSensor - Enabled !\n"); + +// count_light == 1 ? count_light = 0: count_light-=1; + } + else + pc.printf("LightSensor - Disabled !\n"); + } + } } }