reads the sensor data

Dependencies:   MAG3110 MMA8451Q SLCD TSI mbed-src

Fork of KL46Z by JP PANG

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?

UserRevisionLine numberNew 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 }