Almaraz Bettig TP1_Ejer2: Simon

Dependencies:   mbed

Committer:
nicoalmaraz
Date:
Sat Jun 15 19:56:37 2019 +0000
Revision:
2:243d75fd5132
Parent:
1:7c6b9d2b09bb
Child:
3:26b1c880c092
Trabajo Practico 1 - Ejercicio 2: Simon 1.2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nicoalmaraz 0:9498d6ad334c 1 //Almaraz y Bettig
nicoalmaraz 0:9498d6ad334c 2 //TP1 Ejercicio 2: Simon
nicoalmaraz 0:9498d6ad334c 3 #include "mbed.h"
nicoalmaraz 0:9498d6ad334c 4
nicoalmaraz 0:9498d6ad334c 5 char elementos=0; //Cada elemento es cada posicion del vector del patron
nicoalmaraz 0:9498d6ad334c 6 char patron[23]; //vector con el patron que hay que seguir
nicoalmaraz 0:9498d6ad334c 7 char repeticiones_secuencia_inicio=0; //cuenta las veces que repeti la secuencia antes de que comience el juego
nicoalmaraz 0:9498d6ad334c 8 char leds[4]= {0,0,0,0}; //leds de salida
nicoalmaraz 0:9498d6ad334c 9 char nivel=1; //Indica por que nivel vas. En total hay 23 niveles
nicoalmaraz 0:9498d6ad334c 10 char usuario[23]; //vector con los datos que ingresa el usuario
nicoalmaraz 0:9498d6ad334c 11 char mostrado=0; //cuenta cuantos elementos del vector "patron" mostre
nicoalmaraz 0:9498d6ad334c 12 char ingreso=0; //es el numero de elemento que ingresó el usuario
nicoalmaraz 0:9498d6ad334c 13 char pulsador_rojo=1; //pulsador sin rebote
nicoalmaraz 0:9498d6ad334c 14 char pulsador_azul=1; //pulsador sin rebote
nicoalmaraz 0:9498d6ad334c 15 char pulsador_verde=1; //pulsador sin rebote
nicoalmaraz 0:9498d6ad334c 16 char pulsador_amarillo=1; //pulsador sin rebote
nicoalmaraz 0:9498d6ad334c 17 char lectura_pulsador_valida=0; //flag que indica si se guardó un dato ingresado por el usuario correctamente
nicoalmaraz 0:9498d6ad334c 18 char ruido=0; //flag que indica que la medicion fue ruido
nicoalmaraz 0:9498d6ad334c 19 int tiempo_pulsadores=0; //variable de tiempo
nicoalmaraz 0:9498d6ad334c 20 int tiempo_secuencia_inicio=0; //variable de tiempo
nicoalmaraz 0:9498d6ad334c 21 int tiempo_patron=0; //variable de tiempo
nicoalmaraz 0:9498d6ad334c 22 int tiempo_mostrar=0; //variable de tiempo
nicoalmaraz 0:9498d6ad334c 23
nicoalmaraz 0:9498d6ad334c 24 void reset_leds();
nicoalmaraz 0:9498d6ad334c 25 void timer();
nicoalmaraz 0:9498d6ad334c 26 void secuencia_inicio();
nicoalmaraz 0:9498d6ad334c 27 void generar_patron();
nicoalmaraz 0:9498d6ad334c 28 void mostrar();
nicoalmaraz 0:9498d6ad334c 29 void pulsadores();
nicoalmaraz 0:9498d6ad334c 30 void ingresar();
nicoalmaraz 0:9498d6ad334c 31
nicoalmaraz 0:9498d6ad334c 32 DigitalOut led_rojo(PTB0);
nicoalmaraz 0:9498d6ad334c 33 DigitalOut led_azul(PTB1);
nicoalmaraz 0:9498d6ad334c 34 DigitalOut led_verde(PTB2);
nicoalmaraz 0:9498d6ad334c 35 DigitalOut led_amarillo(PTB3);
nicoalmaraz 0:9498d6ad334c 36
nicoalmaraz 0:9498d6ad334c 37 DigitalIn pulsador_rojo_con_rebote(PTE23);
nicoalmaraz 0:9498d6ad334c 38 DigitalIn pulsador_azul_con_rebote(PTE22);
nicoalmaraz 0:9498d6ad334c 39 DigitalIn pulsador_verde_con_rebote(PTE21);
nicoalmaraz 0:9498d6ad334c 40 DigitalIn pulsador_amarillo_con_rebote(PTE20);
nicoalmaraz 0:9498d6ad334c 41 DigitalIn reset(PTC1);
nicoalmaraz 0:9498d6ad334c 42
nicoalmaraz 0:9498d6ad334c 43 Ticker ticker;
nicoalmaraz 0:9498d6ad334c 44
nicoalmaraz 0:9498d6ad334c 45 int main()
nicoalmaraz 0:9498d6ad334c 46 {
nicoalmaraz 0:9498d6ad334c 47 ticker.attach(&timer, 0.001);
nicoalmaraz 0:9498d6ad334c 48 char simon=0;
nicoalmaraz 0:9498d6ad334c 49 char fin=0;
nicoalmaraz 0:9498d6ad334c 50 long i=0;
nicoalmaraz 0:9498d6ad334c 51 printf("Presione el pulsador Inicio para iniciar el juego\r\n");
nicoalmaraz 0:9498d6ad334c 52 while(1) {
nicoalmaraz 0:9498d6ad334c 53 switch(simon) {
nicoalmaraz 0:9498d6ad334c 54 default:
nicoalmaraz 0:9498d6ad334c 55 case 0:
nicoalmaraz 0:9498d6ad334c 56 i++;
nicoalmaraz 0:9498d6ad334c 57 if(reset==0) {
nicoalmaraz 0:9498d6ad334c 58 srand(i);
nicoalmaraz 0:9498d6ad334c 59 simon=1;
nicoalmaraz 0:9498d6ad334c 60 tiempo_secuencia_inicio=0;
nicoalmaraz 0:9498d6ad334c 61 }
nicoalmaraz 0:9498d6ad334c 62 break;
nicoalmaraz 0:9498d6ad334c 63 case 1: //Hago la secuencia que hace el simon antes de arrancar 4 veces y genero el patron
nicoalmaraz 0:9498d6ad334c 64 secuencia_inicio();
nicoalmaraz 1:7c6b9d2b09bb 65 if(repeticiones_secuencia_inicio==4) {
nicoalmaraz 0:9498d6ad334c 66 simon=2;
nicoalmaraz 0:9498d6ad334c 67 tiempo_mostrar=0;
nicoalmaraz 0:9498d6ad334c 68 reset_leds();
nicoalmaraz 1:7c6b9d2b09bb 69 generar_patron();
nicoalmaraz 2:243d75fd5132 70 repeticiones_secuencia_inicio=0;
nicoalmaraz 0:9498d6ad334c 71 }
nicoalmaraz 0:9498d6ad334c 72 break;
nicoalmaraz 0:9498d6ad334c 73 case 2: //Tomo el "patron" y muestro la cantidad de colores que indica "nivel"
nicoalmaraz 0:9498d6ad334c 74 mostrar();
nicoalmaraz 0:9498d6ad334c 75 if(mostrado==nivel) {
nicoalmaraz 0:9498d6ad334c 76 simon=3;
nicoalmaraz 0:9498d6ad334c 77 mostrado=0;
nicoalmaraz 0:9498d6ad334c 78 printf("Realice la secuencia\r\n");
nicoalmaraz 0:9498d6ad334c 79 }
nicoalmaraz 0:9498d6ad334c 80 break;
nicoalmaraz 0:9498d6ad334c 81 case 3: //Espero a que el usuario ingrese un color
nicoalmaraz 0:9498d6ad334c 82 ingresar();
nicoalmaraz 0:9498d6ad334c 83 if(lectura_pulsador_valida==1) {
nicoalmaraz 0:9498d6ad334c 84 simon=4;
nicoalmaraz 0:9498d6ad334c 85 lectura_pulsador_valida=0;
nicoalmaraz 0:9498d6ad334c 86 }
nicoalmaraz 0:9498d6ad334c 87 break;
nicoalmaraz 0:9498d6ad334c 88 case 4: //Analizo el datoingresado
nicoalmaraz 0:9498d6ad334c 89 if(usuario[ingreso]!=patron[ingreso]) { //me fijo si ingresé algo distintinto a lo que corresponde y lo indico con el flag "fin"
nicoalmaraz 0:9498d6ad334c 90 printf("Perdiste!\n");
nicoalmaraz 0:9498d6ad334c 91 printf("Presione el pulsador Reset para reiniciar el juego\r\n");
nicoalmaraz 0:9498d6ad334c 92 fin=1;
nicoalmaraz 0:9498d6ad334c 93 }
nicoalmaraz 0:9498d6ad334c 94 if ((usuario[ingreso]==patron[ingreso])&&(ingreso<nivel)) {//Si ingresé un valor correcto vuelvo al estado de ingresar datos y sumo la variable "ingreso"
nicoalmaraz 0:9498d6ad334c 95 ingreso++;
nicoalmaraz 0:9498d6ad334c 96 simon=3;
nicoalmaraz 0:9498d6ad334c 97 }
nicoalmaraz 0:9498d6ad334c 98 if((ingreso==nivel)&&(ingreso<24)) { //me fijo si llegué a ingresar la cantidad de cosas que mostré (sin completar el patrón completo)
nicoalmaraz 0:9498d6ad334c 99 ingreso=0;
nicoalmaraz 0:9498d6ad334c 100 printf("Nivel %d completado!\r\n",nivel);
nicoalmaraz 0:9498d6ad334c 101 tiempo_mostrar=0;
nicoalmaraz 0:9498d6ad334c 102 nivel++;
nicoalmaraz 0:9498d6ad334c 103 simon=2;
nicoalmaraz 0:9498d6ad334c 104 }
nicoalmaraz 1:7c6b9d2b09bb 105 if(ingreso==23) { //me fijo si llegué a ingresar 23 cosas y lo indico con el flag "fin"
nicoalmaraz 0:9498d6ad334c 106 printf("Ganaste!\r\n");
nicoalmaraz 0:9498d6ad334c 107 printf("Presione el pulsador Reset para reiniciar el juego\r\n");
nicoalmaraz 0:9498d6ad334c 108 fin=1;
nicoalmaraz 0:9498d6ad334c 109 }
nicoalmaraz 1:7c6b9d2b09bb 110 if(fin) { //Si perdí o gané reinicio las variables para comenzar un juego nuevo
nicoalmaraz 0:9498d6ad334c 111 simon=0;
nicoalmaraz 0:9498d6ad334c 112 ingreso=0;
nicoalmaraz 0:9498d6ad334c 113 nivel=1;
nicoalmaraz 0:9498d6ad334c 114 fin=0;
nicoalmaraz 0:9498d6ad334c 115 printf("Presione el pulsador de inicio para volcer a jugar");
nicoalmaraz 0:9498d6ad334c 116 }
nicoalmaraz 0:9498d6ad334c 117 break;
nicoalmaraz 0:9498d6ad334c 118 }
nicoalmaraz 0:9498d6ad334c 119 //Enciendo los leds correspondientes
nicoalmaraz 0:9498d6ad334c 120 led_rojo=leds[0];
nicoalmaraz 0:9498d6ad334c 121 led_azul=leds[1];
nicoalmaraz 0:9498d6ad334c 122 led_verde=leds[2];
nicoalmaraz 0:9498d6ad334c 123 led_amarillo=leds[3];
nicoalmaraz 0:9498d6ad334c 124 }
nicoalmaraz 0:9498d6ad334c 125 }
nicoalmaraz 0:9498d6ad334c 126
nicoalmaraz 0:9498d6ad334c 127 void reset_leds()
nicoalmaraz 0:9498d6ad334c 128 //Apaga todos los leds
nicoalmaraz 0:9498d6ad334c 129 {
nicoalmaraz 0:9498d6ad334c 130 leds[0]=0;
nicoalmaraz 0:9498d6ad334c 131 leds[1]=0;
nicoalmaraz 0:9498d6ad334c 132 leds[2]=0;
nicoalmaraz 0:9498d6ad334c 133 leds[3]=0;
nicoalmaraz 0:9498d6ad334c 134 }
nicoalmaraz 0:9498d6ad334c 135
nicoalmaraz 0:9498d6ad334c 136 void timer()
nicoalmaraz 0:9498d6ad334c 137 //Incrementa los contadores cada 1ms
nicoalmaraz 0:9498d6ad334c 138 {
nicoalmaraz 0:9498d6ad334c 139 tiempo_pulsadores++;
nicoalmaraz 0:9498d6ad334c 140 tiempo_secuencia_inicio++;
nicoalmaraz 0:9498d6ad334c 141 tiempo_patron++;
nicoalmaraz 0:9498d6ad334c 142 tiempo_mostrar++;
nicoalmaraz 0:9498d6ad334c 143 }
nicoalmaraz 0:9498d6ad334c 144
nicoalmaraz 0:9498d6ad334c 145 void secuencia_inicio()
nicoalmaraz 1:7c6b9d2b09bb 146 //Hace una secuencia introductoria al juego
nicoalmaraz 0:9498d6ad334c 147 {
nicoalmaraz 2:243d75fd5132 148 static char estado_secuencia_inicio=0;
nicoalmaraz 1:7c6b9d2b09bb 149 switch(estado_secuencia_inicio) {
nicoalmaraz 1:7c6b9d2b09bb 150 default:
nicoalmaraz 1:7c6b9d2b09bb 151 case 0: //rojo
nicoalmaraz 1:7c6b9d2b09bb 152 reset_leds();
nicoalmaraz 1:7c6b9d2b09bb 153 leds[0]=1;
nicoalmaraz 1:7c6b9d2b09bb 154 if(tiempo_secuencia_inicio==300) {
nicoalmaraz 1:7c6b9d2b09bb 155 estado_secuencia_inicio=1;
nicoalmaraz 1:7c6b9d2b09bb 156 tiempo_secuencia_inicio=0;
nicoalmaraz 1:7c6b9d2b09bb 157 }
nicoalmaraz 1:7c6b9d2b09bb 158 break;
nicoalmaraz 1:7c6b9d2b09bb 159 case 1: //azul
nicoalmaraz 1:7c6b9d2b09bb 160 reset_leds();
nicoalmaraz 1:7c6b9d2b09bb 161 leds[1]=1;
nicoalmaraz 1:7c6b9d2b09bb 162 if(tiempo_secuencia_inicio==300) {
nicoalmaraz 1:7c6b9d2b09bb 163 estado_secuencia_inicio=2;
nicoalmaraz 1:7c6b9d2b09bb 164 tiempo_secuencia_inicio=0;
nicoalmaraz 1:7c6b9d2b09bb 165 }
nicoalmaraz 1:7c6b9d2b09bb 166 break;
nicoalmaraz 1:7c6b9d2b09bb 167 case 2: //verde
nicoalmaraz 1:7c6b9d2b09bb 168 reset_leds();
nicoalmaraz 1:7c6b9d2b09bb 169 leds[2]=1;
nicoalmaraz 1:7c6b9d2b09bb 170 if(tiempo_secuencia_inicio==300) {
nicoalmaraz 1:7c6b9d2b09bb 171 estado_secuencia_inicio=3;
nicoalmaraz 1:7c6b9d2b09bb 172 tiempo_secuencia_inicio=0;
nicoalmaraz 1:7c6b9d2b09bb 173 }
nicoalmaraz 1:7c6b9d2b09bb 174 break;
nicoalmaraz 1:7c6b9d2b09bb 175 case 3: //amarillo
nicoalmaraz 1:7c6b9d2b09bb 176 reset_leds();
nicoalmaraz 1:7c6b9d2b09bb 177 leds[3]=1;
nicoalmaraz 1:7c6b9d2b09bb 178 if(tiempo_secuencia_inicio==300) {
nicoalmaraz 0:9498d6ad334c 179 estado_secuencia_inicio=0;
nicoalmaraz 1:7c6b9d2b09bb 180 tiempo_secuencia_inicio=0;
nicoalmaraz 0:9498d6ad334c 181 repeticiones_secuencia_inicio++;
nicoalmaraz 1:7c6b9d2b09bb 182 }
nicoalmaraz 1:7c6b9d2b09bb 183 break;
nicoalmaraz 0:9498d6ad334c 184 }
nicoalmaraz 0:9498d6ad334c 185 }
nicoalmaraz 0:9498d6ad334c 186
nicoalmaraz 0:9498d6ad334c 187 void generar_patron()
nicoalmaraz 0:9498d6ad334c 188 //Genera el patron de 23 colores y los guarda en el vector "patron"
nicoalmaraz 0:9498d6ad334c 189 {
nicoalmaraz 2:243d75fd5132 190 for(elementos=0; elementos<24; elementos++) {
nicoalmaraz 1:7c6b9d2b09bb 191 patron[elementos]=rand()%4;
nicoalmaraz 1:7c6b9d2b09bb 192 }
nicoalmaraz 0:9498d6ad334c 193 }
nicoalmaraz 0:9498d6ad334c 194
nicoalmaraz 1:7c6b9d2b09bb 195 void mostrar()
nicoalmaraz 0:9498d6ad334c 196 //Muestra la secuencia guardada en "patron" y la variable "mostrado" indica cuantos colores mostré
nicoalmaraz 0:9498d6ad334c 197 {
nicoalmaraz 0:9498d6ad334c 198 static char estado_mostrar;
nicoalmaraz 0:9498d6ad334c 199 switch (estado_mostrar) {
nicoalmaraz 0:9498d6ad334c 200 default:
nicoalmaraz 0:9498d6ad334c 201 case 0:
nicoalmaraz 0:9498d6ad334c 202 if(tiempo_mostrar==400) {//espero 0.4s para volver a encender los leds
nicoalmaraz 0:9498d6ad334c 203 estado_mostrar=1;
nicoalmaraz 0:9498d6ad334c 204 tiempo_mostrar=0;
nicoalmaraz 0:9498d6ad334c 205 leds[patron[mostrado]]=1; //enciendo el led que corresponde
nicoalmaraz 0:9498d6ad334c 206 }
nicoalmaraz 0:9498d6ad334c 207 break;
nicoalmaraz 0:9498d6ad334c 208 case 1:
nicoalmaraz 0:9498d6ad334c 209 if(tiempo_mostrar==1000) {//espero 1s para apagar los leds
nicoalmaraz 0:9498d6ad334c 210 estado_mostrar=0;
nicoalmaraz 0:9498d6ad334c 211 tiempo_mostrar=0;
nicoalmaraz 0:9498d6ad334c 212 mostrado++; //indico que mostré un elemento más
nicoalmaraz 0:9498d6ad334c 213 reset_leds();
nicoalmaraz 0:9498d6ad334c 214 }
nicoalmaraz 0:9498d6ad334c 215 break;
nicoalmaraz 0:9498d6ad334c 216 }
nicoalmaraz 0:9498d6ad334c 217 }
nicoalmaraz 0:9498d6ad334c 218
nicoalmaraz 0:9498d6ad334c 219 void pulsadores(char pulsador_con_rebote, char valor_salida)
nicoalmaraz 0:9498d6ad334c 220 // leo el pulsador, le quito el rebote y guardo el dato ingresado en el vector "usuario". Además distingo entre ruido o una lectura valida
nicoalmaraz 0:9498d6ad334c 221 {
nicoalmaraz 0:9498d6ad334c 222 static char estado_pulsadores;
nicoalmaraz 0:9498d6ad334c 223 switch(estado_pulsadores) {
nicoalmaraz 0:9498d6ad334c 224 default:
nicoalmaraz 0:9498d6ad334c 225 case 0: //Espero a que se apreten pulsadores y los prendo cuando lo hacen
nicoalmaraz 0:9498d6ad334c 226 reset_leds();
nicoalmaraz 0:9498d6ad334c 227 if(pulsador_con_rebote==0) {
nicoalmaraz 0:9498d6ad334c 228 tiempo_pulsadores=0;
nicoalmaraz 0:9498d6ad334c 229 estado_pulsadores=1;
nicoalmaraz 0:9498d6ad334c 230 }
nicoalmaraz 0:9498d6ad334c 231 break;
nicoalmaraz 0:9498d6ad334c 232 case 1: //Espero 50ms para quitar el rebote rise y analizo si fue ruido o realmente presionaron
nicoalmaraz 0:9498d6ad334c 233 if(tiempo_pulsadores>=50) {
nicoalmaraz 0:9498d6ad334c 234 if(pulsador_con_rebote==0) {
nicoalmaraz 0:9498d6ad334c 235 estado_pulsadores=2;
nicoalmaraz 0:9498d6ad334c 236 usuario[ingreso]=valor_salida;
nicoalmaraz 0:9498d6ad334c 237 leds[valor_salida]=1;
nicoalmaraz 0:9498d6ad334c 238 } else {
nicoalmaraz 0:9498d6ad334c 239 estado_pulsadores=0;
nicoalmaraz 0:9498d6ad334c 240 ruido=1;
nicoalmaraz 0:9498d6ad334c 241 }
nicoalmaraz 0:9498d6ad334c 242 }
nicoalmaraz 0:9498d6ad334c 243 break;
nicoalmaraz 0:9498d6ad334c 244 case 2: //Si se habia apretado espero a que se suelte
nicoalmaraz 0:9498d6ad334c 245 if(pulsador_con_rebote==1) {
nicoalmaraz 0:9498d6ad334c 246 reset_leds();
nicoalmaraz 0:9498d6ad334c 247 tiempo_pulsadores=0;
nicoalmaraz 0:9498d6ad334c 248 estado_pulsadores=3;
nicoalmaraz 0:9498d6ad334c 249 }
nicoalmaraz 0:9498d6ad334c 250 break;
nicoalmaraz 0:9498d6ad334c 251 case 3: //Espero 50ms para quitar el rebote fall y analizo si ya se fue o debo darle más tiempo
nicoalmaraz 0:9498d6ad334c 252 if(tiempo_pulsadores>=50) {
nicoalmaraz 0:9498d6ad334c 253 if(pulsador_con_rebote==1) {
nicoalmaraz 0:9498d6ad334c 254 estado_pulsadores=0;
nicoalmaraz 0:9498d6ad334c 255 lectura_pulsador_valida=1;
nicoalmaraz 0:9498d6ad334c 256 } else
nicoalmaraz 0:9498d6ad334c 257 tiempo_pulsadores=0; // si todavia no se fue el rebote espero más tiempo
nicoalmaraz 0:9498d6ad334c 258 }
nicoalmaraz 0:9498d6ad334c 259 break;
nicoalmaraz 0:9498d6ad334c 260 }
nicoalmaraz 0:9498d6ad334c 261 }
nicoalmaraz 0:9498d6ad334c 262
nicoalmaraz 0:9498d6ad334c 263 void ingresar()
nicoalmaraz 0:9498d6ad334c 264 //Espera a que un pulsador se presione y analiza el dato ingresado con la función "pulsadores"
nicoalmaraz 0:9498d6ad334c 265 {
nicoalmaraz 0:9498d6ad334c 266 static char estado_ingresar;
nicoalmaraz 0:9498d6ad334c 267 switch(estado_ingresar) {
nicoalmaraz 0:9498d6ad334c 268 default:
nicoalmaraz 0:9498d6ad334c 269 case 0:
nicoalmaraz 0:9498d6ad334c 270 if(pulsador_rojo_con_rebote==0)
nicoalmaraz 0:9498d6ad334c 271 estado_ingresar=1;
nicoalmaraz 0:9498d6ad334c 272 if(pulsador_azul_con_rebote==0)
nicoalmaraz 0:9498d6ad334c 273 estado_ingresar=2;
nicoalmaraz 0:9498d6ad334c 274 if(pulsador_verde_con_rebote==0)
nicoalmaraz 0:9498d6ad334c 275 estado_ingresar=3;
nicoalmaraz 0:9498d6ad334c 276 if(pulsador_amarillo_con_rebote==0)
nicoalmaraz 0:9498d6ad334c 277 estado_ingresar=4;
nicoalmaraz 0:9498d6ad334c 278 break;
nicoalmaraz 0:9498d6ad334c 279 case 1:
nicoalmaraz 0:9498d6ad334c 280 pulsadores(pulsador_rojo_con_rebote,0);
nicoalmaraz 0:9498d6ad334c 281 break;
nicoalmaraz 0:9498d6ad334c 282 case 2:
nicoalmaraz 0:9498d6ad334c 283 pulsadores(pulsador_azul_con_rebote,1);
nicoalmaraz 0:9498d6ad334c 284 break;
nicoalmaraz 0:9498d6ad334c 285 case 3:
nicoalmaraz 0:9498d6ad334c 286 pulsadores(pulsador_verde_con_rebote,2);
nicoalmaraz 0:9498d6ad334c 287 break;
nicoalmaraz 0:9498d6ad334c 288 case 4:
nicoalmaraz 0:9498d6ad334c 289 pulsadores(pulsador_amarillo_con_rebote,3);
nicoalmaraz 0:9498d6ad334c 290 break;
nicoalmaraz 0:9498d6ad334c 291 }
nicoalmaraz 0:9498d6ad334c 292 if(lectura_pulsador_valida==1) {
nicoalmaraz 0:9498d6ad334c 293 estado_ingresar=0;
nicoalmaraz 0:9498d6ad334c 294 printf("Ingreso valido\r\n");
nicoalmaraz 0:9498d6ad334c 295 }
nicoalmaraz 0:9498d6ad334c 296 if(ruido==1) {
nicoalmaraz 0:9498d6ad334c 297 estado_ingresar=0;
nicoalmaraz 0:9498d6ad334c 298 ruido=0;
nicoalmaraz 0:9498d6ad334c 299 printf("Deteccion de ruido\r\n");
nicoalmaraz 0:9498d6ad334c 300 }
nicoalmaraz 0:9498d6ad334c 301 }