l

Dependencies:   mbed

Fork of Nucleo_serial_sf by PuG

Revision:
3:a46061896235
Parent:
2:e06d96952cef
Child:
4:eae42fe39107
--- a/main.cpp	Sun Oct 25 06:18:39 2015 +0000
+++ b/main.cpp	Mon Oct 26 03:32:41 2015 +0000
@@ -18,6 +18,103 @@
 
 DigitalIn inbutton(D3);
 
+int checkState()
+{
+    data = pc.getc();
+    if(data=='s'||data='S') return 1;
+    else if(data=='a'||data='A') return 2;
+    else (data=='d'||data='D') return 3;
+    else return 0;
+}
+
+void pattern1()
+{
+    uint8_t check;
+    while(1){
+        myled0=1;
+        wait(1);
+        myled0=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled1=1;
+        wait(1);
+        myled1=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled2=1;
+        wait(1);
+        myled2=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled3=1;
+        wait(1);
+        myled3=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled4=1;
+        wait(1);
+        myled4=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled5=1;
+        wait(1);
+        myled5=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled6=1;
+        wait(1);
+        myled6=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled7=1;
+        wait(1);
+        myled7=0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+    }
+    pattern2();
+}
+
+void pattern2()
+{
+    uint8_t check;
+    while(1) {
+        myled0 =1;
+        myled1 =1;
+        myled4 =1;
+        myled5 =1;
+        wait(1);
+        myled0 =0;
+        myled1 =0;
+        myled4 =0;
+        myled5 =0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        myled2 =1;
+        myled3 =1;
+        myled6 =1;
+        myled7 =1;
+        wait(1);
+        myled2 =0;
+        myled3 =0;
+        myled6 =0;
+        myled7 =0;
+        check=checkState();
+        if(check==1) return 1;
+        else if(check==3) break;
+        }
+        pattern1();
+}
+
 
 int main()
 {
@@ -25,9 +122,17 @@
     uint8_t state_menu=0;
     uint8_t state_show=0;
     uint8_t state_exit =0;
+    uint8_t state_LED =0;
     uint8_t data;
 
-    myled0 = 0;myled1 = 0;myled2 = 0;myled3 = 0;myled4 = 0;myled5 = 0;myled6 = 0;myled7 = 0;
+    myled0 = 0;
+    myled1 = 0;
+    myled2 = 0;
+    myled3 = 0;
+    myled4 = 0;
+    myled5 = 0;
+    myled6 = 0;
+    myled7 = 0;
     pc.printf("Select Mode\n");
     while(1) {
         if(state_show == 0) {
@@ -56,66 +161,17 @@
                             data = pc.getc();
                             pc.printf("\n");
                             state_menu=0;
-                       
-                                    if(data=='a'||data='A')
-                                    {
-                                      myled0=1;
-                                    wait(1);
-                                    myled0=0;
-                                    
-                                    myled1=1;
-                                    wait(1);
-                                    myled1=0;
-                                    
-                                    myled2=1;
-                                    wait(1);
-                                    myled2=0;
-   
-                                    myled3=1;
-                                    wait(1);
-                                    myled3=0;
-                                    
-                                    myled4=1;
-                                    wait(1);
-                                    myled4=0;
-                                    
-                                    myled5=1;
-                                    wait(1);
-                                    myled5=0;
-                                    
-                                    myled6=1;
-                                    wait(1);
-                                    myled6=0;
-                                    
-                                    myled7=1;
-                                    wait(1);
-                                    myled7=0;  
-                                    }
-                                    if(data=='d'||data=='D')
-                                    {
-                                    myled0 =1;
-                                    myled1 =1;
-                                    myled4 =1;
-                                    myled5 =1;
-                                    wait(1);
-                                    myled0 =0;
-                                    myled1 =0;
-                                    myled4 =0;
-                                    myled5 =0;
-                                    
-                                    myled2 =1;
-                                    myled3 =1;
-                                    myled6 =1;
-                                    myled7 =1;
-                                    wait(1);
-                                    myled2 =0;
-                                    myled3 =0;
-                                    myled6 =0;
-                                    myled7 =0;
-                                    }
 
+                            if(data=='a'||data='A') {
+                                pattern1();
                             }
-                        
+                            if(data=='d'||data=='D') {
+                                pattern2();
+                            }
+                            if(data=='s'||data=='S') {
+                                state_exit = 1;
+                            }
+                        }
 
                     } while(state_exit ==0);
                     pc.printf("\n");
@@ -123,22 +179,19 @@
 
                 case '2':
 
-                        if(state_menu == 0) 
-                        {
-                            pc.printf("LED status\n");
-                            state_menu = 1;
-                        }
-                        if(inbutton == 0) 
-                        {
-                            pc.printf("OFF\n");
-                            state_menu=1;
-                        }
-                        if(inbutton == 1) 
-                        {
-                            pc.printf("ON\n");
-                            state_menu=1;
-                        }
-                        
+                    if(state_menu == 0) {
+                        pc.printf("LED status\n");
+                        state_menu = 1;
+                    }
+                    if(inbutton == 0) {
+                        pc.printf("OFF\n");
+                        state_menu=1;
+                    }
+                    if(inbutton == 1) {
+                        pc.printf("ON\n");
+                        state_menu=1;
+                    }
+
                     pc.printf("\n\n");
                     break;