![](/media/cache/group/tvz-logo.png.50x50_q85.png)
Pjesackiprijelaz1
Dependencies: mbed
https://os.mbed.com/media/uploads/mkusec/shema01.pdf
Diff: main.cpp
- Revision:
- 0:ff18e31de8bf
diff -r 000000000000 -r ff18e31de8bf main.cpp --- /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