Pjesackiprijelaz1
Dependencies: mbed
https://os.mbed.com/media/uploads/mkusec/shema01.pdf
main.cpp
- Committer:
- mkusec
- Date:
- 2021-09-21
- Revision:
- 0:ff18e31de8bf
File content as of revision 0:ff18e31de8bf:
#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(); } } }