lab3

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 
00004 Serial pc(D1, D0);
00005 
00006 DigitalOut gsled0(D2);
00007 DigitalOut gsled1(D3);
00008 DigitalOut gsled2(D4);
00009 DigitalOut gsled3(D5);
00010 DigitalOut gsled4(D6);
00011 DigitalOut gsled5(D7);
00012 DigitalOut gsled6(D8);
00013 DigitalOut gsled7(D9);
00014 DigitalIn sw_in1(D10);
00015 DigitalIn sw_in2(D11);
00016 DigitalIn sw_in3(D12);
00017 int switchled;
00018 int x =0;
00019 
00020 void ledout(){
00021    if(switchled==1){
00022              gsled0 = 1;
00023              wait(0.1);
00024              gsled1 = 1;
00025              wait(0.1);
00026              gsled2 = 1;
00027              wait(0.1);
00028              gsled3 = 1;
00029              wait(0.1);
00030              gsled4 = 1;
00031              wait(0.1);
00032              gsled5 = 1;
00033              wait(0.1);
00034              gsled6 = 1;
00035              wait(0.1);
00036              gsled7 = 1;
00037              wait(0.1);
00038              gsled7 = 0;
00039              wait(0.1);
00040              gsled6 = 0;
00041              wait(0.1);
00042              gsled5 = 0;
00043              wait(0.1);
00044              gsled4 = 0;
00045              wait(0.1);
00046              gsled3 = 0;
00047              wait(0.1);
00048              gsled2 = 0;
00049              wait(0.1);
00050              gsled1 = 0;
00051              wait(0.1);
00052              gsled0 = 0;
00053              wait(0.1);
00054              }
00055        
00056     else if(switchled==2){
00057              gsled0 = 1;
00058              gsled7 = 1;
00059              wait(0.1);
00060              gsled0 = 0;
00061              gsled7 = 0;
00062              gsled1 = 1;
00063              gsled6 = 1;
00064              wait(0.1);
00065              gsled1 = 0;
00066              gsled6 = 0;
00067              gsled2 = 1;
00068              gsled5 = 1;
00069              wait(0.1);
00070              gsled2 = 0;
00071              gsled5 = 0;
00072              gsled3 = 1;
00073              gsled4 = 1;
00074              wait(0.1);
00075              gsled3 = 0;
00076              gsled4 = 0;
00077         }
00078         else if(switchled==3){
00079              gsled0 = 1;
00080              wait(0.2);
00081              gsled0 = 0;
00082              wait(0.3);
00083              gsled0 = 1;
00084              gsled1 = 1;
00085              wait(0.2);
00086              gsled0 = 0;
00087              gsled1 = 0;
00088              wait(0.3);
00089              gsled0 = 1;
00090              gsled1 = 1;
00091              gsled2 = 1;
00092              wait(0.2);
00093              gsled0 = 0;
00094              gsled1 = 0;
00095              gsled2 = 0;
00096              wait(0.3);
00097              gsled0 = 1;
00098              gsled1 = 1;
00099              gsled2 = 1;
00100              gsled3 = 1;
00101              wait(0.2);
00102              gsled0 = 0;
00103              gsled1 = 0;
00104              gsled2 = 0;
00105              gsled3 = 0;
00106              wait(0.3);
00107              gsled0 = 1;
00108              gsled1 = 1;
00109              gsled2 = 1;
00110              gsled3 = 1;
00111              gsled4 = 1;
00112              wait(0.2);
00113              gsled0 = 0;
00114              gsled1 = 0;
00115              gsled2 = 0;
00116              gsled3 = 0;
00117              gsled4 = 0;
00118              wait(0.3);
00119              gsled0 = 1;
00120              gsled1 = 1;
00121              gsled2 = 1;
00122              gsled3 = 1;
00123              gsled4 = 1;
00124              gsled5 = 1;
00125              wait(0.2);
00126              gsled0 = 0;
00127              gsled1 = 0;
00128              gsled2 = 0;
00129              gsled3 = 0;
00130              gsled4 = 0;
00131              gsled5 = 0;
00132              wait(0.3);
00133              gsled0 = 1;
00134              gsled1 = 1;
00135              gsled2 = 1;
00136              gsled3 = 1;
00137              gsled4 = 1;
00138              gsled5 = 1;
00139              gsled6 = 1;
00140              wait(0.2);
00141              gsled0 = 0;
00142              gsled1 = 0;
00143              gsled2 = 0;
00144              gsled3 = 0;
00145              gsled4 = 0;
00146              gsled5 = 0;
00147              gsled6 = 0;
00148              wait(0.3);
00149              gsled0 = 1;
00150              gsled1 = 1;
00151              gsled2 = 1;
00152              gsled3 = 1;
00153              gsled4 = 1;
00154              gsled5 = 1;
00155              gsled6 = 1;
00156              gsled7 = 1;
00157              wait(0.2);
00158              gsled0 = 0;
00159              gsled1 = 0;
00160              gsled2 = 0;
00161              gsled3 = 0;
00162              gsled4 = 0;
00163              gsled5 = 0;
00164              gsled6 = 0;
00165              gsled7 = 0;
00166              wait(0.1);
00167 
00168         }
00169         else {
00170              gsled0 = 0;
00171              gsled1 = 0;
00172              gsled2 = 0;
00173              gsled3 = 0;
00174              gsled4 = 0;
00175              gsled5 = 0;
00176              gsled6 = 0;
00177              gsled7 = 0;
00178         }
00179    
00180 }
00181 
00182 
00183 int main()
00184 {
00185 
00186     uint8_t state_menu=0;
00187     uint8_t state_show=0;
00188     uint8_t state_exit =0;
00189     uint8_t data;
00190   
00191     while(1) {
00192         if(state_show == 0) {
00193             pc.printf("************\n");
00194             pc.printf("   MENU   \n");
00195             pc.printf("************\n");
00196             pc.printf("1.PLAY LED \n");
00197             pc.printf("2.READ SWITCH\n");
00198             state_show =1;
00199         }
00200         if(pc.readable()) {
00201             data = pc.getc();
00202             pc.printf("\n");
00203             state_show =0;
00204             state_exit =0;
00205 
00206             switch(data) {
00207                 case '1':
00208                     do {
00209                             if(state_menu == 0) {
00210                                 pc.printf("PLAY LED\n");
00211                                 pc.printf("a.Pattern1\n");
00212                                 pc.printf("d.Pattern2\n");
00213                                 pc.printf("s.Pattern3 and Exit\n");
00214                                 state_menu = 1;
00215                             }
00216                             
00217                         if(pc.readable()) {
00218                             data = pc.getc();
00219                             pc.printf("\n");
00220                             state_menu=0;
00221 
00222                             switch(data) {
00223 
00224                                 case 'a':
00225                                     pc.printf("-->Pattern1<-- \n\n");
00226                                     switchled = 1;
00227                                     ledout();                         
00228                                     break;
00229 
00230                                 case 'd':
00231                                     pc.printf("-->pattern2<-- \n\n");
00232                                     switchled = 2;
00233                                     ledout();   
00234                                     break;
00235 
00236                                 case 's':
00237                                     pc.printf("-->pattern3 and exit<-- \n\n");
00238                                     switchled = 3;
00239                                     ledout();
00240                                     state_exit =1;   
00241                                     break;
00242                                 default:
00243                                     state_menu=0;
00244                                     break;
00245                             }
00246                         }
00247                     } while(state_exit ==0); 
00248                     pc.printf("\n");
00249                     break;
00250 
00251                 case '2':
00252 
00253                     do {
00254                         if(state_menu == 0) {
00255                             pc.printf("Switch 1 status %d\n",sw_in1.read());
00256                             pc.printf("Switch 2 status %d\n",sw_in2.read());
00257                             pc.printf("Switch 3 status %d\n",sw_in3.read());
00258                             state_menu = 1;
00259                             state_exit =1;
00260                             state_show =0; 
00261                             
00262                         }
00263                         if(pc.readable()) {
00264                             data = pc.getc();
00265                             pc.printf("\n");
00266                             state_menu=0;
00267                         }
00268                         default:
00269                             state_menu=0;
00270                             break;
00271             }
00272             while(state_exit ==0);
00273                     pc.printf("\n");
00274                     break;
00275 
00276             }
00277         }
00278     }
00279 }
00280