Pjesackiprijelaz1
Dependencies: mbed
https://os.mbed.com/media/uploads/mkusec/shema01.pdf
Revision 0:ff18e31de8bf, committed 2021-09-21
- 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 |
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
diff -r 000000000000 -r ff18e31de8bf mbed.bld --- /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