Dependencies:   mbed

Revision:
2:091793a4e7ec
Parent:
0:212362d7d1f9
Child:
3:3bf1a7613e06
--- a/main.cpp	Tue Oct 13 07:13:15 2015 +0000
+++ b/main.cpp	Tue Oct 13 08:17:37 2015 +0000
@@ -1,5 +1,7 @@
 #include "mbed.h"
 
+InterruptIn trig1(D3);
+
 DigitalOut myled0(D15);
 DigitalOut myled1(D14);
 DigitalOut myled2(D13);
@@ -13,122 +15,170 @@
 DigitalIn inbutton2(D4);
 DigitalIn inbutton3(D5);
 
+#define delay 0.1
 
-int main() 
-    {
-        
-        while(1)
-        {
-        if(inbutton1==1 && inbutton2==0 && inbutton3==0)
-        
-            {
-                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(inbutton1==0 && inbutton2==1 && inbutton3==0)
-            {
-                myled3=1;
-                myled4=1;
-                wait(1);
-                myled3=0;
-                myled4=0;
-                
-                myled2=1;
-                myled5=1;
-                wait(1);
-                myled2=0;
-                myled5=0;
-                
-                myled1=1;
-                myled6=1;
-                wait(1);
-                myled1=0;
-                myled6=0;
-                
-                myled0=1;
-                myled7=1;
-                wait(1);
-                myled0=0;
-                myled7=0;
-                
-                myled0=1;
-                myled7=1;
-                wait(1);
-                myled0=0;
-                myled7=0;
-                
-                myled1=1;
-                myled6=1;
-                wait(1);
-                myled1=0;
-                myled6=0;
-                
-                myled2=1;
-                myled5=1;
-                wait(1);
-                myled2=0;
-                myled5=0;
-                
-                myled3=1;
-                myled4=1;
-                wait(1);
-                myled3=0;
-                myled4=0;
-            }
-            if(inbutton1==0 && inbutton2==0 && inbutton3==1)
-            {
-                myled0=1;
-                myled2=1;
-                myled4=1;
-                myled6=1;
-                wait(1);
-                myled0=0;
-                myled2=0;
-                myled4=0;
-                myled6=0;
-                
-                myled1=1;
-                myled3=1;
-                myled5=1;
-                myled7=1;
-                wait(1);
-                myled1=0;
-                myled3=0;
-                myled5=0;
-                myled7=0;
-                
-            }
-            else{myled0=0;myled1=0;myled2=0;myled3=0;myled4=0;myled5=0;myled6=0;myled7=0;}
-         }    
+int checkState()
+{
+    if(inbutton1==1 && inbutton2==0 && inbutton3==0) {
+        return 1;
+    }
+    if(inbutton1==0 && inbutton2==1 && inbutton3==0) {
+        return 2;
+    }
+    if(inbutton1==0 && inbutton2==0 && inbutton3==1) {
+        return 3;
+
+    } else {
+        return 0;
+    }
+}
+
+int pt1()
+{
+    myled0=1;
+    wait(delay);
+    myled0=0;
+    if(checkState()!=1) return 0;
+    myled1=1;
+    wait(delay);
+    myled1=0;
+    if(checkState()!=1) return 0;
+    myled2=1;
+    wait(delay);
+    myled2=0;
+    if(checkState()!=1) return 0;
+    myled3=1;
+    wait(delay);
+    myled3=0;
+    if(checkState()!=1) return 0;
+    myled4=1;
+    wait(delay);
+    myled4=0;
+    if(checkState()!=1) return 0;
+    myled5=1;
+    wait(delay);
+    myled5=0;
+    if(checkState()!=1) return 0;
+    myled6=1;
+    wait(delay);
+    myled6=0;
+    if(checkState()!=1) return 0;
+    myled7=1;
+    wait(delay);
+    myled7=0;
+
+    return 0;
+}
+
+int pt2()
+{
+    myled3=1;
+    myled4=1;
+    wait(delay);
+    myled3=0;
+    myled4=0;
+    if(checkState()!=2) return 0;
+    myled2=1;
+    myled5=1;
+    wait(delay);
+    myled2=0;
+    myled5=0;
+    if(checkState()!=2) return 0;
+    myled1=1;
+    myled6=1;
+    wait(delay);
+    myled1=0;
+    myled6=0;
+    if(checkState()!=2) return 0;
+    myled0=1;
+    myled7=1;
+    wait(delay);
+    myled0=0;
+    myled7=0;
+    if(checkState()!=2) return 0;
+    myled0=1;
+    myled7=1;
+    wait(delay);
+    myled0=0;
+    myled7=0;
+    if(checkState()!=2) return 0;
+    myled1=1;
+    myled6=1;
+    wait(delay);
+    myled1=0;
+    myled6=0;
+    if(checkState()!=2) return 0;
+    myled2=1;
+    myled5=1;
+    wait(delay);
+    myled2=0;
+    myled5=0;
+    if(checkState()!=2) return 0;
+    myled3=1;
+    myled4=1;
+    wait(delay);
+    myled3=0;
+    myled4=0;
+
+    return 0;
+}
+
+int pt3()
+{
+    myled0=1;
+    myled2=1;
+    myled4=1;
+    myled6=1;
+    wait(delay);
+    myled0=0;
+    myled2=0;
+    myled4=0;
+    myled6=0;
+    if(checkState()!=3) return 0;
+    myled1=1;
+    myled3=1;
+    myled5=1;
+    myled7=1;
+    wait(delay);
+    myled1=0;
+    myled3=0;
+    myled5=0;
+    myled7=0;
+    return 0;
+}
+
+void black()
+{
+    myled0=0;
+    myled1=0;
+    myled2=0;
+    myled3=0;
+    myled4=0;
+    myled5=0;
+    myled6=0;
+    myled7=0;
 }
 
 
+int main()
+{
+    //trig1.(&trigger1);
+    while(1) {
+        if(inbutton1==1 && inbutton2==0 && inbutton3==0)
+
+        {
+            pt1();
+        }
+        if(inbutton1==0 && inbutton2==1 && inbutton3==0) {
+            pt2();
+        }
+        if(inbutton1==0 && inbutton2==0 && inbutton3==1) {
+            pt3();
+
+        } else {
+            black();
+        }
+    }
+}
+
+