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

Committer:
divicic
Date:
Thu Nov 26 08:13:48 2020 +0000
Revision:
0:2a22ea0dfee6
Konstrukcijski rad

Who changed what in which revision?

UserRevisionLine numberNew 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 }