LED Serial program -- listens for serial input to control the 4 built in LEDS. Packets are of the type \'S_ _ _ _\' (e.g. S0101 to turn on LEDs 2 and 4).
main.cpp
00001 #include "mbed.h" 00002 00003 // Variables 00004 DigitalOut led1(LED1); 00005 DigitalOut led2(LED2); 00006 DigitalOut led3(LED3); 00007 DigitalOut led4(LED4); 00008 Serial pc(USBTX, USBRX); 00009 Timer t; 00010 int secTimer; 00011 00012 int main() { 00013 // set up 00014 pc.baud(38400); 00015 led1 = 0; 00016 led2 = 0; 00017 led3 = 0; 00018 led4 = 0; 00019 t.start(); 00020 secTimer = t.read_ms(); 00021 // serial reading variables 00022 char temp; 00023 00024 while(1) { 00025 // check serial 00026 if(pc.readable()){ 00027 temp = pc.getc(); 00028 if(temp == 'S'){ 00029 // valid packet, continue parsing 00030 while(!pc.readable()); 00031 temp = pc.getc(); // led1 00032 if(temp == '1'){ 00033 led1 = 1; 00034 }else if(temp == '0'){ 00035 led1 = 0; 00036 } 00037 while(!pc.readable()); 00038 temp = pc.getc(); // led2 00039 if(temp == '1'){ 00040 led2 = 1; 00041 }else if(temp == '0'){ 00042 led2 = 0; 00043 } 00044 while(!pc.readable()); 00045 temp = pc.getc(); // led3 00046 if(temp == '1'){ 00047 led3 = 1; 00048 }else if(temp == '0'){ 00049 led3 = 0; 00050 } 00051 while(!pc.readable()); 00052 temp = pc.getc(); // led4 00053 if(temp == '1'){ 00054 led4 = 1; 00055 }else if(temp == '0'){ 00056 led4 = 0; 00057 } 00058 00059 } 00060 }//end of parsing 00061 00062 //relay status of LEDs to server, in case LEDs weren't set 00063 if((t.read_ms()- secTimer) > 1000){ 00064 secTimer = t.read_ms(); 00065 pc.putc('S'); 00066 if(led1.read() == 1){ 00067 pc.putc('1'); 00068 }else{ 00069 pc.putc('0'); 00070 } 00071 if(led2.read() == 1){ 00072 pc.putc('1'); 00073 }else{ 00074 pc.putc('0'); 00075 } 00076 if(led3.read() == 1){ 00077 pc.putc('1'); 00078 }else{ 00079 pc.putc('0'); 00080 } 00081 if(led4.read() == 1){ 00082 pc.putc('1'); 00083 }else{ 00084 pc.putc('0'); 00085 } 00086 } 00087 }//end of infinite loop 00088 00089 }//end of main
Generated on Mon Jul 25 2022 20:42:27 by 1.7.2