![](/media/cache/group/tvz-logo.png.50x50_q85.png)
Karanovic_Semafor
Program se sastoji od: -5x LED-ice od kojih svaka prikazuje jedno stanje na semaforu -1x Integrirano tipkalo za Hardverski interrupt -1x NUCLEO-F072RB pločica mikroupravljača
Program simulira rad semafora za automobile i pješake. Automobilima je zeleno svijetlo 15 sekundi nakon čega se pali zeleno svijetlo za pješake koje traje 7 sekundi. U slučaju pritiska na hardverski interrupt "blinka" žuto svijetlo 10 sekundi nakon čega program nastavlja sa normalnim radom.
Diff: main.cpp
- Revision:
- 0:c3966e70a28e
diff -r 000000000000 -r c3966e70a28e main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Nov 29 12:09:11 2020 +0000 @@ -0,0 +1,80 @@ +#include "mbed.h" +#include "led.h" +Serial pc(USBTX, USBRX); +LED led1(A0); +LED led2(D2); +LED led3(D3); +LED led4(D4); +LED led5(D5); +InterruptIn button(USER_BUTTON); +Timer automobil; +Timer pjesak; +Timer flipper; +Timer zuta; +Timer debounce; +//Funkcija hardverskog interrupta +void flip() +{ + if(debounce.read_ms()>200) { + led1.status(0); + led3.status(0); + led4.status(0); + led5.status(0); + int i; + for(i=0; i<20; i++) { + led2.flip(); + wait(0.5); + } + } + debounce.reset(); +} + +int main() +{ + pjesak.reset(); + automobil.reset(); + debounce.start(); + button.rise(&flip); + + while(1) { + +//Početno stanje LED-ica + led1.status(0); + led2.status(0); + led3.status(1); + led4.status(1); + led5.status(0); + +//Nakon 12.5 sekundi ugasi zeleno svijetlo za automobile + automobil.start(); + if (automobil.read() > 12.5) { + led3.flip(); + +//Nakon 13 sekundi upali žuto svijetlo za automobile + } + if (automobil.read() > 13) { + led2.flip(); +//Nakon 15 sekundi upali crveno za automobile i zeleno za pješake + } + if(automobil.read()>15) { + automobil.stop(); + led1.flip(); + led2.flip(); + led4.flip(); + led5.flip(); + pjesak.reset(); + pjesak.start(); + while(pjesak.read()<7) { + if (pjesak.read() > 5) + led2.flip(); + } + automobil.reset(); + pjesak.stop(); + } + + led1.flip(); + led2.flip(); + } + + return 0; +} \ No newline at end of file