kailash Prabhu
/
Ctrl_Leds_Via_Serial
Control the LEDs on your mBed by pressing keys on your keyboard. Good for testing LEDs and Serial Port.
Ctrl_Leds_via_Serial.cpp@0:0a65cdf1e0aa, 2010-11-04 (annotated)
- Committer:
- fox_hound_33
- Date:
- Thu Nov 04 17:52:46 2010 +0000
- Revision:
- 0:0a65cdf1e0aa
Who changed what in which revision?
User | Revision | Line number | New 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 | } |