fastest sampling rate

Dependencies:   mbed

mbed_fastest_rate.cpp

Committer:
TimeString
Date:
2014-02-03
Revision:
0:459f1731fa6a

File content as of revision 0:459f1731fa6a:

#include "mbed.h"
#include "MMA8451Q.h"
#include "MAG3110.h"
#include "SLCD.h"
#include "TSISensor.h"

#define MMA8451_I2C_ADDRESS (0x1d << 1)
#define MAG3110_I2C_ADDRESS (0x0e << 1)

Serial pc(USBTX, USBRX);
MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
MAG3110 mag(PTE25, PTE24, MAG3110_I2C_ADDRESS);
AnalogIn lightSensor(PTE22);
DigitalOut myled(LED1);
DigitalOut myled2(LED2);
Timer t;
SLCD slcd;
TSISensor tsi;

int main() {
    while (true) {
        slcd.printf("   1");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            acc.getAccX();
        }
        t.stop();
        pc.printf("AccX 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   2");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            acc.getAccY();
        }
        t.stop();
        pc.printf("AccY 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   3");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            acc.getAccZ();
        }
        t.stop();
        pc.printf("AccZ 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   4");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            acc.getAccX();
            acc.getAccY();
            acc.getAccZ();
        }
        t.stop();
        pc.printf("AccXYZ together 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   5");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            mag.readVal(MAG_OUT_X_MSB);
        }
        t.stop();
        pc.printf("magX 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   6");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            mag.readVal(MAG_OUT_Y_MSB);
        }
        t.stop();
        pc.printf("magY 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   7");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            mag.readVal(MAG_OUT_Z_MSB);
        }
        t.stop();
        pc.printf("magZ 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   8");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            mag.readVal(MAG_OUT_X_MSB);
            mag.readVal(MAG_OUT_Y_MSB);
            mag.readVal(MAG_OUT_Z_MSB);
        }
        t.stop();
        pc.printf("magXYZ together 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("   9");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            double tsl = (double)(lightSensor.read());
        }
        t.stop();
        pc.printf("light sensor 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("  10");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
           tsi.readPercentage();
        }
        t.stop();
        pc.printf("touch sensor 1000 samples takes %f secs\n", t.read());
        
        slcd.printf("  99");
        t.reset();
        t.start();
        for (int i = 0; i < 1000; i++) {
            acc.getAccX();
            acc.getAccY();
            acc.getAccZ();
            mag.readVal(MAG_OUT_X_MSB);
            mag.readVal(MAG_OUT_Y_MSB);
            mag.readVal(MAG_OUT_Z_MSB);
            lightSensor.read();
            tsi.readPercentage();
        }
        t.stop();
        pc.printf("all sensors 1000 samples takes %f secs\n", t.read());
        
    }
}