0508_Lab3

Dependencies:   mbed

Revision:
0:8d4673851e31
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Oct 25 11:37:36 2015 +0000
@@ -0,0 +1,117 @@
+//57340500005
+//57340500008
+// Lab 3
+// 25/10/2015
+#include "mbed.h"
+
+DigitalOut l1(D2),l2(D3),l3(D4),l4(D5),l5(D6),l6(D7),l7(D8),l8(D9);
+DigitalIn sw(D13);
+Serial pc(USBTX, USBRX);
+void mode1();
+void mode2();
+int main() 
+{
+    char x;
+    uint8_t menu=1;
+    pc.printf("\nHello World!\n");
+    while(1)
+    {
+        if(menu)
+        {
+            //print menu
+            pc.printf("MENU\nSelect mode\n1 : LED show time\n2 : Input from switch\n > ");
+            menu=0;
+        }
+        if(pc.readable())
+        {
+            x=pc.getc();
+            pc.printf("%c\n",x);
+            switch(x)
+            {
+                case '1':
+                    mode1();
+                    menu=1;
+                    break;
+                case '2':
+                    mode2();
+                    menu=1;
+                    break;
+                default:
+                    pc.printf("\nPlease Input 1 or 2 > ");
+            }
+        }
+    }
+}
+
+void mode1()
+{
+    char x;
+    uint8_t ch=0;
+    pc.printf("Input A or D (S to exit mode 1) > ");
+    do
+    {
+        if(pc.readable()||ch)
+        {
+            if(!ch)
+                x=pc.getc();
+            pc.printf("%c\n",x);
+            if(x!='a'&&x!='A'&&x!='d'&&x!='D'&&x!='s'&&x!='S')
+                pc.printf("Please Input A or D or S only\n > ");
+            else
+            {
+                switch(x)
+                {
+                    case 'A':
+                    case 'a':
+                        //show led1
+                        ch=0;
+                        do
+                        {
+                            l1=1; l3=1; l5=1; l7=1; wait_ms(300);
+                            l1=0; l3=0; l5=0; l7=0; 
+                            l2=1; l4=1; l6=1; l8=1; wait_ms(300);
+                            l2=0; l4=0; l6=0; l8=0;
+                            if(pc.readable())
+                            {
+                                ch=1;
+                                x=pc.getc();
+                            }
+                        }while(!ch);
+                        break;
+                    case 'D':
+                    case 'd':
+                        //show led2
+                        ch=0;
+                        do
+                        {
+                            l1=1; l8=1; wait_ms(100);
+                            l2=1; l7=1; wait_ms(100);
+                            l3=1; l6=1; wait_ms(100);
+                            l4=1; l5=1; wait_ms(100);
+        
+                            l4=0; l5=0; wait_ms(100);
+                            l3=0; l6=0; wait_ms(100);
+                            l2=0; l7=0; wait_ms(100);
+                            l1=0; l8=0; wait_ms(100);
+                            if(pc.readable())
+                            {
+                                ch=1;
+                                x=pc.getc();
+                            }
+                        }while(!ch);
+                        break;
+                    default:
+                }
+            }
+        }
+    }
+    while(x!='s'&&x!='S');
+}
+
+void mode2()
+{
+    if(sw.read()==1)
+        pc.printf("\nSwitch >>>>> 1\n");
+    else
+        pc.printf("\nSwitch >>>>> 0\n");
+}
\ No newline at end of file