Pjesackiprijelaz1

Dependencies:   mbed

https://os.mbed.com/media/uploads/mkusec/shema01.pdf

Files at this revision

API Documentation at this revision

Comitter:
mkusec
Date:
Tue Sep 21 10:28:30 2021 +0000
Commit message:
pjesacki prijelaz

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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Sep 21 10:28:30 2021 +0000
@@ -0,0 +1,70 @@
+#include "mbed.h" // pozivanje  biblioteke
+DigitalOut Cesta_Crveno(p5); //Postavljanje pinova p5-p10 kao izlaz za signalizaciju diodama
+DigitalOut Cesta_Zuto(p6);
+DigitalOut Cesta_Zeleno(p7);
+DigitalOut Zebra_Crveno(p8);
+DigitalOut Zebra_Zeleno(p9);
+InterruptIn Tipka(p20, PullUp); //Deklaracija pina p20 kao interuput
+Timeout Response;   // timeout timer
+
+bool Tipkalo = false;   //postavljanje početne vrijednosti
+                                
+void kliknutoTipkalo() {  //potprogram za detekciju interupta
+    Tipkalo = true;
+}
+
+void gasi() {           //funkcija koja se poziva na kraj timeout timera kako bi ugasila semafor za pjesake
+  Zebra_Zeleno = 0; 
+    Zebra_Crveno = 1;
+    Tipkalo = false;    //postavljanje vrijednosti na početno stanje
+
+}
+
+
+void autoSemafor() {    //funkcija koja kontinuirano pali i gasi semafor za automobile
+    Zebra_Crveno = 1;
+    Cesta_Crveno = 1;
+    wait(3);
+    
+    Cesta_Crveno = 1;
+    Cesta_Zuto = 1;
+    wait(2);
+    
+    Cesta_Zuto = 0;
+    Cesta_Crveno = 0;
+    Cesta_Zeleno = 1;
+    wait(3);
+    
+     Cesta_Zeleno = 1;
+    Cesta_Zuto = 1;
+    wait(2);
+    
+    Cesta_Zeleno = 0;
+    Cesta_Crveno = 1;
+     Cesta_Zuto = 0;
+     wait(1);
+}
+
+void pjesackisemafor() { //funkcija koja pali semafor za pjesake nakon detektiranog vanjskog interupta
+    Zebra_Crveno = 0;
+        wait(0.1);
+    Zebra_Zeleno = 1;
+    wait(3);
+        Response.attach(&gasi,2.0);  // naredba kojom se pokreče timeout timer
+   
+}
+        
+int main() { //Glavna funkcija
+    
+    
+    Tipka.fall(&kliknutoTipkalo);  // naredba koja detektira interupt promjenom stanja na pinu p20
+    
+    while(true) {               //beskonačna petlja koja pokreče funkciju autosemafor sve dok se ne promjeni stanje u u podprogramu tipkalo čime se pokreće fnkcija za pjesacki semafor
+
+        if(!Tipkalo) {  
+            autoSemafor(); 
+        } else {
+            pjesackisemafor();
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Sep 21 10:28:30 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file