Crossroad Signal Road / Mbed 2 deprecated All_Test_2

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
wcy9703
Date:
Thu Jan 10 06:36:28 2019 +0000
Commit message:
Final_Education

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 7918b43be5cf main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jan 10 06:36:28 2019 +0000
@@ -0,0 +1,239 @@
+#include "mbed.h"
+DigitalOut led1(LED1);
+
+//红绿灯引脚定义
+DigitalOut NorthStraightRed(PC_9);
+DigitalOut NorthStraightYellow(PB_8);
+DigitalOut NorthStraightGreen(PB_9);
+DigitalOut NorthLeftRed(PC_8);
+DigitalOut NorthLeftYellow(PC_6);
+DigitalOut NorthLeftGreen(PC_5);
+DigitalOut WestStraightRed(PA_10);
+DigitalOut WestStraightYellow(PA_2);
+DigitalOut WestStraightGreen(PA_3);
+DigitalOut WestLeftRed(PB_15);
+DigitalOut WestLeftYellow(PB_14);
+DigitalOut WestLeftGreen(PB_13);
+
+DigitalOut Cameraout(PC_10);
+
+PwmOut mypwm(PB_3);
+
+int State=1;
+int i=0;
+Timer debounce;
+bool judg = true;
+int ju=0;
+
+InterruptIn button1(USER_BUTTON);
+InterruptIn detector(PC_7);
+
+void Emergence()
+{
+    NorthStraightRed=1;
+    NorthStraightGreen=0;
+    NorthStraightYellow=0;
+    NorthLeftRed=1;
+    NorthLeftGreen=0;
+    NorthLeftYellow=0;
+    WestStraightRed=0;
+    WestStraightYellow=0;
+    WestStraightGreen=1;
+    WestLeftRed=1;
+    WestLeftYellow=0;
+    WestLeftGreen=0;
+
+    mypwm.period_ms(20);
+    mypwm.pulsewidth_ms(18.5);
+    wait_ms(100);    
+    mypwm.period_ms(20);
+    mypwm.pulsewidth_ms(1.5);
+    wait_ms(240);
+    mypwm.period_ms(20);
+    mypwm.pulsewidth_ms(20);
+    wait(4);
+    mypwm.period_ms(20);
+    mypwm.pulsewidth_ms(18.5);
+}
+
+void Flash()
+/*{
+    if(judg)
+    {
+        Cameraout = !Cameraout;
+        wait_ms(100);
+        //Cameraout = !Cameraout;
+    }
+    judg=!judg;
+}*/
+/*{
+    if((debounce.read_ms()>100)&&judg&&ju==1)
+        {
+            Cameraout=!Cameraout;
+            debounce.reset();
+            wait_ms(100);
+            Cameraout=!Cameraout;
+            ju=0;
+        }
+        else
+        ju=1;
+    judg = !judg;    
+    
+}*/
+
+{
+    if(i==1)
+    {
+        if(debounce.read_ms()>1000)
+        {
+            Cameraout=!Cameraout;
+            debounce.reset();
+            wait_ms(100);
+            Cameraout=!Cameraout;
+    
+        }
+    }
+}
+
+int main()
+{
+   debounce.start();
+   button1.fall(&Emergence);
+   detector.fall(&Flash);
+   while(1)
+   {    
+        i=State%9;
+        State++;
+        switch(i){
+            case 1: NorthStraightRed=0;
+                    NorthStraightGreen=1;
+                    NorthStraightYellow=0;
+                    NorthLeftRed=1;
+                    NorthLeftGreen=0;
+                    NorthLeftYellow=0;
+                    WestStraightRed=1;
+                    WestStraightYellow=0;
+                    WestStraightGreen=0;
+                    WestLeftRed=1;
+                    WestLeftYellow=0;
+                    WestLeftGreen=0;
+                    wait(5);
+                    break;
+            case 2: NorthStraightRed=0;
+                    NorthStraightGreen=0;
+                    NorthStraightYellow=1;
+                    NorthLeftRed=0;
+                    NorthLeftGreen=0;
+                    NorthLeftYellow=1;
+                    WestStraightRed=1;
+                    WestStraightYellow=0;
+                    WestStraightGreen=0;
+                    WestLeftRed=1;
+                    WestLeftYellow=0;
+                    WestLeftGreen=0;
+                    wait(2);
+                    break;
+            case 3: NorthStraightRed=1;
+                    NorthStraightGreen=0;
+                    NorthStraightYellow=0;
+                    NorthLeftRed=0;
+                    NorthLeftGreen=1;
+                    NorthLeftYellow=0;
+                    WestStraightRed=1;
+                    WestStraightYellow=0;
+                    WestStraightGreen=0;
+                    WestLeftRed=1;
+                    WestLeftYellow=0;
+                    WestLeftGreen=0;
+                    wait(5);
+                    break;
+            case 4: NorthStraightRed=1;
+                    NorthStraightGreen=0;
+                    NorthStraightYellow=0;
+                    NorthLeftRed=0;
+                    NorthLeftGreen=0;
+                    NorthLeftYellow=1;
+                    WestStraightRed=0;
+                    WestStraightYellow=1;
+                    WestStraightGreen=0;
+                    WestLeftRed=1;
+                    WestLeftYellow=0;
+                    WestLeftGreen=0;
+                    wait(2);
+                    break;
+            case 5: NorthStraightRed=1;
+                    NorthStraightGreen=0;
+                    NorthStraightYellow=0;
+                    NorthLeftRed=1;
+                    NorthLeftGreen=0;
+                    NorthLeftYellow=0;
+                    WestStraightRed=0;
+                    WestStraightYellow=0;
+                    WestStraightGreen=1;
+                    WestLeftRed=1;
+                    WestLeftYellow=0;
+                    WestLeftGreen=0;
+                    //闸杆抬起
+                    
+                    mypwm.period_ms(20);
+                    mypwm.pulsewidth_ms(18.5);
+                    wait_ms(100);    
+                    mypwm.period_ms(20);
+                    mypwm.pulsewidth_ms(1.5);
+                    wait_ms(240);
+                    mypwm.period_ms(20);
+                    mypwm.pulsewidth_ms(20);
+                    wait(4);
+                    mypwm.period_ms(20);
+                    mypwm.pulsewidth_ms(18.5);
+                    break;
+            case 6: NorthStraightRed=1;
+                    NorthStraightGreen=0;
+                    NorthStraightYellow=0;
+                    NorthLeftRed=1;
+                    NorthLeftGreen=0;
+                    NorthLeftYellow=0;
+                    WestStraightRed=0;
+                    WestStraightYellow=1;
+                    WestStraightGreen=0;
+                    WestLeftRed=0;
+                    WestLeftYellow=1;
+                    WestLeftGreen=0;
+                    wait(2);
+                    break;
+            case 7: NorthStraightRed=1;
+                    NorthStraightGreen=0;
+                    NorthStraightYellow=0;
+                    NorthLeftRed=1;
+                    NorthLeftGreen=0;
+                    NorthLeftYellow=0;
+                    WestStraightRed=1;
+                    WestStraightYellow=0;
+                    WestStraightGreen=0;
+                    WestLeftRed=0;
+                    WestLeftYellow=0;
+                    WestLeftGreen=1;
+                    wait(5);
+                    break;
+            case 8: NorthStraightRed=0;
+                    NorthStraightGreen=0;
+                    NorthStraightYellow=1;
+                    NorthLeftRed=1;
+                    NorthLeftGreen=0;
+                    NorthLeftYellow=0;
+                    WestStraightRed=1;
+                    WestStraightYellow=0;
+                    WestStraightGreen=0;
+                    WestLeftRed=0;
+                    WestLeftYellow=1;
+                    WestLeftGreen=0;
+                    wait(2);
+                    break;
+            default:break;
+                }
+                
+                
+            }
+    
+
+}
diff -r 000000000000 -r 7918b43be5cf mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jan 10 06:36:28 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/3a7713b1edbc
\ No newline at end of file