MU_konstrukcijski zadatak_VD

Dependencies:   mbed MU_upravljanje_raskrzjem

Revision:
0:13a153863b69
diff -r 000000000000 -r 13a153863b69 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Nov 25 17:09:44 2020 +0000
@@ -0,0 +1,125 @@
+#include "mbed.h"
+#include "MU_upravljanje_raskrzjem.h"
+
+Traffic vcrvena1 (p5);
+Traffic vzuta1 (p6);
+Traffic vzelena1 (p7);
+Traffic mcrvena1 (p8);
+Traffic mzelena1 (p9);
+
+Traffic vcrvena2 (p30);
+Traffic vzuta2 (p29);
+Traffic vzelena2 (p28);
+Traffic mcrvena2 (p27);
+Traffic mzelena2 (p26);
+
+InterruptIn tipkalo(p18);
+
+Ticker tik1;
+
+int t=0,p=0;
+
+void tiker1()
+{
+    t=t+1;
+}
+
+void pjesaci()
+{
+    p=1;
+}
+
+void semafor2()
+{
+    if(t>=0 && t<100) {
+        vzelena2.light_on(t, 0, 100);
+        mcrvena2.light_on(t, 0, 100);
+        vcrvena1.light_on(t, 0, 100);
+        mzelena1.light_on(t, 0, 100);
+    }
+    if(t>=100 && t<200) {
+        mcrvena2.light_on(t, 100, 200);
+        vzelena2.light_on(t, 100, 200);
+        vcrvena1.light_on(t, 100, 200);
+        mcrvena1.light_on(t, 100, 200);
+    }
+    if(t>=200 && t<300) {
+        vcrvena1.light_on(t, 200,300);
+        mcrvena1.light_on(t, 200, 300);
+        vzuta2.light_on(t, 200, 300);
+        mcrvena2.light_on(t, 200, 300);
+    }
+
+
+    if(t>=300 && t<400) {
+        vcrvena1.light_on(t, 300,400);
+        mcrvena1.light_on(t, 300, 400);
+        vcrvena2.light_on(t, 300, 400);
+        mcrvena2.light_on(t, 300, 400);
+    }
+    if(t>=400 && t<500) {
+        vzuta1.light_on(t, 400,500);
+        mcrvena1.light_on(t, 400, 500);
+        vcrvena2.light_on(t, 400, 500);
+        mcrvena2.light_on(t, 400, 500);
+    }
+    if(t>=500 && t<800) {
+        vzelena1.light_on(t, 500, 800);
+        mcrvena1.light_on(t, 500, 800);
+        vcrvena2.light_on(t, 500, 800);
+        mzelena2.light_on(t, 500, 800);
+    }
+    if(t>=800 && t<900) {
+        vzelena1.light_on(t, 800,900);
+        mcrvena1.light_on(t, 800,900);
+        vcrvena2.light_on(t, 800,900);
+        mcrvena2.light_on(t, 800,900);
+    }
+    if(t>=900 && t<1000) {
+        vzuta1.light_on(t, 900,1000);
+        mcrvena1.light_on(t, 900,1000);
+        vcrvena2.light_on(t, 900,1000);
+        mcrvena2.light_on(t, 900,1000);
+    }
+    if(t>=1000 && t<1100) {
+        vcrvena1.light_on(t, 1000,1100);
+        mcrvena1.light_on(t, 1000,1100);
+        vcrvena2.light_on(t, 1000,1100);
+        mcrvena2.light_on(t, 1000,1100);
+    }
+    if(t>=1100 && t<1200) {
+        vcrvena1.light_on(t, 1100,1200);
+        mcrvena1.light_on(t, 1100,1200);
+        vzuta2.light_on(t, 1100,1200);
+        mcrvena2.light_on(t, 1100,1200);
+    }
+    if(t>=1200 && t<1300) {
+        vcrvena1.light_on(t, 1200,1300);
+        mzelena1.light_on(t, 1200,1300);
+        vzelena2.light_on(t, 1200,1300);
+        mcrvena2.light_on(t, 1200,1300);
+    }
+}
+
+
+int main()
+{
+    tik1.attach(&tiker1, 0.02);
+    while(1) {
+        if(p!=1)
+            t=0;
+        vcrvena1.light_on(t, 0, 1);
+        mzelena1.light_on(t, 0, 1);
+        vzelena2.light_on(t, 0, 1);
+        mcrvena2.light_on(t, 0, 1);
+        tipkalo.fall(&pjesaci);
+        if(p==1 && t<1200)
+            semafor2();
+        if(p==1 && t>1200) {
+            t=0;
+            p=0;
+        }
+    }
+}
+
+