Tomás López / Mbed 2 deprecated AtrapaLuz

Dependencies:   mbed

Committer:
tololpez
Date:
Tue Jun 07 02:28:09 2022 +0000
Revision:
0:3ef421501119
AtrapaLuz;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tololpez 0:3ef421501119 1 #include "mbed.h"
tololpez 0:3ef421501119 2 #define CANT_LEDS 7
tololpez 0:3ef421501119 3
tololpez 0:3ef421501119 4
tololpez 0:3ef421501119 5 BusOut Leds(PTC12,PTC13,PTC16,PTC17,PTA16,PTA17,PTE31,PTD6);
tololpez 0:3ef421501119 6 DigitalOut L1(PTC12);
tololpez 0:3ef421501119 7 DigitalOut L2(PTC13);
tololpez 0:3ef421501119 8 DigitalOut L3(PTC16);
tololpez 0:3ef421501119 9 DigitalOut L4(PTC17);
tololpez 0:3ef421501119 10 DigitalOut L5(PTA16);
tololpez 0:3ef421501119 11 DigitalOut L6(PTA17);
tololpez 0:3ef421501119 12 DigitalOut L7(PTE31);
tololpez 0:3ef421501119 13 DigitalOut L8(PTD6);
tololpez 0:3ef421501119 14 DigitalIn P1(PTD7);
tololpez 0:3ef421501119 15 DigitalIn P2(PTC7);
tololpez 0:3ef421501119 16
tololpez 0:3ef421501119 17 DigitalOut DISPLAY1(PTE20);
tololpez 0:3ef421501119 18 DigitalOut A(PTE5);
tololpez 0:3ef421501119 19 DigitalOut B(PTE4);
tololpez 0:3ef421501119 20 DigitalOut C(PTE3);
tololpez 0:3ef421501119 21 DigitalOut D(PTE2);
tololpez 0:3ef421501119 22 DigitalOut E(PTB11);
tololpez 0:3ef421501119 23 DigitalOut F(PTB10);
tololpez 0:3ef421501119 24 DigitalOut G(PTB9);
tololpez 0:3ef421501119 25 DigitalOut DISPLAY2(PTB8);
tololpez 0:3ef421501119 26
tololpez 0:3ef421501119 27 Ticker tick;
tololpez 0:3ef421501119 28 Serial pc(USBTX, USBRX);
tololpez 0:3ef421501119 29 void EstadoJuego();
tololpez 0:3ef421501119 30 void display(int x);
tololpez 0:3ef421501119 31 char decenas;
tololpez 0:3ef421501119 32 char unidades;
tololpez 0:3ef421501119 33 int d[10] = {0b1111110 , 0b0110000 , 0b1101101 , 0b1111001 , 0b0110011 , 0b1011011 , 0b1011111 , 0b1110000 , 0b1111111 , 0b1111011};
tololpez 0:3ef421501119 34 int tiempo=0,tiempo2=0,tiempo3=0,Estado=0,valor=0,mux_display=0;
tololpez 0:3ef421501119 35 int PuntajeJ1=0,PuntajeJ2=0,t1=0,LedParado,pj=0;
tololpez 0:3ef421501119 36
tololpez 0:3ef421501119 37 void interrupcion()
tololpez 0:3ef421501119 38 {
tololpez 0:3ef421501119 39 tiempo++;
tololpez 0:3ef421501119 40 tiempo2++;
tololpez 0:3ef421501119 41 tiempo3++;
tololpez 0:3ef421501119 42 mux_display++;
tololpez 0:3ef421501119 43
tololpez 0:3ef421501119 44 if(mux_display==1)
tololpez 0:3ef421501119 45 {
tololpez 0:3ef421501119 46 DISPLAY2=1;
tololpez 0:3ef421501119 47 display(decenas);
tololpez 0:3ef421501119 48 DISPLAY1=0;}
tololpez 0:3ef421501119 49 if(mux_display==21)
tololpez 0:3ef421501119 50 {
tololpez 0:3ef421501119 51 DISPLAY1=1;
tololpez 0:3ef421501119 52 display(unidades);
tololpez 0:3ef421501119 53 DISPLAY2=0;}
tololpez 0:3ef421501119 54 if(mux_display==41)
tololpez 0:3ef421501119 55 {mux_display=0;}
tololpez 0:3ef421501119 56
tololpez 0:3ef421501119 57
tololpez 0:3ef421501119 58 }
tololpez 0:3ef421501119 59
tololpez 0:3ef421501119 60 int main()
tololpez 0:3ef421501119 61 {
tololpez 0:3ef421501119 62 tick.attach(&interrupcion, 0.001); // setup ticker to call flip every 0.7 seconds
tololpez 0:3ef421501119 63 P1.mode(PullNone);
tololpez 0:3ef421501119 64 P2.mode(PullNone);
tololpez 0:3ef421501119 65 L1=0;
tololpez 0:3ef421501119 66 L2=0;
tololpez 0:3ef421501119 67 L3=0;
tololpez 0:3ef421501119 68 L4=0;
tololpez 0:3ef421501119 69 L5=0;
tololpez 0:3ef421501119 70 L6=0;
tololpez 0:3ef421501119 71 L7=0;
tololpez 0:3ef421501119 72 L8=0;
tololpez 0:3ef421501119 73 while(1)
tololpez 0:3ef421501119 74 {
tololpez 0:3ef421501119 75 EstadoJuego();
tololpez 0:3ef421501119 76 }
tololpez 0:3ef421501119 77
tololpez 0:3ef421501119 78
tololpez 0:3ef421501119 79 }
tololpez 0:3ef421501119 80 void EstadoJuego()
tololpez 0:3ef421501119 81 {
tololpez 0:3ef421501119 82 valor=PuntajeJ1*10+PuntajeJ2;
tololpez 0:3ef421501119 83 decenas = valor/10;
tololpez 0:3ef421501119 84 unidades = valor%10;
tololpez 0:3ef421501119 85 switch(Estado)
tololpez 0:3ef421501119 86 {
tololpez 0:3ef421501119 87 case 0:
tololpez 0:3ef421501119 88 if (tiempo>=0 && tiempo<500)
tololpez 0:3ef421501119 89 {
tololpez 0:3ef421501119 90 L1=1;
tololpez 0:3ef421501119 91 L2=1;
tololpez 0:3ef421501119 92 L3=1;
tololpez 0:3ef421501119 93 L4=1;
tololpez 0:3ef421501119 94 L5=1;
tololpez 0:3ef421501119 95 L6=1;
tololpez 0:3ef421501119 96 L7=1;
tololpez 0:3ef421501119 97 L8=1;
tololpez 0:3ef421501119 98 A=1;
tololpez 0:3ef421501119 99 B=1;
tololpez 0:3ef421501119 100 C=1;
tololpez 0:3ef421501119 101 D=1;
tololpez 0:3ef421501119 102 E=1;
tololpez 0:3ef421501119 103 F=1;
tololpez 0:3ef421501119 104 G=1;}
tololpez 0:3ef421501119 105 if(tiempo>=501 && tiempo<1000)
tololpez 0:3ef421501119 106 {
tololpez 0:3ef421501119 107 L1=0;
tololpez 0:3ef421501119 108 L2=0;
tololpez 0:3ef421501119 109 L3=0;
tololpez 0:3ef421501119 110 L4=0;
tololpez 0:3ef421501119 111 L5=0;
tololpez 0:3ef421501119 112 L6=0;
tololpez 0:3ef421501119 113 L7=0;
tololpez 0:3ef421501119 114 L8=0;
tololpez 0:3ef421501119 115 A=0;
tololpez 0:3ef421501119 116 B=0;
tololpez 0:3ef421501119 117 C=0;
tololpez 0:3ef421501119 118 D=0;
tololpez 0:3ef421501119 119 E=0;
tololpez 0:3ef421501119 120 F=0;
tololpez 0:3ef421501119 121 G=0;}
tololpez 0:3ef421501119 122 if(tiempo==1001)
tololpez 0:3ef421501119 123 {tiempo=0;}
tololpez 0:3ef421501119 124 if(P1==1 && P2==1)
tololpez 0:3ef421501119 125 {
tololpez 0:3ef421501119 126 tiempo=0;
tololpez 0:3ef421501119 127 tiempo3=0;
tololpez 0:3ef421501119 128 Estado=1;
tololpez 0:3ef421501119 129 }
tololpez 0:3ef421501119 130 break;
tololpez 0:3ef421501119 131
tololpez 0:3ef421501119 132 case 1:
tololpez 0:3ef421501119 133 pj=0;
tololpez 0:3ef421501119 134 if(tiempo>=0 && tiempo<99)
tololpez 0:3ef421501119 135 {
tololpez 0:3ef421501119 136 L2=0;
tololpez 0:3ef421501119 137 L1=1;}
tololpez 0:3ef421501119 138
tololpez 0:3ef421501119 139 if(tiempo>=100 && tiempo <199)
tololpez 0:3ef421501119 140 {
tololpez 0:3ef421501119 141 L1=0;
tololpez 0:3ef421501119 142 L2=1;}
tololpez 0:3ef421501119 143
tololpez 0:3ef421501119 144 if(tiempo>=200 && tiempo<299)
tololpez 0:3ef421501119 145 {
tololpez 0:3ef421501119 146 L2=0;
tololpez 0:3ef421501119 147 L3=1;}
tololpez 0:3ef421501119 148
tololpez 0:3ef421501119 149 if(tiempo>=300 && tiempo<399)
tololpez 0:3ef421501119 150 {
tololpez 0:3ef421501119 151 L3=0;
tololpez 0:3ef421501119 152 L4=1;}
tololpez 0:3ef421501119 153 if(tiempo>=400 && tiempo<499)
tololpez 0:3ef421501119 154 {
tololpez 0:3ef421501119 155 L4=0;
tololpez 0:3ef421501119 156 L5=1;}
tololpez 0:3ef421501119 157 if(tiempo>=500 && tiempo<599)
tololpez 0:3ef421501119 158 {
tololpez 0:3ef421501119 159 L5=0;
tololpez 0:3ef421501119 160 L6=1;}
tololpez 0:3ef421501119 161 if(tiempo>=600 && tiempo<699)
tololpez 0:3ef421501119 162 {
tololpez 0:3ef421501119 163 L6=0;
tololpez 0:3ef421501119 164 L7=1;}
tololpez 0:3ef421501119 165 if(tiempo>=700 && tiempo<799)
tololpez 0:3ef421501119 166 {
tololpez 0:3ef421501119 167 L7=0;
tololpez 0:3ef421501119 168 L8=1;}
tololpez 0:3ef421501119 169 if(tiempo>=800 && tiempo<899)
tololpez 0:3ef421501119 170 {
tololpez 0:3ef421501119 171 L8=0;
tololpez 0:3ef421501119 172 L7=1;}
tololpez 0:3ef421501119 173 if(tiempo>=900 && tiempo<999)
tololpez 0:3ef421501119 174 {
tololpez 0:3ef421501119 175 L7=0;
tololpez 0:3ef421501119 176 L6=1;}
tololpez 0:3ef421501119 177 if(tiempo>=1000 && tiempo<1099)
tololpez 0:3ef421501119 178 {
tololpez 0:3ef421501119 179 L6=0;
tololpez 0:3ef421501119 180 L5=1;}
tololpez 0:3ef421501119 181 if(tiempo>=1100 && tiempo<1199)
tololpez 0:3ef421501119 182 {
tololpez 0:3ef421501119 183 L5=0;
tololpez 0:3ef421501119 184 L4=1;}
tololpez 0:3ef421501119 185 if(tiempo>=1200 && tiempo<1299)
tololpez 0:3ef421501119 186 {
tololpez 0:3ef421501119 187 L4=0;
tololpez 0:3ef421501119 188 L3=1;}
tololpez 0:3ef421501119 189 if(tiempo>=1300 && tiempo<1399)
tololpez 0:3ef421501119 190 {
tololpez 0:3ef421501119 191 L3=0;
tololpez 0:3ef421501119 192 L2=1;}
tololpez 0:3ef421501119 193 if(tiempo==1400 )
tololpez 0:3ef421501119 194 {
tololpez 0:3ef421501119 195 tiempo=0;}
tololpez 0:3ef421501119 196 if(tiempo3>=2000)
tololpez 0:3ef421501119 197 {
tololpez 0:3ef421501119 198 for(int i=0;i<=7;i++)
tololpez 0:3ef421501119 199 {
tololpez 0:3ef421501119 200 if(P1==1 || P2==1)
tololpez 0:3ef421501119 201 {
tololpez 0:3ef421501119 202 t1=tiempo;
tololpez 0:3ef421501119 203 if(Leds[i]==1){
tololpez 0:3ef421501119 204 LedParado=i;
tololpez 0:3ef421501119 205 tiempo2=0;}
tololpez 0:3ef421501119 206 Estado=2;}
tololpez 0:3ef421501119 207 }
tololpez 0:3ef421501119 208 if(P1==1 && L1==1)
tololpez 0:3ef421501119 209 {
tololpez 0:3ef421501119 210 t1=tiempo;
tololpez 0:3ef421501119 211 LedParado=0;
tololpez 0:3ef421501119 212 PuntajeJ1++;
tololpez 0:3ef421501119 213 tiempo2=0;
tololpez 0:3ef421501119 214 pj=1;
tololpez 0:3ef421501119 215 Estado=2;}
tololpez 0:3ef421501119 216
tololpez 0:3ef421501119 217 if(P2==1 && L8==1)
tololpez 0:3ef421501119 218 {
tololpez 0:3ef421501119 219 t1=tiempo;
tololpez 0:3ef421501119 220 LedParado=7;
tololpez 0:3ef421501119 221 PuntajeJ2++;
tololpez 0:3ef421501119 222 tiempo2=0;
tololpez 0:3ef421501119 223 pj=1;
tololpez 0:3ef421501119 224 Estado=2;}
tololpez 0:3ef421501119 225 }
tololpez 0:3ef421501119 226 break;
tololpez 0:3ef421501119 227
tololpez 0:3ef421501119 228 case 2:
tololpez 0:3ef421501119 229
tololpez 0:3ef421501119 230 for(int i=0;i<=7;i++)
tololpez 0:3ef421501119 231 {
tololpez 0:3ef421501119 232 Leds[i]==0;
tololpez 0:3ef421501119 233 }
tololpez 0:3ef421501119 234 if(tiempo2>=0 && tiempo2<2001)
tololpez 0:3ef421501119 235 {
tololpez 0:3ef421501119 236 Leds[LedParado]=1;}
tololpez 0:3ef421501119 237 if(tiempo2>=2001)
tololpez 0:3ef421501119 238 {
tololpez 0:3ef421501119 239 Leds[LedParado]=0;
tololpez 0:3ef421501119 240 tiempo=t1;
tololpez 0:3ef421501119 241 Estado=1;
tololpez 0:3ef421501119 242 }
tololpez 0:3ef421501119 243 if(pj==1)
tololpez 0:3ef421501119 244 {
tololpez 0:3ef421501119 245 pc.printf("Puntaje J1: %d\n",PuntajeJ1);
tololpez 0:3ef421501119 246 pc.printf("Puntaje J2: %d\n",PuntajeJ2);}
tololpez 0:3ef421501119 247 pj=0;
tololpez 0:3ef421501119 248 if(PuntajeJ1==5)
tololpez 0:3ef421501119 249 {
tololpez 0:3ef421501119 250 pc.printf("Partida Terminada, Jugador 1 Gana\n");
tololpez 0:3ef421501119 251 tiempo2=0;
tololpez 0:3ef421501119 252 Estado=3;}
tololpez 0:3ef421501119 253 if(PuntajeJ2==5)
tololpez 0:3ef421501119 254 {
tololpez 0:3ef421501119 255 pc.printf("Partida Terminada, Jugador 2 Gana\n");
tololpez 0:3ef421501119 256 tiempo2=0;
tololpez 0:3ef421501119 257 Estado=3;}
tololpez 0:3ef421501119 258 break;
tololpez 0:3ef421501119 259 case 3:
tololpez 0:3ef421501119 260 if(PuntajeJ1==5 || PuntajeJ2==5)
tololpez 0:3ef421501119 261 {
tololpez 0:3ef421501119 262 tiempo=0;
tololpez 0:3ef421501119 263 if (tiempo>=0 && tiempo<200)
tololpez 0:3ef421501119 264 {
tololpez 0:3ef421501119 265 L1=1;
tololpez 0:3ef421501119 266 L2=1;
tololpez 0:3ef421501119 267 L3=1;
tololpez 0:3ef421501119 268 L4=1;
tololpez 0:3ef421501119 269 L5=1;
tololpez 0:3ef421501119 270 L6=1;
tololpez 0:3ef421501119 271 L7=1;
tololpez 0:3ef421501119 272 L8=1;
tololpez 0:3ef421501119 273 }
tololpez 0:3ef421501119 274 if(tiempo>=201 && tiempo<400)
tololpez 0:3ef421501119 275 {
tololpez 0:3ef421501119 276 L1=0;
tololpez 0:3ef421501119 277 L2=0;
tololpez 0:3ef421501119 278 L3=0;
tololpez 0:3ef421501119 279 L4=0;
tololpez 0:3ef421501119 280 L5=0;
tololpez 0:3ef421501119 281 L6=0;
tololpez 0:3ef421501119 282 L7=0;
tololpez 0:3ef421501119 283 L8=0;}
tololpez 0:3ef421501119 284 if(tiempo==401)
tololpez 0:3ef421501119 285 {tiempo=0;}
tololpez 0:3ef421501119 286 if(tiempo2>=1000)
tololpez 0:3ef421501119 287 {
tololpez 0:3ef421501119 288 if(PuntajeJ1==5)
tololpez 0:3ef421501119 289 {
tololpez 0:3ef421501119 290 if(P1==1)
tololpez 0:3ef421501119 291 {
tololpez 0:3ef421501119 292 PuntajeJ1=0;
tololpez 0:3ef421501119 293 PuntajeJ2=0;
tololpez 0:3ef421501119 294 Estado=0;}}
tololpez 0:3ef421501119 295 if(PuntajeJ2==5)
tololpez 0:3ef421501119 296 {
tololpez 0:3ef421501119 297 if(P2==1)
tololpez 0:3ef421501119 298 {
tololpez 0:3ef421501119 299 PuntajeJ1=0;
tololpez 0:3ef421501119 300 PuntajeJ2=0;
tololpez 0:3ef421501119 301 Estado=0;}}}
tololpez 0:3ef421501119 302 if(tiempo2>=10000)
tololpez 0:3ef421501119 303 {
tololpez 0:3ef421501119 304 PuntajeJ1=0;
tololpez 0:3ef421501119 305 PuntajeJ2=0;
tololpez 0:3ef421501119 306 Estado=0;}}
tololpez 0:3ef421501119 307 break;}}
tololpez 0:3ef421501119 308
tololpez 0:3ef421501119 309 void display(int x)
tololpez 0:3ef421501119 310 {
tololpez 0:3ef421501119 311 A= (d[x] & 0b1000000)>>6;
tololpez 0:3ef421501119 312 B= (d[x] & 0b100000)>>5;
tololpez 0:3ef421501119 313 C= (d[x] & 0b10000)>>4;
tololpez 0:3ef421501119 314 D= (d[x] & 0b1000)>>3;
tololpez 0:3ef421501119 315 E= (d[x] & 0b100)>>2;
tololpez 0:3ef421501119 316 F= (d[x] & 0b10)>>1;
tololpez 0:3ef421501119 317 G= (d[x] & 1);}
tololpez 0:3ef421501119 318
tololpez 0:3ef421501119 319
tololpez 0:3ef421501119 320
tololpez 0:3ef421501119 321