reads the sensor data
Dependencies: MAG3110 MMA8451Q SLCD TSI mbed-src
Fork of KL46Z by
main.cpp
00001 #include "mbed.h" 00002 #include "TSISensor.h" 00003 #include "MMA8451Q.h" 00004 #include "MAG3110.h" 00005 #include <cstdlib> 00006 #include <iostream> 00007 00008 00009 00010 00011 Serial pc(USBTX, USBRX); 00012 00013 TSISensor tsi; 00014 MMA8451Q acc51(PTE25, PTE24, 0x1D<<1); 00015 MAG3110 mag(PTE25, PTE24, 0x0E<<1); 00016 00017 PwmOut rled(PTE29); 00018 PwmOut gled(PTD5); 00019 AnalogIn lightSensor(PTE22); 00020 InterruptIn s1(PTC3); 00021 InterruptIn s3(PTC12); 00022 00023 int base_rate=100; 00024 int A=1, M=1, T=1, L=1, gE=1;; 00025 int aH=base_rate, mH = base_rate, tH = base_rate, lH = base_rate; 00026 Timer t; 00027 int counter; 00028 00029 00030 int main() 00031 { 00032 using namespace std; 00033 int count_acc = 1, count_mag = 1, count_light = 1, count_touch = 1, available = 0; 00034 // int extra_light =0, extra_touch =0, extra_mag =0, extra_acc =0; 00035 00036 int magX = 0, magY = 0, magZ = 0; 00037 mag.getValues(&magX, &magY, &magZ); 00038 00039 float holdTime = 5.0; 00040 // acc.attach(&Acc, 0.010); 00041 // mag.attach(&Mag, 0.010); 00042 // light.attach(&Light, 0.010); 00043 00044 t.start(); 00045 while(1) { 00046 mag.getValues(&magX, &magY, &magZ); 00047 counter = t.read_ms(); 00048 if(A == 1 && counter%(aH+1) == aH) 00049 cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n" ; 00050 if(M == 1 && counter%(mH+1) == mH) 00051 cout << "M" << mag.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n"; 00052 if(L == 1 && counter%(lH+1) == lH) 00053 cout << "L" << lightSensor << "\n"; 00054 if(T == 1 && counter%(tH+1) == tH) 00055 cout << "T" << tsi.readPercentage() << "\n" ; 00056 // cout <<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\r"; 00057 //if( count_acc != 0 || count_mag != 0 || count_light != 0 || count_touch != 0){ 00058 // available = 1; 00059 // extra_acc = count_acc; 00060 // extra_mag = count_mag; 00061 // extra_light = count_light; 00062 // extra_touch = count_touch; 00063 // } 00064 // 00065 // while( available == 1){ 00066 // if (A == 1 && extra_acc > 0){ 00067 // extra_acc--; 00068 // cout << "A" << "X" << acc51.getAccX() << "Y" << acc51.getAccY() << "Z"<< acc51.getAccZ() << "\n\r" ; 00069 // } 00070 // if (M == 1 && extra_mag > 0){ 00071 // extra_mag--; 00072 // cout << "M" << magMeter.getHeading() << "X" << magX << "Y" << magY << "Z" << magZ << "\n\r"; 00073 // } 00074 // if (T == 1 && extra_touch > 0){ 00075 // extra_touch--; 00076 // cout << "T" << tsi.readPercentage() << "\n\r" ; 00077 // 00078 // } 00079 // if (L == 1 && extra_light > 0){ 00080 // extra_light--; 00081 // cout << "L" << lightSensor << "\n\r"; 00082 // } 00083 // if( extra_acc == 0 && extra_mag == 0 && extra_touch == 0 && extra_light == 0) 00084 // available = 0; 00085 // 00086 // } 00087 00088 if (pc.readable()){// 00089 // NVIC_DisableIRQ(TIMER3_IRQn); 00090 if(pc.getc() == 'i'){ 00091 pc.printf("\n#######################################\n"); 00092 pc.printf("Entered Sensor configuration Mode\n"); 00093 pc.printf("#######################################\n"); 00094 pc.printf("Present Active Sensors\n"); 00095 if(A == 1) pc.printf("Acccelerometer\n"); 00096 if(M == 1) pc.printf("Magnetometer\n"); 00097 if(T == 1) pc.printf("Touchglider\n"); 00098 if(L == 1) pc.printf("LightSensor\n"); 00099 pc.printf("#######################################\n"); 00100 pc.printf("Enable / Disable Sensors? (0/1)\n"); 00101 pc.printf("Acccelerometer - (0/1)\n"); 00102 count_acc = (int) pc.getc(); 00103 (count_acc != '0')? A = 1: A=0; 00104 if ( A==1 ){ 00105 pc.printf("Acccelerometer - Enabled !\n Enter the rate (Three digit number)\n"); 00106 aH=0; 00107 pc.printf(" You entered - "); 00108 for(int k=1; k<=3;k++){ 00109 aH = aH * 10 + pc.getc() - 48; 00110 pc.printf("%d",aH%10); 00111 } 00112 pc.printf("\n"); 00113 aH = 1000 / aH; 00114 // aH = count_acc; 00115 // count_acc == 1 ? count_acc = 0: count_acc-=1; 00116 } 00117 else 00118 pc.printf("Acccelerometer - Disabled !\n"); 00119 pc.printf("Magnetometer - (0/1)? \n"); 00120 count_mag = (int) pc.getc(); 00121 (count_mag != '0')? M = 1: M=0; 00122 if ( M==1 ){ 00123 pc.printf("Magnetometer - Enabled !\n Enter the rate (Three digit number)\n"); 00124 mH=0; 00125 pc.printf(" You entered - "); 00126 for(int k=1; k<=3;k++){ 00127 mH = mH * 10 + pc.getc() - 48; 00128 pc.printf("%d",mH%10); 00129 } 00130 pc.printf("\n"); 00131 mH = 1000/mH; 00132 // cout << "MH = " << mH << "\n\r"; 00133 // mH = base_rate/ count_mag; 00134 00135 // count_mag == 1 ? count_mag = 0: count_mag-=1; 00136 } 00137 else 00138 pc.printf("Magnetometer - Disabled !\n"); 00139 pc.printf("Touchglider - (0/1)? \n"); 00140 count_touch = (int) pc.getc(); 00141 (count_touch != '0')? T = 1: T=0; 00142 if ( T==1 ){ 00143 pc.printf("Touchglider - Enabled !\n Enter the rate (Three digit number)\n"); 00144 tH=0; 00145 pc.printf(" You entered - "); 00146 for(int k=1; k<=3;k++){ 00147 tH = tH * 10 + pc.getc() - 48; 00148 pc.printf("%d",tH%10); 00149 } 00150 pc.printf("\n"); 00151 tH = 1000 / tH; 00152 // tH = base_rate/ count_touch ; 00153 // count_touch == 1 ? count_touch = 0: count_touch-=1; 00154 } 00155 else 00156 pc.printf("Touchglider - Disabled !\n"); 00157 pc.printf("LightSensor - (0/1)? \n"); 00158 count_light = (int) pc.getc(); 00159 (count_light != '0')? L = 1: L=0; 00160 if ( L==1 ){ 00161 pc.printf("LightSensor - Enabled !\n Enter the rate (Three digit number)\n"); 00162 lH=0; 00163 pc.printf(" You entered - "); 00164 for(int k=1; k<=3;k++){ 00165 lH = lH * 10 + pc.getc() - 48; 00166 pc.printf("%d",lH%10); 00167 } 00168 pc.printf("\n"); 00169 lH = 1000 / lH; 00170 // pc.printf("LH = %d",lH); 00171 // count_light == 1 ? count_light = 0: count_light-=1; 00172 } 00173 else 00174 pc.printf("LightSensor - Disabled !\n"); 00175 } 00176 } 00177 } 00178 }
Generated on Mon Jul 18 2022 17:38:26 by 1.7.2