Semafor sa 4 moda rada, brojačem i zvučnim signalom za pješake
Dependencies: BluetoothSerial SeeedShieldBot mbed
main.cpp@0:f3ad924cad2e, 20 months ago (annotated)
- Committer:
- Ante16
- Date:
- Wed Sep 07 13:35:44 2022 +0000
- Revision:
- 0:f3ad924cad2e
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ante16 | 0:f3ad924cad2e | 1 | #include "mbed.h" |
Ante16 | 0:f3ad924cad2e | 2 | |
Ante16 | 0:f3ad924cad2e | 3 | BusOut zaslon(D11,D10,D9,D8,D7,D12,D13); |
Ante16 | 0:f3ad924cad2e | 4 | |
Ante16 | 0:f3ad924cad2e | 5 | DigitalOut crveno(D4); |
Ante16 | 0:f3ad924cad2e | 6 | DigitalOut zuto(D3); |
Ante16 | 0:f3ad924cad2e | 7 | DigitalOut zeleno(D2); |
Ante16 | 0:f3ad924cad2e | 8 | DigitalIn prekidac4(D14); |
Ante16 | 0:f3ad924cad2e | 9 | DigitalIn prekidac3(D15); |
Ante16 | 0:f3ad924cad2e | 10 | |
Ante16 | 0:f3ad924cad2e | 11 | PwmOut zvucniSignal(A3); |
Ante16 | 0:f3ad924cad2e | 12 | |
Ante16 | 0:f3ad924cad2e | 13 | InterruptIn promjenaNacinaRada(USER_BUTTON); |
Ante16 | 0:f3ad924cad2e | 14 | InterruptIn tipkaZaPjesakeNocniNacinRada(D5); |
Ante16 | 0:f3ad924cad2e | 15 | |
Ante16 | 0:f3ad924cad2e | 16 | Timeout upaliCrveno; |
Ante16 | 0:f3ad924cad2e | 17 | Timeout upaliZuto; |
Ante16 | 0:f3ad924cad2e | 18 | Timeout upaliZeleno; |
Ante16 | 0:f3ad924cad2e | 19 | Timeout ugasiCrveno; |
Ante16 | 0:f3ad924cad2e | 20 | Timeout ugasiZuto; |
Ante16 | 0:f3ad924cad2e | 21 | Timeout ugasiZeleno; |
Ante16 | 0:f3ad924cad2e | 22 | Timeout ugasiZvuk; |
Ante16 | 0:f3ad924cad2e | 23 | Timeout promjenaZvukaZaPjesake; |
Ante16 | 0:f3ad924cad2e | 24 | Ticker upaliZvuk; |
Ante16 | 0:f3ad924cad2e | 25 | Ticker paliZaslon; |
Ante16 | 0:f3ad924cad2e | 26 | Ticker blinkZuto; |
Ante16 | 0:f3ad924cad2e | 27 | |
Ante16 | 0:f3ad924cad2e | 28 | int i; |
Ante16 | 0:f3ad924cad2e | 29 | int nacinRada=3; |
Ante16 | 0:f3ad924cad2e | 30 | int zabraniPrvuSmjenuDnevnogNacina=0; |
Ante16 | 0:f3ad924cad2e | 31 | int zabraniDruguSmjenuDnevnogNacina=1; |
Ante16 | 0:f3ad924cad2e | 32 | int zabraniNocniRad=0; |
Ante16 | 0:f3ad924cad2e | 33 | int zabraniBlinkZuto=0; |
Ante16 | 0:f3ad924cad2e | 34 | int trenutniBrojNaZaslonu=0; |
Ante16 | 0:f3ad924cad2e | 35 | int smjenaDnevnogNacina=0; |
Ante16 | 0:f3ad924cad2e | 36 | int ponoviPetlju; |
Ante16 | 0:f3ad924cad2e | 37 | int zabraniPrekid=0; |
Ante16 | 0:f3ad924cad2e | 38 | int BR0=0x3F; |
Ante16 | 0:f3ad924cad2e | 39 | int BR1=0x06; |
Ante16 | 0:f3ad924cad2e | 40 | int BR2=0x5B; |
Ante16 | 0:f3ad924cad2e | 41 | int BR3=0x4F; |
Ante16 | 0:f3ad924cad2e | 42 | int BR4=0x66; |
Ante16 | 0:f3ad924cad2e | 43 | int BR5=0x6D; |
Ante16 | 0:f3ad924cad2e | 44 | int BR6=0x7D; |
Ante16 | 0:f3ad924cad2e | 45 | int BR7=0x07; |
Ante16 | 0:f3ad924cad2e | 46 | int BR8=0x7F; |
Ante16 | 0:f3ad924cad2e | 47 | int BR9=0x6F; |
Ante16 | 0:f3ad924cad2e | 48 | |
Ante16 | 0:f3ad924cad2e | 49 | char brojevi[10] = {BR0, BR1, BR2, BR3, BR4, BR5, BR6, BR7, BR8,BR9}; |
Ante16 | 0:f3ad924cad2e | 50 | |
Ante16 | 0:f3ad924cad2e | 51 | |
Ante16 | 0:f3ad924cad2e | 52 | |
Ante16 | 0:f3ad924cad2e | 53 | void paliOdbrojavanjeNaZaslonu(){ |
Ante16 | 0:f3ad924cad2e | 54 | |
Ante16 | 0:f3ad924cad2e | 55 | zaslon=brojevi[trenutniBrojNaZaslonu]; |
Ante16 | 0:f3ad924cad2e | 56 | |
Ante16 | 0:f3ad924cad2e | 57 | if(trenutniBrojNaZaslonu==0){ |
Ante16 | 0:f3ad924cad2e | 58 | zaslon=0x0; |
Ante16 | 0:f3ad924cad2e | 59 | paliZaslon.detach(); |
Ante16 | 0:f3ad924cad2e | 60 | |
Ante16 | 0:f3ad924cad2e | 61 | } |
Ante16 | 0:f3ad924cad2e | 62 | |
Ante16 | 0:f3ad924cad2e | 63 | trenutniBrojNaZaslonu=trenutniBrojNaZaslonu-1; |
Ante16 | 0:f3ad924cad2e | 64 | |
Ante16 | 0:f3ad924cad2e | 65 | } |
Ante16 | 0:f3ad924cad2e | 66 | |
Ante16 | 0:f3ad924cad2e | 67 | |
Ante16 | 0:f3ad924cad2e | 68 | |
Ante16 | 0:f3ad924cad2e | 69 | void gasiZvuk(){ |
Ante16 | 0:f3ad924cad2e | 70 | |
Ante16 | 0:f3ad924cad2e | 71 | zvucniSignal=0; |
Ante16 | 0:f3ad924cad2e | 72 | |
Ante16 | 0:f3ad924cad2e | 73 | } |
Ante16 | 0:f3ad924cad2e | 74 | |
Ante16 | 0:f3ad924cad2e | 75 | |
Ante16 | 0:f3ad924cad2e | 76 | |
Ante16 | 0:f3ad924cad2e | 77 | void paliZvuk(){ |
Ante16 | 0:f3ad924cad2e | 78 | |
Ante16 | 0:f3ad924cad2e | 79 | zvucniSignal=0.5; |
Ante16 | 0:f3ad924cad2e | 80 | ugasiZvuk.attach(&gasiZvuk,0.05); |
Ante16 | 0:f3ad924cad2e | 81 | |
Ante16 | 0:f3ad924cad2e | 82 | } |
Ante16 | 0:f3ad924cad2e | 83 | |
Ante16 | 0:f3ad924cad2e | 84 | |
Ante16 | 0:f3ad924cad2e | 85 | |
Ante16 | 0:f3ad924cad2e | 86 | void upaliCrvenoPjesacima(){ |
Ante16 | 0:f3ad924cad2e | 87 | |
Ante16 | 0:f3ad924cad2e | 88 | upaliZvuk.detach(); |
Ante16 | 0:f3ad924cad2e | 89 | zvucniSignal.period(0.004); |
Ante16 | 0:f3ad924cad2e | 90 | upaliZvuk.attach(&paliZvuk,1); |
Ante16 | 0:f3ad924cad2e | 91 | |
Ante16 | 0:f3ad924cad2e | 92 | } |
Ante16 | 0:f3ad924cad2e | 93 | |
Ante16 | 0:f3ad924cad2e | 94 | |
Ante16 | 0:f3ad924cad2e | 95 | |
Ante16 | 0:f3ad924cad2e | 96 | void upaliZelenoPjesacima(){ |
Ante16 | 0:f3ad924cad2e | 97 | |
Ante16 | 0:f3ad924cad2e | 98 | upaliZvuk.detach(); |
Ante16 | 0:f3ad924cad2e | 99 | zvucniSignal.period(0.0004); |
Ante16 | 0:f3ad924cad2e | 100 | upaliZvuk.attach(&paliZvuk,0.2); |
Ante16 | 0:f3ad924cad2e | 101 | promjenaZvukaZaPjesake.detach(); |
Ante16 | 0:f3ad924cad2e | 102 | promjenaZvukaZaPjesake.attach(&upaliCrvenoPjesacima,6); |
Ante16 | 0:f3ad924cad2e | 103 | |
Ante16 | 0:f3ad924cad2e | 104 | } |
Ante16 | 0:f3ad924cad2e | 105 | |
Ante16 | 0:f3ad924cad2e | 106 | |
Ante16 | 0:f3ad924cad2e | 107 | |
Ante16 | 0:f3ad924cad2e | 108 | void UpaliCrvenoDnevniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 109 | |
Ante16 | 0:f3ad924cad2e | 110 | promjenaZvukaZaPjesake.attach(&upaliZelenoPjesacima,1); |
Ante16 | 0:f3ad924cad2e | 111 | crveno=1; |
Ante16 | 0:f3ad924cad2e | 112 | zabraniPrvuSmjenuDnevnogNacina=0; |
Ante16 | 0:f3ad924cad2e | 113 | |
Ante16 | 0:f3ad924cad2e | 114 | } |
Ante16 | 0:f3ad924cad2e | 115 | |
Ante16 | 0:f3ad924cad2e | 116 | |
Ante16 | 0:f3ad924cad2e | 117 | |
Ante16 | 0:f3ad924cad2e | 118 | void UpaliZutoDnevniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 119 | |
Ante16 | 0:f3ad924cad2e | 120 | zuto=1; |
Ante16 | 0:f3ad924cad2e | 121 | |
Ante16 | 0:f3ad924cad2e | 122 | if(smjenaDnevnogNacina==2){ |
Ante16 | 0:f3ad924cad2e | 123 | paliZaslon.attach(&paliOdbrojavanjeNaZaslonu,1); |
Ante16 | 0:f3ad924cad2e | 124 | |
Ante16 | 0:f3ad924cad2e | 125 | } |
Ante16 | 0:f3ad924cad2e | 126 | |
Ante16 | 0:f3ad924cad2e | 127 | |
Ante16 | 0:f3ad924cad2e | 128 | } |
Ante16 | 0:f3ad924cad2e | 129 | |
Ante16 | 0:f3ad924cad2e | 130 | |
Ante16 | 0:f3ad924cad2e | 131 | |
Ante16 | 0:f3ad924cad2e | 132 | void UpaliZelenoDnevniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 133 | |
Ante16 | 0:f3ad924cad2e | 134 | zeleno=1; |
Ante16 | 0:f3ad924cad2e | 135 | zabraniDruguSmjenuDnevnogNacina=0; |
Ante16 | 0:f3ad924cad2e | 136 | |
Ante16 | 0:f3ad924cad2e | 137 | } |
Ante16 | 0:f3ad924cad2e | 138 | |
Ante16 | 0:f3ad924cad2e | 139 | |
Ante16 | 0:f3ad924cad2e | 140 | |
Ante16 | 0:f3ad924cad2e | 141 | void UgasiCrvenoDnevniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 142 | |
Ante16 | 0:f3ad924cad2e | 143 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 144 | |
Ante16 | 0:f3ad924cad2e | 145 | } |
Ante16 | 0:f3ad924cad2e | 146 | |
Ante16 | 0:f3ad924cad2e | 147 | |
Ante16 | 0:f3ad924cad2e | 148 | |
Ante16 | 0:f3ad924cad2e | 149 | void UgasiZutoDnevniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 150 | |
Ante16 | 0:f3ad924cad2e | 151 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 152 | |
Ante16 | 0:f3ad924cad2e | 153 | } |
Ante16 | 0:f3ad924cad2e | 154 | |
Ante16 | 0:f3ad924cad2e | 155 | |
Ante16 | 0:f3ad924cad2e | 156 | |
Ante16 | 0:f3ad924cad2e | 157 | void UgasiZelenoDnevniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 158 | |
Ante16 | 0:f3ad924cad2e | 159 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 160 | |
Ante16 | 0:f3ad924cad2e | 161 | } |
Ante16 | 0:f3ad924cad2e | 162 | |
Ante16 | 0:f3ad924cad2e | 163 | |
Ante16 | 0:f3ad924cad2e | 164 | |
Ante16 | 0:f3ad924cad2e | 165 | void UpaliZutoNocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 166 | |
Ante16 | 0:f3ad924cad2e | 167 | zuto=1; |
Ante16 | 0:f3ad924cad2e | 168 | |
Ante16 | 0:f3ad924cad2e | 169 | } |
Ante16 | 0:f3ad924cad2e | 170 | |
Ante16 | 0:f3ad924cad2e | 171 | |
Ante16 | 0:f3ad924cad2e | 172 | |
Ante16 | 0:f3ad924cad2e | 173 | void UpaliZelenoNocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 174 | |
Ante16 | 0:f3ad924cad2e | 175 | zeleno=1; |
Ante16 | 0:f3ad924cad2e | 176 | zabraniPrekid=0; |
Ante16 | 0:f3ad924cad2e | 177 | |
Ante16 | 0:f3ad924cad2e | 178 | } |
Ante16 | 0:f3ad924cad2e | 179 | |
Ante16 | 0:f3ad924cad2e | 180 | |
Ante16 | 0:f3ad924cad2e | 181 | |
Ante16 | 0:f3ad924cad2e | 182 | void UgasiCrvenoNocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 183 | |
Ante16 | 0:f3ad924cad2e | 184 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 185 | |
Ante16 | 0:f3ad924cad2e | 186 | } |
Ante16 | 0:f3ad924cad2e | 187 | |
Ante16 | 0:f3ad924cad2e | 188 | |
Ante16 | 0:f3ad924cad2e | 189 | |
Ante16 | 0:f3ad924cad2e | 190 | void UgasiZutoNocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 191 | |
Ante16 | 0:f3ad924cad2e | 192 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 193 | |
Ante16 | 0:f3ad924cad2e | 194 | } |
Ante16 | 0:f3ad924cad2e | 195 | |
Ante16 | 0:f3ad924cad2e | 196 | |
Ante16 | 0:f3ad924cad2e | 197 | |
Ante16 | 0:f3ad924cad2e | 198 | void UgasiZelenoNocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 199 | |
Ante16 | 0:f3ad924cad2e | 200 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 201 | |
Ante16 | 0:f3ad924cad2e | 202 | } |
Ante16 | 0:f3ad924cad2e | 203 | |
Ante16 | 0:f3ad924cad2e | 204 | |
Ante16 | 0:f3ad924cad2e | 205 | |
Ante16 | 0:f3ad924cad2e | 206 | void nastaviPrekidNocniNacinrada(){ |
Ante16 | 0:f3ad924cad2e | 207 | |
Ante16 | 0:f3ad924cad2e | 208 | upaliZuto.attach(&UpaliZutoNocniNacinRada,8); |
Ante16 | 0:f3ad924cad2e | 209 | ugasiZuto.attach(&UgasiZutoNocniNacinRada,9); |
Ante16 | 0:f3ad924cad2e | 210 | ugasiCrveno.attach(&UgasiCrvenoNocniNacinRada,9); |
Ante16 | 0:f3ad924cad2e | 211 | upaliZeleno.attach(&UpaliZelenoNocniNacinRada,9); |
Ante16 | 0:f3ad924cad2e | 212 | |
Ante16 | 0:f3ad924cad2e | 213 | } |
Ante16 | 0:f3ad924cad2e | 214 | |
Ante16 | 0:f3ad924cad2e | 215 | |
Ante16 | 0:f3ad924cad2e | 216 | |
Ante16 | 0:f3ad924cad2e | 217 | void UpaliCrvenoNocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 218 | |
Ante16 | 0:f3ad924cad2e | 219 | crveno=1; |
Ante16 | 0:f3ad924cad2e | 220 | promjenaZvukaZaPjesake.attach(&upaliZelenoPjesacima,1); |
Ante16 | 0:f3ad924cad2e | 221 | nastaviPrekidNocniNacinrada(); |
Ante16 | 0:f3ad924cad2e | 222 | |
Ante16 | 0:f3ad924cad2e | 223 | } |
Ante16 | 0:f3ad924cad2e | 224 | |
Ante16 | 0:f3ad924cad2e | 225 | |
Ante16 | 0:f3ad924cad2e | 226 | |
Ante16 | 0:f3ad924cad2e | 227 | void ugasiBlinkZuto(){ |
Ante16 | 0:f3ad924cad2e | 228 | |
Ante16 | 0:f3ad924cad2e | 229 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 230 | |
Ante16 | 0:f3ad924cad2e | 231 | } |
Ante16 | 0:f3ad924cad2e | 232 | |
Ante16 | 0:f3ad924cad2e | 233 | |
Ante16 | 0:f3ad924cad2e | 234 | |
Ante16 | 0:f3ad924cad2e | 235 | void upaliBlinkZuto(){ |
Ante16 | 0:f3ad924cad2e | 236 | |
Ante16 | 0:f3ad924cad2e | 237 | zuto=1; |
Ante16 | 0:f3ad924cad2e | 238 | ugasiZuto.attach(&ugasiBlinkZuto,1); |
Ante16 | 0:f3ad924cad2e | 239 | |
Ante16 | 0:f3ad924cad2e | 240 | } |
Ante16 | 0:f3ad924cad2e | 241 | |
Ante16 | 0:f3ad924cad2e | 242 | |
Ante16 | 0:f3ad924cad2e | 243 | |
Ante16 | 0:f3ad924cad2e | 244 | void upaliZelenoZaPjesakeNocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 245 | |
Ante16 | 0:f3ad924cad2e | 246 | if(zabraniPrekid==0){ |
Ante16 | 0:f3ad924cad2e | 247 | |
Ante16 | 0:f3ad924cad2e | 248 | if(nacinRada==1){ |
Ante16 | 0:f3ad924cad2e | 249 | |
Ante16 | 0:f3ad924cad2e | 250 | zabraniPrekid=1; |
Ante16 | 0:f3ad924cad2e | 251 | trenutniBrojNaZaslonu=6; |
Ante16 | 0:f3ad924cad2e | 252 | paliZaslon.attach(&paliOdbrojavanjeNaZaslonu,1); |
Ante16 | 0:f3ad924cad2e | 253 | ugasiZeleno.attach(&UgasiZelenoNocniNacinRada,5); |
Ante16 | 0:f3ad924cad2e | 254 | upaliZuto.attach(&UpaliZutoNocniNacinRada,5); |
Ante16 | 0:f3ad924cad2e | 255 | ugasiZuto.attach(&UgasiZutoNocniNacinRada,6); |
Ante16 | 0:f3ad924cad2e | 256 | upaliCrveno.attach(&UpaliCrvenoNocniNacinRada,6); |
Ante16 | 0:f3ad924cad2e | 257 | |
Ante16 | 0:f3ad924cad2e | 258 | } |
Ante16 | 0:f3ad924cad2e | 259 | |
Ante16 | 0:f3ad924cad2e | 260 | } |
Ante16 | 0:f3ad924cad2e | 261 | |
Ante16 | 0:f3ad924cad2e | 262 | } |
Ante16 | 0:f3ad924cad2e | 263 | |
Ante16 | 0:f3ad924cad2e | 264 | |
Ante16 | 0:f3ad924cad2e | 265 | |
Ante16 | 0:f3ad924cad2e | 266 | void dnevniNacinRada() |
Ante16 | 0:f3ad924cad2e | 267 | { |
Ante16 | 0:f3ad924cad2e | 268 | |
Ante16 | 0:f3ad924cad2e | 269 | if(zabraniPrvuSmjenuDnevnogNacina==0){ |
Ante16 | 0:f3ad924cad2e | 270 | smjenaDnevnogNacina=1; |
Ante16 | 0:f3ad924cad2e | 271 | crveno=1; |
Ante16 | 0:f3ad924cad2e | 272 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 273 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 274 | upaliZuto.attach(&UpaliZutoDnevniNacinRada,8); |
Ante16 | 0:f3ad924cad2e | 275 | ugasiCrveno.attach(&UgasiCrvenoDnevniNacinRada,9); |
Ante16 | 0:f3ad924cad2e | 276 | ugasiZuto.attach(&UgasiZutoDnevniNacinRada,9); |
Ante16 | 0:f3ad924cad2e | 277 | upaliZeleno.attach(&UpaliZelenoDnevniNacinRada,9); |
Ante16 | 0:f3ad924cad2e | 278 | zabraniPrvuSmjenuDnevnogNacina=1; |
Ante16 | 0:f3ad924cad2e | 279 | |
Ante16 | 0:f3ad924cad2e | 280 | } |
Ante16 | 0:f3ad924cad2e | 281 | |
Ante16 | 0:f3ad924cad2e | 282 | if(zabraniDruguSmjenuDnevnogNacina==0){ |
Ante16 | 0:f3ad924cad2e | 283 | smjenaDnevnogNacina=2; |
Ante16 | 0:f3ad924cad2e | 284 | ugasiZeleno.attach(&UgasiZelenoDnevniNacinRada,6); |
Ante16 | 0:f3ad924cad2e | 285 | upaliZuto.attach(&UpaliZutoDnevniNacinRada,6); |
Ante16 | 0:f3ad924cad2e | 286 | ugasiZuto.attach(&UgasiZutoDnevniNacinRada,7); |
Ante16 | 0:f3ad924cad2e | 287 | upaliCrveno.attach(&UpaliCrvenoDnevniNacinRada,7); |
Ante16 | 0:f3ad924cad2e | 288 | trenutniBrojNaZaslonu=9; |
Ante16 | 0:f3ad924cad2e | 289 | zabraniDruguSmjenuDnevnogNacina=1; |
Ante16 | 0:f3ad924cad2e | 290 | |
Ante16 | 0:f3ad924cad2e | 291 | } |
Ante16 | 0:f3ad924cad2e | 292 | |
Ante16 | 0:f3ad924cad2e | 293 | } |
Ante16 | 0:f3ad924cad2e | 294 | |
Ante16 | 0:f3ad924cad2e | 295 | |
Ante16 | 0:f3ad924cad2e | 296 | |
Ante16 | 0:f3ad924cad2e | 297 | void nocniNacinRada(){ |
Ante16 | 0:f3ad924cad2e | 298 | |
Ante16 | 0:f3ad924cad2e | 299 | if(zabraniNocniRad==0){ |
Ante16 | 0:f3ad924cad2e | 300 | |
Ante16 | 0:f3ad924cad2e | 301 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 302 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 303 | zeleno=1; |
Ante16 | 0:f3ad924cad2e | 304 | upaliCrvenoPjesacima(); |
Ante16 | 0:f3ad924cad2e | 305 | zabraniNocniRad=1; |
Ante16 | 0:f3ad924cad2e | 306 | |
Ante16 | 0:f3ad924cad2e | 307 | } |
Ante16 | 0:f3ad924cad2e | 308 | |
Ante16 | 0:f3ad924cad2e | 309 | } |
Ante16 | 0:f3ad924cad2e | 310 | |
Ante16 | 0:f3ad924cad2e | 311 | |
Ante16 | 0:f3ad924cad2e | 312 | |
Ante16 | 0:f3ad924cad2e | 313 | void nacinRadaBlinkZuto(){ |
Ante16 | 0:f3ad924cad2e | 314 | |
Ante16 | 0:f3ad924cad2e | 315 | if(zabraniBlinkZuto==0){ |
Ante16 | 0:f3ad924cad2e | 316 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 317 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 318 | blinkZuto.attach(&upaliBlinkZuto,2); |
Ante16 | 0:f3ad924cad2e | 319 | zabraniBlinkZuto=1; |
Ante16 | 0:f3ad924cad2e | 320 | |
Ante16 | 0:f3ad924cad2e | 321 | } |
Ante16 | 0:f3ad924cad2e | 322 | |
Ante16 | 0:f3ad924cad2e | 323 | } |
Ante16 | 0:f3ad924cad2e | 324 | |
Ante16 | 0:f3ad924cad2e | 325 | |
Ante16 | 0:f3ad924cad2e | 326 | |
Ante16 | 0:f3ad924cad2e | 327 | void NacinRadaUgasen(){ |
Ante16 | 0:f3ad924cad2e | 328 | |
Ante16 | 0:f3ad924cad2e | 329 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 330 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 331 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 332 | zvucniSignal=0; |
Ante16 | 0:f3ad924cad2e | 333 | |
Ante16 | 0:f3ad924cad2e | 334 | } |
Ante16 | 0:f3ad924cad2e | 335 | |
Ante16 | 0:f3ad924cad2e | 336 | |
Ante16 | 0:f3ad924cad2e | 337 | |
Ante16 | 0:f3ad924cad2e | 338 | void promjeni(){ |
Ante16 | 0:f3ad924cad2e | 339 | |
Ante16 | 0:f3ad924cad2e | 340 | upaliCrveno.detach(); |
Ante16 | 0:f3ad924cad2e | 341 | upaliZuto.detach(); |
Ante16 | 0:f3ad924cad2e | 342 | upaliZeleno.detach(); |
Ante16 | 0:f3ad924cad2e | 343 | ugasiCrveno.detach(); |
Ante16 | 0:f3ad924cad2e | 344 | ugasiZuto.detach(); |
Ante16 | 0:f3ad924cad2e | 345 | ugasiZeleno.detach(); |
Ante16 | 0:f3ad924cad2e | 346 | ugasiZvuk.detach(); |
Ante16 | 0:f3ad924cad2e | 347 | promjenaZvukaZaPjesake.detach(); |
Ante16 | 0:f3ad924cad2e | 348 | upaliZvuk.detach(); |
Ante16 | 0:f3ad924cad2e | 349 | paliZaslon.detach(); |
Ante16 | 0:f3ad924cad2e | 350 | blinkZuto.detach(); |
Ante16 | 0:f3ad924cad2e | 351 | |
Ante16 | 0:f3ad924cad2e | 352 | zvucniSignal.period(0.0015); |
Ante16 | 0:f3ad924cad2e | 353 | zvucniSignal=0.5; |
Ante16 | 0:f3ad924cad2e | 354 | zaslon=0x0; |
Ante16 | 0:f3ad924cad2e | 355 | |
Ante16 | 0:f3ad924cad2e | 356 | |
Ante16 | 0:f3ad924cad2e | 357 | crveno=1; |
Ante16 | 0:f3ad924cad2e | 358 | zuto=1; |
Ante16 | 0:f3ad924cad2e | 359 | zeleno=1; |
Ante16 | 0:f3ad924cad2e | 360 | wait(1); |
Ante16 | 0:f3ad924cad2e | 361 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 362 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 363 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 364 | wait(1); |
Ante16 | 0:f3ad924cad2e | 365 | crveno=1; |
Ante16 | 0:f3ad924cad2e | 366 | zuto=1; |
Ante16 | 0:f3ad924cad2e | 367 | zeleno=1; |
Ante16 | 0:f3ad924cad2e | 368 | wait(1); |
Ante16 | 0:f3ad924cad2e | 369 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 370 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 371 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 372 | |
Ante16 | 0:f3ad924cad2e | 373 | zvucniSignal=0; |
Ante16 | 0:f3ad924cad2e | 374 | zvucniSignal.period(0.02); |
Ante16 | 0:f3ad924cad2e | 375 | |
Ante16 | 0:f3ad924cad2e | 376 | zabraniPrvuSmjenuDnevnogNacina=0; |
Ante16 | 0:f3ad924cad2e | 377 | zabraniNocniRad=0; |
Ante16 | 0:f3ad924cad2e | 378 | zabraniBlinkZuto=0; |
Ante16 | 0:f3ad924cad2e | 379 | |
Ante16 | 0:f3ad924cad2e | 380 | for(ponoviPetlju=10;ponoviPetlju>0;ponoviPetlju--){ |
Ante16 | 0:f3ad924cad2e | 381 | |
Ante16 | 0:f3ad924cad2e | 382 | if((prekidac4==0) && (prekidac3==0)){ |
Ante16 | 0:f3ad924cad2e | 383 | |
Ante16 | 0:f3ad924cad2e | 384 | nacinRada=0; |
Ante16 | 0:f3ad924cad2e | 385 | |
Ante16 | 0:f3ad924cad2e | 386 | } |
Ante16 | 0:f3ad924cad2e | 387 | if((prekidac4==1) && (prekidac3==0)){ |
Ante16 | 0:f3ad924cad2e | 388 | |
Ante16 | 0:f3ad924cad2e | 389 | nacinRada=1; |
Ante16 | 0:f3ad924cad2e | 390 | |
Ante16 | 0:f3ad924cad2e | 391 | } |
Ante16 | 0:f3ad924cad2e | 392 | if((prekidac4==0) && (prekidac3==1)){ |
Ante16 | 0:f3ad924cad2e | 393 | |
Ante16 | 0:f3ad924cad2e | 394 | |
Ante16 | 0:f3ad924cad2e | 395 | nacinRada=2; |
Ante16 | 0:f3ad924cad2e | 396 | |
Ante16 | 0:f3ad924cad2e | 397 | } |
Ante16 | 0:f3ad924cad2e | 398 | if((prekidac4==1) && (prekidac3==1)){ |
Ante16 | 0:f3ad924cad2e | 399 | |
Ante16 | 0:f3ad924cad2e | 400 | nacinRada=3; |
Ante16 | 0:f3ad924cad2e | 401 | |
Ante16 | 0:f3ad924cad2e | 402 | } |
Ante16 | 0:f3ad924cad2e | 403 | |
Ante16 | 0:f3ad924cad2e | 404 | } |
Ante16 | 0:f3ad924cad2e | 405 | |
Ante16 | 0:f3ad924cad2e | 406 | } |
Ante16 | 0:f3ad924cad2e | 407 | |
Ante16 | 0:f3ad924cad2e | 408 | |
Ante16 | 0:f3ad924cad2e | 409 | |
Ante16 | 0:f3ad924cad2e | 410 | int main(){ |
Ante16 | 0:f3ad924cad2e | 411 | |
Ante16 | 0:f3ad924cad2e | 412 | promjenaNacinaRada.fall(&promjeni); |
Ante16 | 0:f3ad924cad2e | 413 | tipkaZaPjesakeNocniNacinRada.rise(&upaliZelenoZaPjesakeNocniNacinRada); |
Ante16 | 0:f3ad924cad2e | 414 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 415 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 416 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 417 | zvucniSignal.period(0.0015); |
Ante16 | 0:f3ad924cad2e | 418 | zvucniSignal=0.5; |
Ante16 | 0:f3ad924cad2e | 419 | |
Ante16 | 0:f3ad924cad2e | 420 | |
Ante16 | 0:f3ad924cad2e | 421 | for(i=0;i<10;i++){ |
Ante16 | 0:f3ad924cad2e | 422 | |
Ante16 | 0:f3ad924cad2e | 423 | crveno=1; |
Ante16 | 0:f3ad924cad2e | 424 | wait(0.15); |
Ante16 | 0:f3ad924cad2e | 425 | crveno=0; |
Ante16 | 0:f3ad924cad2e | 426 | zuto=1; |
Ante16 | 0:f3ad924cad2e | 427 | wait(0.15); |
Ante16 | 0:f3ad924cad2e | 428 | zuto=0; |
Ante16 | 0:f3ad924cad2e | 429 | zeleno=1; |
Ante16 | 0:f3ad924cad2e | 430 | wait(0.15); |
Ante16 | 0:f3ad924cad2e | 431 | zeleno=0; |
Ante16 | 0:f3ad924cad2e | 432 | |
Ante16 | 0:f3ad924cad2e | 433 | } |
Ante16 | 0:f3ad924cad2e | 434 | |
Ante16 | 0:f3ad924cad2e | 435 | zvucniSignal=0; |
Ante16 | 0:f3ad924cad2e | 436 | |
Ante16 | 0:f3ad924cad2e | 437 | while(1){ |
Ante16 | 0:f3ad924cad2e | 438 | |
Ante16 | 0:f3ad924cad2e | 439 | do{ |
Ante16 | 0:f3ad924cad2e | 440 | if(nacinRada==0){ |
Ante16 | 0:f3ad924cad2e | 441 | |
Ante16 | 0:f3ad924cad2e | 442 | dnevniNacinRada(); |
Ante16 | 0:f3ad924cad2e | 443 | |
Ante16 | 0:f3ad924cad2e | 444 | } |
Ante16 | 0:f3ad924cad2e | 445 | |
Ante16 | 0:f3ad924cad2e | 446 | } |
Ante16 | 0:f3ad924cad2e | 447 | |
Ante16 | 0:f3ad924cad2e | 448 | while(nacinRada==0); |
Ante16 | 0:f3ad924cad2e | 449 | |
Ante16 | 0:f3ad924cad2e | 450 | do{ |
Ante16 | 0:f3ad924cad2e | 451 | if(nacinRada==1){ |
Ante16 | 0:f3ad924cad2e | 452 | |
Ante16 | 0:f3ad924cad2e | 453 | nocniNacinRada(); |
Ante16 | 0:f3ad924cad2e | 454 | |
Ante16 | 0:f3ad924cad2e | 455 | } |
Ante16 | 0:f3ad924cad2e | 456 | |
Ante16 | 0:f3ad924cad2e | 457 | } |
Ante16 | 0:f3ad924cad2e | 458 | |
Ante16 | 0:f3ad924cad2e | 459 | while(nacinRada==1); |
Ante16 | 0:f3ad924cad2e | 460 | |
Ante16 | 0:f3ad924cad2e | 461 | do{ |
Ante16 | 0:f3ad924cad2e | 462 | if(nacinRada==2){ |
Ante16 | 0:f3ad924cad2e | 463 | |
Ante16 | 0:f3ad924cad2e | 464 | nacinRadaBlinkZuto(); |
Ante16 | 0:f3ad924cad2e | 465 | |
Ante16 | 0:f3ad924cad2e | 466 | } |
Ante16 | 0:f3ad924cad2e | 467 | |
Ante16 | 0:f3ad924cad2e | 468 | } |
Ante16 | 0:f3ad924cad2e | 469 | |
Ante16 | 0:f3ad924cad2e | 470 | while(nacinRada==2); |
Ante16 | 0:f3ad924cad2e | 471 | |
Ante16 | 0:f3ad924cad2e | 472 | do{ |
Ante16 | 0:f3ad924cad2e | 473 | if(nacinRada==3){ |
Ante16 | 0:f3ad924cad2e | 474 | |
Ante16 | 0:f3ad924cad2e | 475 | NacinRadaUgasen(); |
Ante16 | 0:f3ad924cad2e | 476 | |
Ante16 | 0:f3ad924cad2e | 477 | } |
Ante16 | 0:f3ad924cad2e | 478 | |
Ante16 | 0:f3ad924cad2e | 479 | } |
Ante16 | 0:f3ad924cad2e | 480 | |
Ante16 | 0:f3ad924cad2e | 481 | while(nacinRada==3); |
Ante16 | 0:f3ad924cad2e | 482 | |
Ante16 | 0:f3ad924cad2e | 483 | } |
Ante16 | 0:f3ad924cad2e | 484 | |
Ante16 | 0:f3ad924cad2e | 485 | } |