Sensor reporting over USB CDC
Dependencies: MAG3110 MMA8451Q SLCD- TSI USBDevice mbed
main_lab2a_begin.txt@0:7b58cdacf811, 2014-04-16 (annotated)
- 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?
User | Revision | Line number | New 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 |