Control the LEDs on your mBed by pressing keys on your keyboard. Good for testing LEDs and Serial Port.

Dependencies:   mbed

Committer:
fox_hound_33
Date:
Thu Nov 04 17:52:46 2010 +0000
Revision:
0:0a65cdf1e0aa

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fox_hound_33 0:0a65cdf1e0aa 1 /*Control mBed LEDs via Serial Port of PC.
fox_hound_33 0:0a65cdf1e0aa 2 -->By Kailash.P.Sivanesan, Nov 5th 2010.
fox_hound_33 0:0a65cdf1e0aa 3
fox_hound_33 0:0a65cdf1e0aa 4 Use Hyperterminal (or RealTerm or your favorite terminal program) to read and write data to your mBed board.
fox_hound_33 0:0a65cdf1e0aa 5
fox_hound_33 0:0a65cdf1e0aa 6 Pressing 1 on keyboard toggles first LED.
fox_hound_33 0:0a65cdf1e0aa 7 Pressing 2 on keyboard toggles second LED.
fox_hound_33 0:0a65cdf1e0aa 8 Pressing 3 on keyboard toggles third LED.
fox_hound_33 0:0a65cdf1e0aa 9 Pressing 4 on keyboard toggles fourth LED.
fox_hound_33 0:0a65cdf1e0aa 10
fox_hound_33 0:0a65cdf1e0aa 11 Pressing any other key on keyboard turns all LEDs off.
fox_hound_33 0:0a65cdf1e0aa 12
fox_hound_33 0:0a65cdf1e0aa 13 For info on Serial Port settings, driver etc:
fox_hound_33 0:0a65cdf1e0aa 14 http://mbed.org/handbook/Windows-serial-configuration
fox_hound_33 0:0a65cdf1e0aa 15 http://mbed.org/handbook/Serial
fox_hound_33 0:0a65cdf1e0aa 16 */
fox_hound_33 0:0a65cdf1e0aa 17
fox_hound_33 0:0a65cdf1e0aa 18 #include "mbed.h"
fox_hound_33 0:0a65cdf1e0aa 19
fox_hound_33 0:0a65cdf1e0aa 20 DigitalOut myled1(LED1);
fox_hound_33 0:0a65cdf1e0aa 21 DigitalOut myled2(LED2);
fox_hound_33 0:0a65cdf1e0aa 22 DigitalOut myled3(LED3);
fox_hound_33 0:0a65cdf1e0aa 23 DigitalOut myled4(LED4);
fox_hound_33 0:0a65cdf1e0aa 24
fox_hound_33 0:0a65cdf1e0aa 25 Serial pc(USBTX, USBRX);
fox_hound_33 0:0a65cdf1e0aa 26
fox_hound_33 0:0a65cdf1e0aa 27 void DecodeInput(char input);
fox_hound_33 0:0a65cdf1e0aa 28 void OffAllLeds(void);
fox_hound_33 0:0a65cdf1e0aa 29
fox_hound_33 0:0a65cdf1e0aa 30 int main() {
fox_hound_33 0:0a65cdf1e0aa 31 char input = 'Z';
fox_hound_33 0:0a65cdf1e0aa 32 pc.printf("Looking for Serial Input...\r\n"); //Inform user that i am alive
fox_hound_33 0:0a65cdf1e0aa 33
fox_hound_33 0:0a65cdf1e0aa 34 while(1){
fox_hound_33 0:0a65cdf1e0aa 35 input = pc.getc(); //Get user input
fox_hound_33 0:0a65cdf1e0aa 36 pc.printf("Received: %c\r\n", input);
fox_hound_33 0:0a65cdf1e0aa 37 DecodeInput(input); //Take action based on user input
fox_hound_33 0:0a65cdf1e0aa 38 }
fox_hound_33 0:0a65cdf1e0aa 39 }
fox_hound_33 0:0a65cdf1e0aa 40
fox_hound_33 0:0a65cdf1e0aa 41 void DecodeInput(char input)
fox_hound_33 0:0a65cdf1e0aa 42 {
fox_hound_33 0:0a65cdf1e0aa 43 switch(input)
fox_hound_33 0:0a65cdf1e0aa 44 {
fox_hound_33 0:0a65cdf1e0aa 45 case '1': myled1 = !myled1.read();
fox_hound_33 0:0a65cdf1e0aa 46 break;
fox_hound_33 0:0a65cdf1e0aa 47 case '2': myled2 = !myled2.read();
fox_hound_33 0:0a65cdf1e0aa 48 break;
fox_hound_33 0:0a65cdf1e0aa 49 case '3': myled3 = !myled3.read();
fox_hound_33 0:0a65cdf1e0aa 50 break;
fox_hound_33 0:0a65cdf1e0aa 51 case '4': myled4 = !myled4.read();
fox_hound_33 0:0a65cdf1e0aa 52 break;
fox_hound_33 0:0a65cdf1e0aa 53 default: OffAllLeds();
fox_hound_33 0:0a65cdf1e0aa 54 break;
fox_hound_33 0:0a65cdf1e0aa 55 }
fox_hound_33 0:0a65cdf1e0aa 56 }
fox_hound_33 0:0a65cdf1e0aa 57
fox_hound_33 0:0a65cdf1e0aa 58 void OffAllLeds()
fox_hound_33 0:0a65cdf1e0aa 59 {
fox_hound_33 0:0a65cdf1e0aa 60 myled1 = 0;
fox_hound_33 0:0a65cdf1e0aa 61 myled2 = 0;
fox_hound_33 0:0a65cdf1e0aa 62 myled3 = 0;
fox_hound_33 0:0a65cdf1e0aa 63 myled4 = 0;
fox_hound_33 0:0a65cdf1e0aa 64
fox_hound_33 0:0a65cdf1e0aa 65 return;
fox_hound_33 0:0a65cdf1e0aa 66 }