reads the sensor data

Dependencies:   MAG3110 MMA8451Q SLCD TSI mbed-src

Fork of KL46Z by JP PANG

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }