reads the sensor data

Dependencies:   MAG3110 MMA8451Q SLCD TSI mbed-src

Fork of KL46Z by JP PANG

main.cpp

Committer:
rajkiran_anthapur
Date:
2014-02-14
Revision:
5:a2c3562689b1
Parent:
4:e3770fac7512
Child:
6:9836b4dd7fbb

File content as of revision 5:a2c3562689b1:

#include "mbed.h"
#include "TSISensor.h"
#include "MMA8451Q.h"
#include "MAG3110.h"
#include <cstdlib>
#include <iostream>




Serial pc(USBTX, USBRX);

TSISensor tsi;
MMA8451Q acc51(PTE25, PTE24, 0x1D<<1);
MAG3110 magMeter(PTE25, PTE24, 0x0E<<1);

PwmOut rled(PTE29);
PwmOut gled(PTD5);
AnalogIn lightSensor(PTE22);
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;
    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) {
        
        
        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;
            
        }

         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");
             }
        }
    }
}