Konstrukcijski rad
Dependencies: mbed TrafficFlash TrafficLight2 TrafficLight1
Sklop simulira rad semofora jednostavnog križanja sa integriranim: • Vremenskim brojačima trajanja aktivnog zelenog signalnog svjetla • Blinkajućim zelenim svjetlom kao upozorenje na skoro paljenje žutog signalnog svjetla • Tipkalom koje služi za pješake (naizmjenična funkcija, koristi se jedno za oba semofora) • Petljama koje detektiraju vozilo ispred semafora Sklop se sastaji: • Mikroupravljač STM32F407VTG6 - 1 kom • 7-segment LED display - 2 kom • LE diode 5mm - 6 kom • Tipkalo - 1 kom • Otpornik 1/4W, 400 ohm - 6 kom • DIP SW, 4 kontakta -1 kom
Funkcionalni opis: Signalizacija LE diodama: • Prikaz semofora – svaki semofor ostvaren pomoću tri LED, crvena, žuta i zelena • Brojači semofora – svaki semofor ima svoj brojač trajanja zelenog LED svjetla koji je ostvaren pomoću 7-segmentnog displeja
Digitalni ulazi: • Tipkalo - funkcija je simulirati tipkalo za pješake na semoforu, pritiskom na tipkalo, semofor mijenja stanje • DIP switch – korištena dva digitalna inputa koji simuliraju stanje petlje na semoforu, ovisno o stanju petlje ispred jednog i drugog semofora, semofori mijenjaju svoja stanja
main.cpp@0:2a22ea0dfee6, 2020-11-26 (annotated)
- Committer:
- divicic
- Date:
- Thu Nov 26 08:13:48 2020 +0000
- Revision:
- 0:2a22ea0dfee6
Konstrukcijski rad
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
divicic | 0:2a22ea0dfee6 | 1 | #include "mbed.h" |
divicic | 0:2a22ea0dfee6 | 2 | #include "TrafficFlash.h" |
divicic | 0:2a22ea0dfee6 | 3 | #include "TrafficLight1.h" |
divicic | 0:2a22ea0dfee6 | 4 | #include "TrafficLight2.h" |
divicic | 0:2a22ea0dfee6 | 5 | |
divicic | 0:2a22ea0dfee6 | 6 | //Ticker, Loop detectors |
divicic | 0:2a22ea0dfee6 | 7 | Ticker LDT1; |
divicic | 0:2a22ea0dfee6 | 8 | Ticker LDT2; |
divicic | 0:2a22ea0dfee6 | 9 | |
divicic | 0:2a22ea0dfee6 | 10 | //Users functions |
divicic | 0:2a22ea0dfee6 | 11 | void TL1_DSP(void); |
divicic | 0:2a22ea0dfee6 | 12 | void TL2_DSP(void); |
divicic | 0:2a22ea0dfee6 | 13 | void DSP1_Time(); |
divicic | 0:2a22ea0dfee6 | 14 | void DSP2_Time(); |
divicic | 0:2a22ea0dfee6 | 15 | void TL1_button(void); |
divicic | 0:2a22ea0dfee6 | 16 | void TL2_button(void); |
divicic | 0:2a22ea0dfee6 | 17 | void LoopDT1(void); |
divicic | 0:2a22ea0dfee6 | 18 | void LoopDT2(void); |
divicic | 0:2a22ea0dfee6 | 19 | void Task_1(void); |
divicic | 0:2a22ea0dfee6 | 20 | void Task_2(void); |
divicic | 0:2a22ea0dfee6 | 21 | void Task_3(void); |
divicic | 0:2a22ea0dfee6 | 22 | void Task_4(void); |
divicic | 0:2a22ea0dfee6 | 23 | void Task_5(void); |
divicic | 0:2a22ea0dfee6 | 24 | void Task_6(void); |
divicic | 0:2a22ea0dfee6 | 25 | void Task_7(void); |
divicic | 0:2a22ea0dfee6 | 26 | |
divicic | 0:2a22ea0dfee6 | 27 | //Global variable |
divicic | 0:2a22ea0dfee6 | 28 | char i=0,j=0; |
divicic | 0:2a22ea0dfee6 | 29 | |
divicic | 0:2a22ea0dfee6 | 30 | //Timers |
divicic | 0:2a22ea0dfee6 | 31 | Timer timer1; |
divicic | 0:2a22ea0dfee6 | 32 | Timer timer2; |
divicic | 0:2a22ea0dfee6 | 33 | Timer debounce; |
divicic | 0:2a22ea0dfee6 | 34 | |
divicic | 0:2a22ea0dfee6 | 35 | //Digital inputs |
divicic | 0:2a22ea0dfee6 | 36 | DigitalIn sw1(PE_4); |
divicic | 0:2a22ea0dfee6 | 37 | DigitalIn sw2(PC_13); |
divicic | 0:2a22ea0dfee6 | 38 | |
divicic | 0:2a22ea0dfee6 | 39 | //7-segment display, TLD1 digital outputs |
divicic | 0:2a22ea0dfee6 | 40 | DigitalOut TLD1_A(PE_10); |
divicic | 0:2a22ea0dfee6 | 41 | DigitalOut TLD1_B(PE_11); |
divicic | 0:2a22ea0dfee6 | 42 | DigitalOut TLD1_C(PE_12); |
divicic | 0:2a22ea0dfee6 | 43 | DigitalOut TLD1_D(PE_13); |
divicic | 0:2a22ea0dfee6 | 44 | DigitalOut TLD1_E(PE_14); |
divicic | 0:2a22ea0dfee6 | 45 | DigitalOut TLD1_F(PE_15); |
divicic | 0:2a22ea0dfee6 | 46 | DigitalOut TLD1_G(PB_10); |
divicic | 0:2a22ea0dfee6 | 47 | |
divicic | 0:2a22ea0dfee6 | 48 | //7-segment display, TLD2 digital outputs |
divicic | 0:2a22ea0dfee6 | 49 | DigitalOut TLD2_A(PB_0); |
divicic | 0:2a22ea0dfee6 | 50 | DigitalOut TLD2_B(PB_8); |
divicic | 0:2a22ea0dfee6 | 51 | DigitalOut TLD2_C(PB_9); |
divicic | 0:2a22ea0dfee6 | 52 | DigitalOut TLD2_D(PE_1); |
divicic | 0:2a22ea0dfee6 | 53 | DigitalOut TLD2_E(PE_7); |
divicic | 0:2a22ea0dfee6 | 54 | DigitalOut TLD2_F(PE_8); |
divicic | 0:2a22ea0dfee6 | 55 | DigitalOut TLD2_G(PE_9); |
divicic | 0:2a22ea0dfee6 | 56 | |
divicic | 0:2a22ea0dfee6 | 57 | //Traffic ligt 1, digital outputs |
divicic | 0:2a22ea0dfee6 | 58 | TrafficLight1 TL1_R(PC_0); |
divicic | 0:2a22ea0dfee6 | 59 | TrafficLight1 TL1_Y(PC_1); |
divicic | 0:2a22ea0dfee6 | 60 | TrafficLight1 TL1_G(PC_2); |
divicic | 0:2a22ea0dfee6 | 61 | |
divicic | 0:2a22ea0dfee6 | 62 | //Traffic light 2, digital inputs |
divicic | 0:2a22ea0dfee6 | 63 | TrafficLight2 TL2_R(PA_0); |
divicic | 0:2a22ea0dfee6 | 64 | TrafficLight2 TL2_Y(PA_1); |
divicic | 0:2a22ea0dfee6 | 65 | TrafficLight2 TL2_G(PA_2); |
divicic | 0:2a22ea0dfee6 | 66 | |
divicic | 0:2a22ea0dfee6 | 67 | //Traffic light button, interrupt |
divicic | 0:2a22ea0dfee6 | 68 | InterruptIn button(PE_5); |
divicic | 0:2a22ea0dfee6 | 69 | |
divicic | 0:2a22ea0dfee6 | 70 | int main() |
divicic | 0:2a22ea0dfee6 | 71 | { |
divicic | 0:2a22ea0dfee6 | 72 | sw1.mode(PullUp); |
divicic | 0:2a22ea0dfee6 | 73 | sw2.mode(PullUp); |
divicic | 0:2a22ea0dfee6 | 74 | Task_1(); |
divicic | 0:2a22ea0dfee6 | 75 | |
divicic | 0:2a22ea0dfee6 | 76 | while(true) { |
divicic | 0:2a22ea0dfee6 | 77 | //Dogadaji |
divicic | 0:2a22ea0dfee6 | 78 | Task_2(); |
divicic | 0:2a22ea0dfee6 | 79 | Task_3(); |
divicic | 0:2a22ea0dfee6 | 80 | Task_4(); |
divicic | 0:2a22ea0dfee6 | 81 | Task_5(); |
divicic | 0:2a22ea0dfee6 | 82 | Task_6(); |
divicic | 0:2a22ea0dfee6 | 83 | Task_7(); |
divicic | 0:2a22ea0dfee6 | 84 | } |
divicic | 0:2a22ea0dfee6 | 85 | } |
divicic | 0:2a22ea0dfee6 | 86 | |
divicic | 0:2a22ea0dfee6 | 87 | //Users functions |
divicic | 0:2a22ea0dfee6 | 88 | void TL1_DSP(char i) |
divicic | 0:2a22ea0dfee6 | 89 | { |
divicic | 0:2a22ea0dfee6 | 90 | |
divicic | 0:2a22ea0dfee6 | 91 | switch (9-i) { |
divicic | 0:2a22ea0dfee6 | 92 | case 0: |
divicic | 0:2a22ea0dfee6 | 93 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 94 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 95 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 96 | TLD1_D = 1; |
divicic | 0:2a22ea0dfee6 | 97 | TLD1_E = 1; |
divicic | 0:2a22ea0dfee6 | 98 | TLD1_F = 1; |
divicic | 0:2a22ea0dfee6 | 99 | TLD1_G = 0; |
divicic | 0:2a22ea0dfee6 | 100 | break; |
divicic | 0:2a22ea0dfee6 | 101 | case 1: |
divicic | 0:2a22ea0dfee6 | 102 | TLD1_A = 0; |
divicic | 0:2a22ea0dfee6 | 103 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 104 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 105 | TLD1_D = 0; |
divicic | 0:2a22ea0dfee6 | 106 | TLD1_E = 0; |
divicic | 0:2a22ea0dfee6 | 107 | TLD1_F = 0; |
divicic | 0:2a22ea0dfee6 | 108 | TLD1_G = 0; |
divicic | 0:2a22ea0dfee6 | 109 | break; |
divicic | 0:2a22ea0dfee6 | 110 | case 2: |
divicic | 0:2a22ea0dfee6 | 111 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 112 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 113 | TLD1_C = 0; |
divicic | 0:2a22ea0dfee6 | 114 | TLD1_D = 1; |
divicic | 0:2a22ea0dfee6 | 115 | TLD1_E = 1; |
divicic | 0:2a22ea0dfee6 | 116 | TLD1_F = 0; |
divicic | 0:2a22ea0dfee6 | 117 | TLD1_G = 1; |
divicic | 0:2a22ea0dfee6 | 118 | break; |
divicic | 0:2a22ea0dfee6 | 119 | case 3: |
divicic | 0:2a22ea0dfee6 | 120 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 121 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 122 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 123 | TLD1_D = 1; |
divicic | 0:2a22ea0dfee6 | 124 | TLD1_E = 0; |
divicic | 0:2a22ea0dfee6 | 125 | TLD1_F = 0; |
divicic | 0:2a22ea0dfee6 | 126 | TLD1_G = 1; |
divicic | 0:2a22ea0dfee6 | 127 | break; |
divicic | 0:2a22ea0dfee6 | 128 | case 4: |
divicic | 0:2a22ea0dfee6 | 129 | TLD1_A = 0; |
divicic | 0:2a22ea0dfee6 | 130 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 131 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 132 | TLD1_D = 0; |
divicic | 0:2a22ea0dfee6 | 133 | TLD1_E = 0; |
divicic | 0:2a22ea0dfee6 | 134 | TLD1_F = 1; |
divicic | 0:2a22ea0dfee6 | 135 | TLD1_G = 1; |
divicic | 0:2a22ea0dfee6 | 136 | break; |
divicic | 0:2a22ea0dfee6 | 137 | case 5: |
divicic | 0:2a22ea0dfee6 | 138 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 139 | TLD1_B = 0; |
divicic | 0:2a22ea0dfee6 | 140 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 141 | TLD1_D = 1; |
divicic | 0:2a22ea0dfee6 | 142 | TLD1_E = 0; |
divicic | 0:2a22ea0dfee6 | 143 | TLD1_F = 1; |
divicic | 0:2a22ea0dfee6 | 144 | TLD1_G = 1; |
divicic | 0:2a22ea0dfee6 | 145 | break; |
divicic | 0:2a22ea0dfee6 | 146 | case 6: |
divicic | 0:2a22ea0dfee6 | 147 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 148 | TLD1_B = 0; |
divicic | 0:2a22ea0dfee6 | 149 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 150 | TLD1_D = 1; |
divicic | 0:2a22ea0dfee6 | 151 | TLD1_E = 1; |
divicic | 0:2a22ea0dfee6 | 152 | TLD1_F = 1; |
divicic | 0:2a22ea0dfee6 | 153 | TLD1_G = 1; |
divicic | 0:2a22ea0dfee6 | 154 | break; |
divicic | 0:2a22ea0dfee6 | 155 | case 7: |
divicic | 0:2a22ea0dfee6 | 156 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 157 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 158 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 159 | TLD1_D = 0; |
divicic | 0:2a22ea0dfee6 | 160 | TLD1_E = 0; |
divicic | 0:2a22ea0dfee6 | 161 | TLD1_F = 0; |
divicic | 0:2a22ea0dfee6 | 162 | TLD1_G = 0; |
divicic | 0:2a22ea0dfee6 | 163 | break; |
divicic | 0:2a22ea0dfee6 | 164 | case 8: |
divicic | 0:2a22ea0dfee6 | 165 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 166 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 167 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 168 | TLD1_D = 1; |
divicic | 0:2a22ea0dfee6 | 169 | TLD1_E = 1; |
divicic | 0:2a22ea0dfee6 | 170 | TLD1_F = 1; |
divicic | 0:2a22ea0dfee6 | 171 | TLD1_G = 1; |
divicic | 0:2a22ea0dfee6 | 172 | break; |
divicic | 0:2a22ea0dfee6 | 173 | case 9: |
divicic | 0:2a22ea0dfee6 | 174 | TLD1_A = 1; |
divicic | 0:2a22ea0dfee6 | 175 | TLD1_B = 1; |
divicic | 0:2a22ea0dfee6 | 176 | TLD1_C = 1; |
divicic | 0:2a22ea0dfee6 | 177 | TLD1_D = 1; |
divicic | 0:2a22ea0dfee6 | 178 | TLD1_E = 0; |
divicic | 0:2a22ea0dfee6 | 179 | TLD1_F = 1; |
divicic | 0:2a22ea0dfee6 | 180 | TLD1_G = 1; |
divicic | 0:2a22ea0dfee6 | 181 | break; |
divicic | 0:2a22ea0dfee6 | 182 | } |
divicic | 0:2a22ea0dfee6 | 183 | } |
divicic | 0:2a22ea0dfee6 | 184 | void TL2_DSP(char j) |
divicic | 0:2a22ea0dfee6 | 185 | { |
divicic | 0:2a22ea0dfee6 | 186 | |
divicic | 0:2a22ea0dfee6 | 187 | switch(9-j) { |
divicic | 0:2a22ea0dfee6 | 188 | case 0: |
divicic | 0:2a22ea0dfee6 | 189 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 190 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 191 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 192 | TLD2_D = 1; |
divicic | 0:2a22ea0dfee6 | 193 | TLD2_E = 1; |
divicic | 0:2a22ea0dfee6 | 194 | TLD2_F = 1; |
divicic | 0:2a22ea0dfee6 | 195 | TLD2_G = 0; |
divicic | 0:2a22ea0dfee6 | 196 | break; |
divicic | 0:2a22ea0dfee6 | 197 | case 1: |
divicic | 0:2a22ea0dfee6 | 198 | TLD2_A = 0; |
divicic | 0:2a22ea0dfee6 | 199 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 200 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 201 | TLD2_D = 0; |
divicic | 0:2a22ea0dfee6 | 202 | TLD2_E = 0; |
divicic | 0:2a22ea0dfee6 | 203 | TLD2_F = 0; |
divicic | 0:2a22ea0dfee6 | 204 | TLD2_G = 0; |
divicic | 0:2a22ea0dfee6 | 205 | break; |
divicic | 0:2a22ea0dfee6 | 206 | case 2: |
divicic | 0:2a22ea0dfee6 | 207 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 208 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 209 | TLD2_C = 0; |
divicic | 0:2a22ea0dfee6 | 210 | TLD2_D = 1; |
divicic | 0:2a22ea0dfee6 | 211 | TLD2_E = 1; |
divicic | 0:2a22ea0dfee6 | 212 | TLD2_F = 0; |
divicic | 0:2a22ea0dfee6 | 213 | TLD2_G = 1; |
divicic | 0:2a22ea0dfee6 | 214 | break; |
divicic | 0:2a22ea0dfee6 | 215 | case 3: |
divicic | 0:2a22ea0dfee6 | 216 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 217 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 218 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 219 | TLD2_D = 1; |
divicic | 0:2a22ea0dfee6 | 220 | TLD2_E = 0; |
divicic | 0:2a22ea0dfee6 | 221 | TLD2_F = 0; |
divicic | 0:2a22ea0dfee6 | 222 | TLD2_G = 1; |
divicic | 0:2a22ea0dfee6 | 223 | break; |
divicic | 0:2a22ea0dfee6 | 224 | case 4: |
divicic | 0:2a22ea0dfee6 | 225 | TLD2_A = 0; |
divicic | 0:2a22ea0dfee6 | 226 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 227 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 228 | TLD2_D = 0; |
divicic | 0:2a22ea0dfee6 | 229 | TLD2_E = 0; |
divicic | 0:2a22ea0dfee6 | 230 | TLD2_F = 1; |
divicic | 0:2a22ea0dfee6 | 231 | TLD2_G = 1; |
divicic | 0:2a22ea0dfee6 | 232 | break; |
divicic | 0:2a22ea0dfee6 | 233 | case 5: |
divicic | 0:2a22ea0dfee6 | 234 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 235 | TLD2_B = 0; |
divicic | 0:2a22ea0dfee6 | 236 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 237 | TLD2_D = 1; |
divicic | 0:2a22ea0dfee6 | 238 | TLD2_E = 0; |
divicic | 0:2a22ea0dfee6 | 239 | TLD2_F = 1; |
divicic | 0:2a22ea0dfee6 | 240 | TLD2_G = 1; |
divicic | 0:2a22ea0dfee6 | 241 | break; |
divicic | 0:2a22ea0dfee6 | 242 | case 6: |
divicic | 0:2a22ea0dfee6 | 243 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 244 | TLD2_B = 0; |
divicic | 0:2a22ea0dfee6 | 245 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 246 | TLD2_D = 1; |
divicic | 0:2a22ea0dfee6 | 247 | TLD2_E = 1; |
divicic | 0:2a22ea0dfee6 | 248 | TLD2_F = 1; |
divicic | 0:2a22ea0dfee6 | 249 | TLD2_G = 1; |
divicic | 0:2a22ea0dfee6 | 250 | break; |
divicic | 0:2a22ea0dfee6 | 251 | case 7: |
divicic | 0:2a22ea0dfee6 | 252 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 253 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 254 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 255 | TLD2_D = 0; |
divicic | 0:2a22ea0dfee6 | 256 | TLD2_E = 0; |
divicic | 0:2a22ea0dfee6 | 257 | TLD2_F = 0; |
divicic | 0:2a22ea0dfee6 | 258 | TLD2_G = 0; |
divicic | 0:2a22ea0dfee6 | 259 | break; |
divicic | 0:2a22ea0dfee6 | 260 | case 8: |
divicic | 0:2a22ea0dfee6 | 261 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 262 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 263 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 264 | TLD2_D = 1; |
divicic | 0:2a22ea0dfee6 | 265 | TLD2_E = 1; |
divicic | 0:2a22ea0dfee6 | 266 | TLD2_F = 1; |
divicic | 0:2a22ea0dfee6 | 267 | TLD2_G = 1; |
divicic | 0:2a22ea0dfee6 | 268 | break; |
divicic | 0:2a22ea0dfee6 | 269 | case 9: |
divicic | 0:2a22ea0dfee6 | 270 | TLD2_A = 1; |
divicic | 0:2a22ea0dfee6 | 271 | TLD2_B = 1; |
divicic | 0:2a22ea0dfee6 | 272 | TLD2_C = 1; |
divicic | 0:2a22ea0dfee6 | 273 | TLD2_D = 1; |
divicic | 0:2a22ea0dfee6 | 274 | TLD2_E = 0; |
divicic | 0:2a22ea0dfee6 | 275 | TLD2_F = 1; |
divicic | 0:2a22ea0dfee6 | 276 | TLD2_G = 1; |
divicic | 0:2a22ea0dfee6 | 277 | break; |
divicic | 0:2a22ea0dfee6 | 278 | } |
divicic | 0:2a22ea0dfee6 | 279 | } |
divicic | 0:2a22ea0dfee6 | 280 | void DSP1_Time() |
divicic | 0:2a22ea0dfee6 | 281 | { |
divicic | 0:2a22ea0dfee6 | 282 | while(i<10) { |
divicic | 0:2a22ea0dfee6 | 283 | switch(i) { |
divicic | 0:2a22ea0dfee6 | 284 | case 6: |
divicic | 0:2a22ea0dfee6 | 285 | TL1_R.Off(); |
divicic | 0:2a22ea0dfee6 | 286 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 287 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 288 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 289 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 290 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 291 | break; |
divicic | 0:2a22ea0dfee6 | 292 | case 7: |
divicic | 0:2a22ea0dfee6 | 293 | TL1_R.Off(); |
divicic | 0:2a22ea0dfee6 | 294 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 295 | TL1_G.On(); |
divicic | 0:2a22ea0dfee6 | 296 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 297 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 298 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 299 | break; |
divicic | 0:2a22ea0dfee6 | 300 | case 8: |
divicic | 0:2a22ea0dfee6 | 301 | TL1_R.Off(); |
divicic | 0:2a22ea0dfee6 | 302 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 303 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 304 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 305 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 306 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 307 | break; |
divicic | 0:2a22ea0dfee6 | 308 | case 9: |
divicic | 0:2a22ea0dfee6 | 309 | TL1_R.Off(); |
divicic | 0:2a22ea0dfee6 | 310 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 311 | TL1_G.On(); |
divicic | 0:2a22ea0dfee6 | 312 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 313 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 314 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 315 | break; |
divicic | 0:2a22ea0dfee6 | 316 | default: |
divicic | 0:2a22ea0dfee6 | 317 | TL1_R.Off(); |
divicic | 0:2a22ea0dfee6 | 318 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 319 | TL1_G.On(); |
divicic | 0:2a22ea0dfee6 | 320 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 321 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 322 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 323 | } |
divicic | 0:2a22ea0dfee6 | 324 | if (timer1.read_ms()>=1000) { |
divicic | 0:2a22ea0dfee6 | 325 | TL1_DSP(i); |
divicic | 0:2a22ea0dfee6 | 326 | timer1.reset(); |
divicic | 0:2a22ea0dfee6 | 327 | i++; |
divicic | 0:2a22ea0dfee6 | 328 | } |
divicic | 0:2a22ea0dfee6 | 329 | debounce.start(); |
divicic | 0:2a22ea0dfee6 | 330 | button.rise(&TL1_button); |
divicic | 0:2a22ea0dfee6 | 331 | LDT1.attach(&LoopDT1, 0.2); |
divicic | 0:2a22ea0dfee6 | 332 | } |
divicic | 0:2a22ea0dfee6 | 333 | i=0; |
divicic | 0:2a22ea0dfee6 | 334 | timer1.stop(); |
divicic | 0:2a22ea0dfee6 | 335 | } |
divicic | 0:2a22ea0dfee6 | 336 | void DSP2_Time() |
divicic | 0:2a22ea0dfee6 | 337 | { |
divicic | 0:2a22ea0dfee6 | 338 | while(j<10) { |
divicic | 0:2a22ea0dfee6 | 339 | switch(j) { |
divicic | 0:2a22ea0dfee6 | 340 | case 6: |
divicic | 0:2a22ea0dfee6 | 341 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 342 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 343 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 344 | TL2_R.Off(); |
divicic | 0:2a22ea0dfee6 | 345 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 346 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 347 | break; |
divicic | 0:2a22ea0dfee6 | 348 | case 7: |
divicic | 0:2a22ea0dfee6 | 349 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 350 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 351 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 352 | TL2_R.Off(); |
divicic | 0:2a22ea0dfee6 | 353 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 354 | TL2_G.On(); |
divicic | 0:2a22ea0dfee6 | 355 | break; |
divicic | 0:2a22ea0dfee6 | 356 | case 8: |
divicic | 0:2a22ea0dfee6 | 357 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 358 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 359 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 360 | TL2_R.Off(); |
divicic | 0:2a22ea0dfee6 | 361 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 362 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 363 | break; |
divicic | 0:2a22ea0dfee6 | 364 | case 9: |
divicic | 0:2a22ea0dfee6 | 365 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 366 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 367 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 368 | TL2_R.Off(); |
divicic | 0:2a22ea0dfee6 | 369 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 370 | TL2_G.On(); |
divicic | 0:2a22ea0dfee6 | 371 | break; |
divicic | 0:2a22ea0dfee6 | 372 | default: |
divicic | 0:2a22ea0dfee6 | 373 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 374 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 375 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 376 | TL2_R.Off(); |
divicic | 0:2a22ea0dfee6 | 377 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 378 | TL2_G.On(); |
divicic | 0:2a22ea0dfee6 | 379 | } |
divicic | 0:2a22ea0dfee6 | 380 | if (timer2.read_ms()>=1000) { |
divicic | 0:2a22ea0dfee6 | 381 | TL2_DSP(j); |
divicic | 0:2a22ea0dfee6 | 382 | timer2.reset(); |
divicic | 0:2a22ea0dfee6 | 383 | j++; |
divicic | 0:2a22ea0dfee6 | 384 | } |
divicic | 0:2a22ea0dfee6 | 385 | debounce.start(); |
divicic | 0:2a22ea0dfee6 | 386 | button.rise(&TL2_button); |
divicic | 0:2a22ea0dfee6 | 387 | LDT2.attach(&LoopDT2, 0.2); |
divicic | 0:2a22ea0dfee6 | 388 | } |
divicic | 0:2a22ea0dfee6 | 389 | j=0; |
divicic | 0:2a22ea0dfee6 | 390 | timer2.stop(); |
divicic | 0:2a22ea0dfee6 | 391 | } |
divicic | 0:2a22ea0dfee6 | 392 | void TL1_button() |
divicic | 0:2a22ea0dfee6 | 393 | { |
divicic | 0:2a22ea0dfee6 | 394 | if (debounce.read_ms()>200) |
divicic | 0:2a22ea0dfee6 | 395 | i=10; |
divicic | 0:2a22ea0dfee6 | 396 | debounce.reset(); |
divicic | 0:2a22ea0dfee6 | 397 | } |
divicic | 0:2a22ea0dfee6 | 398 | void TL2_button() |
divicic | 0:2a22ea0dfee6 | 399 | { |
divicic | 0:2a22ea0dfee6 | 400 | if (debounce.read_ms()>200) |
divicic | 0:2a22ea0dfee6 | 401 | j=10; |
divicic | 0:2a22ea0dfee6 | 402 | debounce.reset(); |
divicic | 0:2a22ea0dfee6 | 403 | } |
divicic | 0:2a22ea0dfee6 | 404 | void LoopDT1() |
divicic | 0:2a22ea0dfee6 | 405 | { |
divicic | 0:2a22ea0dfee6 | 406 | if (sw1==1 && sw2==0) { |
divicic | 0:2a22ea0dfee6 | 407 | i=10; |
divicic | 0:2a22ea0dfee6 | 408 | } |
divicic | 0:2a22ea0dfee6 | 409 | } |
divicic | 0:2a22ea0dfee6 | 410 | void LoopDT2() |
divicic | 0:2a22ea0dfee6 | 411 | { |
divicic | 0:2a22ea0dfee6 | 412 | if (sw2==1 && sw1==0) { |
divicic | 0:2a22ea0dfee6 | 413 | j=10; |
divicic | 0:2a22ea0dfee6 | 414 | } |
divicic | 0:2a22ea0dfee6 | 415 | } |
divicic | 0:2a22ea0dfee6 | 416 | void Task_1() |
divicic | 0:2a22ea0dfee6 | 417 | { |
divicic | 0:2a22ea0dfee6 | 418 | TL1_R.Off(); |
divicic | 0:2a22ea0dfee6 | 419 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 420 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 421 | TL2_R.Off(); |
divicic | 0:2a22ea0dfee6 | 422 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 423 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 424 | wait(1); |
divicic | 0:2a22ea0dfee6 | 425 | } |
divicic | 0:2a22ea0dfee6 | 426 | void Task_2() |
divicic | 0:2a22ea0dfee6 | 427 | { |
divicic | 0:2a22ea0dfee6 | 428 | timer1.start(); |
divicic | 0:2a22ea0dfee6 | 429 | DSP1_Time(); |
divicic | 0:2a22ea0dfee6 | 430 | TLD1_A = 0; |
divicic | 0:2a22ea0dfee6 | 431 | TLD1_B = 0; |
divicic | 0:2a22ea0dfee6 | 432 | TLD1_C = 0; |
divicic | 0:2a22ea0dfee6 | 433 | TLD1_D = 0; |
divicic | 0:2a22ea0dfee6 | 434 | TLD1_E = 0; |
divicic | 0:2a22ea0dfee6 | 435 | TLD1_F = 0; |
divicic | 0:2a22ea0dfee6 | 436 | TLD1_G = 0; |
divicic | 0:2a22ea0dfee6 | 437 | } |
divicic | 0:2a22ea0dfee6 | 438 | void Task_3() |
divicic | 0:2a22ea0dfee6 | 439 | { |
divicic | 0:2a22ea0dfee6 | 440 | TL1_R.Off(); |
divicic | 0:2a22ea0dfee6 | 441 | TL1_Y.On(); |
divicic | 0:2a22ea0dfee6 | 442 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 443 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 444 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 445 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 446 | wait(1.5); |
divicic | 0:2a22ea0dfee6 | 447 | } |
divicic | 0:2a22ea0dfee6 | 448 | void Task_4() |
divicic | 0:2a22ea0dfee6 | 449 | { |
divicic | 0:2a22ea0dfee6 | 450 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 451 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 452 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 453 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 454 | TL2_Y.On(); |
divicic | 0:2a22ea0dfee6 | 455 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 456 | wait(1.5); |
divicic | 0:2a22ea0dfee6 | 457 | } |
divicic | 0:2a22ea0dfee6 | 458 | void Task_5() |
divicic | 0:2a22ea0dfee6 | 459 | { |
divicic | 0:2a22ea0dfee6 | 460 | timer2.start(); |
divicic | 0:2a22ea0dfee6 | 461 | DSP2_Time(); |
divicic | 0:2a22ea0dfee6 | 462 | TLD2_A = 0; |
divicic | 0:2a22ea0dfee6 | 463 | TLD2_B = 0; |
divicic | 0:2a22ea0dfee6 | 464 | TLD2_C = 0; |
divicic | 0:2a22ea0dfee6 | 465 | TLD2_D = 0; |
divicic | 0:2a22ea0dfee6 | 466 | TLD2_E = 0; |
divicic | 0:2a22ea0dfee6 | 467 | TLD2_F = 0; |
divicic | 0:2a22ea0dfee6 | 468 | TLD2_G = 0; |
divicic | 0:2a22ea0dfee6 | 469 | } |
divicic | 0:2a22ea0dfee6 | 470 | void Task_6() |
divicic | 0:2a22ea0dfee6 | 471 | { |
divicic | 0:2a22ea0dfee6 | 472 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 473 | TL1_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 474 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 475 | TL2_R.Off(); |
divicic | 0:2a22ea0dfee6 | 476 | TL2_Y.On(); |
divicic | 0:2a22ea0dfee6 | 477 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 478 | wait(1.5); |
divicic | 0:2a22ea0dfee6 | 479 | } |
divicic | 0:2a22ea0dfee6 | 480 | void Task_7() |
divicic | 0:2a22ea0dfee6 | 481 | { |
divicic | 0:2a22ea0dfee6 | 482 | TL1_R.On(); |
divicic | 0:2a22ea0dfee6 | 483 | TL1_Y.On(); |
divicic | 0:2a22ea0dfee6 | 484 | TL1_G.Off(); |
divicic | 0:2a22ea0dfee6 | 485 | TL2_R.On(); |
divicic | 0:2a22ea0dfee6 | 486 | TL2_Y.Off(); |
divicic | 0:2a22ea0dfee6 | 487 | TL2_G.Off(); |
divicic | 0:2a22ea0dfee6 | 488 | wait(1.5); |
divicic | 0:2a22ea0dfee6 | 489 | } |