Sensor reporting over USB CDC

Dependencies:   MAG3110 MMA8451Q SLCD- TSI USBDevice mbed

Committer:
wue
Date:
Wed Apr 16 12:20:12 2014 +0000
Revision:
0:7b58cdacf811
Sensor reporting over USB CDC

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wue 0:7b58cdacf811 1 //USB Academy - Lab2 rev 00
wue 0:7b58cdacf811 2 //_____________________________________________________________//
wue 0:7b58cdacf811 3 //======== INCLUDES ===========================================//
wue 0:7b58cdacf811 4 //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯//
wue 0:7b58cdacf811 5 #include "mbed.h"
wue 0:7b58cdacf811 6 #include "MMA8451Q.h"
wue 0:7b58cdacf811 7 //#include "MAG3110.h"
wue 0:7b58cdacf811 8 //#include "SLCD.h"
wue 0:7b58cdacf811 9 //#include "TSISensor.h"
wue 0:7b58cdacf811 10
wue 0:7b58cdacf811 11 //#include "USBMouse.h" //Lab1-Hid
wue 0:7b58cdacf811 12 //#include "USBSerial.h" //Lab2-cdc
wue 0:7b58cdacf811 13 //#include "USBHostMSD.h" //Lab3-Msd
wue 0:7b58cdacf811 14
wue 0:7b58cdacf811 15
wue 0:7b58cdacf811 16
wue 0:7b58cdacf811 17
wue 0:7b58cdacf811 18
wue 0:7b58cdacf811 19 //_____________________________________________________________//
wue 0:7b58cdacf811 20 //======== DEFINES & VARIABLES ================================//
wue 0:7b58cdacf811 21 //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯//
wue 0:7b58cdacf811 22 #define LED_ON 0 //outON, pwmON
wue 0:7b58cdacf811 23 #define LED_OFF 1 //outOFF,pwmOFF
wue 0:7b58cdacf811 24 DigitalOut gLED(LED_GREEN); //PTD5
wue 0:7b58cdacf811 25
wue 0:7b58cdacf811 26 #define rLEDperiod 150 //[ms]
wue 0:7b58cdacf811 27 PwmOut rLED(LED_RED); //PTE29
wue 0:7b58cdacf811 28
wue 0:7b58cdacf811 29 #define PRESS_ON 0
wue 0:7b58cdacf811 30 #define PRESS_OFF 1
wue 0:7b58cdacf811 31 DigitalIn sw1(PTC3); //if(sw1) Release else Press
wue 0:7b58cdacf811 32 DigitalIn sw3(PTC12); //while(sw3); wait for Press
wue 0:7b58cdacf811 33
wue 0:7b58cdacf811 34 #define MMA8451_I2C_ADDRESS (0x1d<<1)
wue 0:7b58cdacf811 35 MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
wue 0:7b58cdacf811 36
wue 0:7b58cdacf811 37 struct KL46_SENSOR_DATA {
wue 0:7b58cdacf811 38 int sw1State;
wue 0:7b58cdacf811 39 int sw3State;
wue 0:7b58cdacf811 40 float accValX;
wue 0:7b58cdacf811 41 float accValY;
wue 0:7b58cdacf811 42 float accValZ;
wue 0:7b58cdacf811 43 } sensorData;
wue 0:7b58cdacf811 44 #define sD sensorData
wue 0:7b58cdacf811 45
wue 0:7b58cdacf811 46
wue 0:7b58cdacf811 47
wue 0:7b58cdacf811 48
wue 0:7b58cdacf811 49 //_____________________________________________________________//
wue 0:7b58cdacf811 50 //======== MAIN() =============================================//
wue 0:7b58cdacf811 51 //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯//
wue 0:7b58cdacf811 52 int main(void)
wue 0:7b58cdacf811 53 {
wue 0:7b58cdacf811 54 //---- MAIN/Inits -----------------------------------------//
wue 0:7b58cdacf811 55
wue 0:7b58cdacf811 56 sw1.mode(PullUp);
wue 0:7b58cdacf811 57 sw3.mode(PullUp);
wue 0:7b58cdacf811 58
wue 0:7b58cdacf811 59 gLED = LED_ON; //Green LED ON to indicate running/writing
wue 0:7b58cdacf811 60 rLED = LED_OFF; //Red LED OFF
wue 0:7b58cdacf811 61 rLED.period(rLEDperiod); //Red LED (rLED) tsi/accZ/mag
wue 0:7b58cdacf811 62
wue 0:7b58cdacf811 63 //---- MAIN/Inits (Wait4SW1) -> Start! --------------------//
wue 0:7b58cdacf811 64
wue 0:7b58cdacf811 65 //---- MAIN/Inits Interface -------------------------------//
wue 0:7b58cdacf811 66
wue 0:7b58cdacf811 67 //---- MAIN/Inits Labs ------------------------------------//
wue 0:7b58cdacf811 68
wue 0:7b58cdacf811 69 //---- MAIN/Inits (Wait4SW1) -> Calib. eCompass -----------//
wue 0:7b58cdacf811 70
wue 0:7b58cdacf811 71 //---- MAIN/Inits Done! (Wait4SW1) -> MANI/Loop -----------//
wue 0:7b58cdacf811 72
wue 0:7b58cdacf811 73 gLED = LED_OFF; //Inits are done
wue 0:7b58cdacf811 74
wue 0:7b58cdacf811 75 //---- MAIN/Loop -----------------------------------------//
wue 0:7b58cdacf811 76 while (1) {
wue 0:7b58cdacf811 77
wue 0:7b58cdacf811 78 // MAIN/Loop/Sensing and Storing data -----------------//
wue 0:7b58cdacf811 79 sD.sw1State = sw1; sD.sw3State = sw3;
wue 0:7b58cdacf811 80 sD.accValX = acc.getAccX(); //accX[-1..1]->mouse (Lab1)
wue 0:7b58cdacf811 81 sD.accValY = acc.getAccY(); //accY[-1..1]->mouse (Lab1)
wue 0:7b58cdacf811 82 sD.accValZ = acc.getAccZ(); //accZ[-1..1]->rLED
wue 0:7b58cdacf811 83
wue 0:7b58cdacf811 84 // MAIN/Loop/Processing and Actions -------------------//
wue 0:7b58cdacf811 85
wue 0:7b58cdacf811 86 //acc: z-axis 1g min-blinking//acc: z-axis 1g min-blinking
wue 0:7b58cdacf811 87 rLED = abs(sD.accValZ);
wue 0:7b58cdacf811 88
wue 0:7b58cdacf811 89 wait(0.05); //wait 50ms
wue 0:7b58cdacf811 90 }
wue 0:7b58cdacf811 91 }
wue 0:7b58cdacf811 92
wue 0:7b58cdacf811 93
wue 0:7b58cdacf811 94
wue 0:7b58cdacf811 95
wue 0:7b58cdacf811 96
wue 0:7b58cdacf811 97 //_____________________________________________________________//
wue 0:7b58cdacf811 98 //======== FUNC() =============================================//
wue 0:7b58cdacf811 99 //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯//
wue 0:7b58cdacf811 100