Simon

Dependencies:   mbed

Committer:
JuanClerici
Date:
Mon Jun 17 05:44:14 2019 +0000
Revision:
4:ddba0fd2caa4
Parent:
3:1610e2f8803b
Sin probar el anti rebote

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JuanClerici 4:ddba0fd2caa4 1 /*
JuanClerici 4:ddba0fd2caa4 2 FERNANDEZ-CLERICI
JuanClerici 4:ddba0fd2caa4 3 EJER02 - TP01
JuanClerici 4:ddba0fd2caa4 4
JuanClerici 4:ddba0fd2caa4 5 PTB0 -- Pulsador Azul
JuanClerici 4:ddba0fd2caa4 6 PTB1 -- Pulsador Verde
JuanClerici 4:ddba0fd2caa4 7 PTB2 -- Pulsador Rojo
JuanClerici 4:ddba0fd2caa4 8
JuanClerici 4:ddba0fd2caa4 9 */
JuanClerici 4:ddba0fd2caa4 10
JuanClerici 4:ddba0fd2caa4 11 /* Librerias*/
JuanClerici 0:a49a5f50d6bc 12 #include "mbed.h"
JuanClerici 0:a49a5f50d6bc 13
JuanClerici 1:78297550b459 14 #define ESTADO_COMENZAR 0
JuanClerici 1:78297550b459 15 #define ESTADO_REINICIO 1
JuanClerici 1:78297550b459 16 #define ESTADO_MUESTREO 2
JuanClerici 1:78297550b459 17 #define ESTADO_JUEGO 3
JuanClerici 1:78297550b459 18 #define ESTADO_PERDER 4
JuanClerici 1:78297550b459 19 #define ESTADO_GANAR 5
JuanClerici 0:a49a5f50d6bc 20
JuanClerici 4:ddba0fd2caa4 21 #define INICIO_P 0
JuanClerici 4:ddba0fd2caa4 22 #define RISING_P 1
JuanClerici 4:ddba0fd2caa4 23 #define RETENCION_P 2
JuanClerici 0:a49a5f50d6bc 24
JuanClerici 4:ddba0fd2caa4 25 #define NIVELES 25
JuanClerici 4:ddba0fd2caa4 26 #define PA PTB0
JuanClerici 4:ddba0fd2caa4 27 #define PV PTB1
JuanClerici 4:ddba0fd2caa4 28 #define PR PTB2
JuanClerici 4:ddba0fd2caa4 29
JuanClerici 4:ddba0fd2caa4 30 //Creamos los tres leds para usar
JuanClerici 0:a49a5f50d6bc 31 DigitalOut Rojo(LED1);
JuanClerici 0:a49a5f50d6bc 32 DigitalOut Verde(LED2);
JuanClerici 0:a49a5f50d6bc 33 DigitalOut Azul(LED3);
JuanClerici 0:a49a5f50d6bc 34
JuanClerici 4:ddba0fd2caa4 35 void timer();
JuanClerici 0:a49a5f50d6bc 36 void simon();
JuanClerici 4:ddba0fd2caa4 37 bool antirrebote(bool lectura);
JuanClerici 0:a49a5f50d6bc 38 char Pulsador ();
JuanClerici 0:a49a5f50d6bc 39 void leds(int num); // led(0b000) = apagados, led(0b100) = rojo, led(0b010) = Verde, led(0b001) = Azul, led(0b111) = Blanco,
JuanClerici 2:f45bd4655817 40
JuanClerici 4:ddba0fd2caa4 41 unsigned int semilla = 0;
JuanClerici 0:a49a5f50d6bc 42 char sec[50] = {0};
JuanClerici 2:f45bd4655817 43 char nivelSec = 1;
JuanClerici 2:f45bd4655817 44 char posSec = 0;
JuanClerici 2:f45bd4655817 45 char posJuego = 0;
JuanClerici 4:ddba0fd2caa4 46 int times = 0, espera = 0, tp = 0;
JuanClerici 0:a49a5f50d6bc 47 bool flagPulsador = 0;
JuanClerici 0:a49a5f50d6bc 48 char pulsador = 0;
JuanClerici 1:78297550b459 49 char estado = ESTADO_COMENZAR;
JuanClerici 0:a49a5f50d6bc 50
JuanClerici 0:a49a5f50d6bc 51 bool pulsador1 = 1, pulsador2 = 1, pulsador3 = 1;
JuanClerici 2:f45bd4655817 52 bool st1= 0, st2 = 0, st3 = 0, loop = 1, apagado = 0;
JuanClerici 0:a49a5f50d6bc 53
JuanClerici 0:a49a5f50d6bc 54
JuanClerici 0:a49a5f50d6bc 55 Ticker ti;
JuanClerici 0:a49a5f50d6bc 56
JuanClerici 0:a49a5f50d6bc 57
JuanClerici 0:a49a5f50d6bc 58 int main()
JuanClerici 0:a49a5f50d6bc 59 {
JuanClerici 4:ddba0fd2caa4 60 ti.attach(&timer, 0.1);
JuanClerici 0:a49a5f50d6bc 61
JuanClerici 0:a49a5f50d6bc 62 //Prendemos los LEDS
JuanClerici 0:a49a5f50d6bc 63 leds(0b111);
JuanClerici 0:a49a5f50d6bc 64 printf("Toque cualquier pulsador para comenzar: \r\n");
JuanClerici 0:a49a5f50d6bc 65
JuanClerici 0:a49a5f50d6bc 66 while(true) {
JuanClerici 2:f45bd4655817 67 //Cambio el estado de los pulsadores
JuanClerici 0:a49a5f50d6bc 68 Pulsador();
JuanClerici 2:f45bd4655817 69 //Ejecuto la funcion principal
JuanClerici 0:a49a5f50d6bc 70 simon();
JuanClerici 2:f45bd4655817 71 //Aseguro el reset de la habilitacion del pulsador
JuanClerici 0:a49a5f50d6bc 72 flagPulsador = 0;
JuanClerici 0:a49a5f50d6bc 73 }
JuanClerici 0:a49a5f50d6bc 74 }
JuanClerici 0:a49a5f50d6bc 75 void simon()
JuanClerici 0:a49a5f50d6bc 76 {
JuanClerici 0:a49a5f50d6bc 77 static int i;
JuanClerici 0:a49a5f50d6bc 78 switch(estado) {
JuanClerici 1:78297550b459 79 case ESTADO_COMENZAR:
JuanClerici 3:1610e2f8803b 80 //Espero que pulsen un pulsador para empezar
JuanClerici 0:a49a5f50d6bc 81 times = 0;
JuanClerici 0:a49a5f50d6bc 82 if(pulsador != 0 && flagPulsador == 1) {
JuanClerici 0:a49a5f50d6bc 83 leds(0b000);
JuanClerici 0:a49a5f50d6bc 84 printf("Comencemos: \r\n\n");
JuanClerici 1:78297550b459 85 estado = ESTADO_REINICIO;
JuanClerici 0:a49a5f50d6bc 86 flagPulsador = 0;
JuanClerici 0:a49a5f50d6bc 87 }
JuanClerici 0:a49a5f50d6bc 88 break;
JuanClerici 0:a49a5f50d6bc 89
JuanClerici 1:78297550b459 90 case ESTADO_REINICIO:
JuanClerici 2:f45bd4655817 91 //Seteo la semilla
JuanClerici 0:a49a5f50d6bc 92 srand (semilla*4920*1912);
JuanClerici 2:f45bd4655817 93 //Genero la secuencia
JuanClerici 0:a49a5f50d6bc 94 for(i = 0; i <= NIVELES ; i ++) {
JuanClerici 0:a49a5f50d6bc 95 sec[i] = rand() % 3 + 1;
JuanClerici 0:a49a5f50d6bc 96 }
JuanClerici 2:f45bd4655817 97 nivelSec = 1;
JuanClerici 3:1610e2f8803b 98 posSec = 0;
JuanClerici 2:f45bd4655817 99 posJuego = 0;
JuanClerici 1:78297550b459 100 estado = ESTADO_MUESTREO;
JuanClerici 0:a49a5f50d6bc 101 times = 0;
JuanClerici 2:f45bd4655817 102 loop = 0;
JuanClerici 0:a49a5f50d6bc 103 break;
JuanClerici 0:a49a5f50d6bc 104
JuanClerici 1:78297550b459 105 case ESTADO_MUESTREO:
JuanClerici 2:f45bd4655817 106 //Muestro la secuencia generada
JuanClerici 2:f45bd4655817 107 if(loop) {
JuanClerici 2:f45bd4655817 108 //Cada vez que termino de mostrar un LED
JuanClerici 0:a49a5f50d6bc 109 if (apagado == 0) {
JuanClerici 2:f45bd4655817 110 //Evaluo si mostre la cantidad de LEDs segun el nivel
JuanClerici 2:f45bd4655817 111 if(posSec >= nivelSec) {
JuanClerici 1:78297550b459 112 estado = ESTADO_JUEGO;
JuanClerici 0:a49a5f50d6bc 113 printf("\nA jugar Bro :) \r");
JuanClerici 0:a49a5f50d6bc 114 printf("\r\n\n");
JuanClerici 0:a49a5f50d6bc 115 espera = 0;
JuanClerici 0:a49a5f50d6bc 116 break;
JuanClerici 0:a49a5f50d6bc 117 }
JuanClerici 2:f45bd4655817 118 switch(sec[posSec]) {
JuanClerici 0:a49a5f50d6bc 119 case 1:
JuanClerici 3:1610e2f8803b 120 //Muestro LED rojo
JuanClerici 0:a49a5f50d6bc 121 leds(0b100);
JuanClerici 0:a49a5f50d6bc 122 if(times > 5) {
JuanClerici 0:a49a5f50d6bc 123 times = 0;
JuanClerici 0:a49a5f50d6bc 124 printf("ROJO\r\n");
JuanClerici 0:a49a5f50d6bc 125 apagado = 1;
JuanClerici 2:f45bd4655817 126 posSec++;
JuanClerici 0:a49a5f50d6bc 127 }
JuanClerici 0:a49a5f50d6bc 128 break;
JuanClerici 0:a49a5f50d6bc 129 case 2:
JuanClerici 3:1610e2f8803b 130 //Muestro LED verde
JuanClerici 0:a49a5f50d6bc 131 leds(0b010);
JuanClerici 0:a49a5f50d6bc 132 if(times > 5) {
JuanClerici 0:a49a5f50d6bc 133 apagado = 1;
JuanClerici 0:a49a5f50d6bc 134 times = 0;
JuanClerici 0:a49a5f50d6bc 135 printf("VERDE\r\n");
JuanClerici 2:f45bd4655817 136 posSec++;
JuanClerici 0:a49a5f50d6bc 137 }
JuanClerici 0:a49a5f50d6bc 138 break;
JuanClerici 0:a49a5f50d6bc 139 case 3:
JuanClerici 3:1610e2f8803b 140 //Muestro LED azul
JuanClerici 0:a49a5f50d6bc 141 leds(0b001);
JuanClerici 0:a49a5f50d6bc 142 if(times > 5) {
JuanClerici 0:a49a5f50d6bc 143 apagado = 1;
JuanClerici 0:a49a5f50d6bc 144 times = 0;
JuanClerici 0:a49a5f50d6bc 145 printf("AZUL\r\n");
JuanClerici 2:f45bd4655817 146 posSec++;
JuanClerici 0:a49a5f50d6bc 147 }
JuanClerici 0:a49a5f50d6bc 148 break;
JuanClerici 0:a49a5f50d6bc 149 }
JuanClerici 0:a49a5f50d6bc 150 } else {
JuanClerici 2:f45bd4655817 151 //Dejo un espacio apagado entre los colores de las secuencias
JuanClerici 0:a49a5f50d6bc 152 leds(0b000);
JuanClerici 0:a49a5f50d6bc 153 if (times > 5) {
JuanClerici 0:a49a5f50d6bc 154 times = 0;
JuanClerici 0:a49a5f50d6bc 155 apagado = 0;
JuanClerici 0:a49a5f50d6bc 156 }
JuanClerici 0:a49a5f50d6bc 157 }
JuanClerici 0:a49a5f50d6bc 158 } else {
JuanClerici 2:f45bd4655817 159 //Espero 5 times el ultimo LED encendido y lo apago
JuanClerici 0:a49a5f50d6bc 160 if (times > 5)
JuanClerici 0:a49a5f50d6bc 161 leds(0b000);
JuanClerici 2:f45bd4655817 162 //Espero 5 times mas para separar el final de muestreo con el inicio del Juego
JuanClerici 0:a49a5f50d6bc 163 if (times > 10) {
JuanClerici 2:f45bd4655817 164 loop = 1;
JuanClerici 0:a49a5f50d6bc 165 times = 0;
JuanClerici 0:a49a5f50d6bc 166 }
JuanClerici 0:a49a5f50d6bc 167 }
JuanClerici 0:a49a5f50d6bc 168 break;
JuanClerici 1:78297550b459 169 case ESTADO_JUEGO:
JuanClerici 3:1610e2f8803b 170 //Detecto si el jugador tarda mucho tiempo en apretar un boton
JuanClerici 0:a49a5f50d6bc 171 if (espera > 50) {
JuanClerici 0:a49a5f50d6bc 172 printf("Tardaste demaciado tiempo en elegir\r\n");
JuanClerici 1:78297550b459 173 estado = ESTADO_PERDER;
JuanClerici 0:a49a5f50d6bc 174 break;
JuanClerici 0:a49a5f50d6bc 175 }
JuanClerici 2:f45bd4655817 176 //Detecto un cambio en los pulsadores
JuanClerici 0:a49a5f50d6bc 177 if(flagPulsador) {
JuanClerici 0:a49a5f50d6bc 178 espera = 0;
JuanClerici 0:a49a5f50d6bc 179 flagPulsador = 0;
JuanClerici 0:a49a5f50d6bc 180 times = 0;
JuanClerici 2:f45bd4655817 181 //Detecto que pulsador precionaron y enciendo el LED
JuanClerici 0:a49a5f50d6bc 182 switch(pulsador) {
JuanClerici 0:a49a5f50d6bc 183 case 1:
JuanClerici 0:a49a5f50d6bc 184 printf("ROJO \r\n");
JuanClerici 0:a49a5f50d6bc 185 leds(0b100);
JuanClerici 0:a49a5f50d6bc 186 break;
JuanClerici 0:a49a5f50d6bc 187 case 2:
JuanClerici 0:a49a5f50d6bc 188 printf("VERDE \r\n");
JuanClerici 0:a49a5f50d6bc 189 leds(0b010);
JuanClerici 0:a49a5f50d6bc 190 break;
JuanClerici 0:a49a5f50d6bc 191 case 3:
JuanClerici 0:a49a5f50d6bc 192 printf("AZUL \r\n");
JuanClerici 0:a49a5f50d6bc 193 leds(0b001);
JuanClerici 0:a49a5f50d6bc 194 break;
JuanClerici 0:a49a5f50d6bc 195 }
JuanClerici 2:f45bd4655817 196 //Comparo si el pulsador apretado es el correcto segun la secuencia
JuanClerici 2:f45bd4655817 197 if(pulsador == sec[posJuego]) {
JuanClerici 2:f45bd4655817 198 posJuego++;
JuanClerici 2:f45bd4655817 199 //Si alcancé el nivel en el que estoy paso de nivel
JuanClerici 2:f45bd4655817 200 if(posJuego == nivelSec) {
JuanClerici 2:f45bd4655817 201 nivelSec++;
JuanClerici 0:a49a5f50d6bc 202 printf("\n\t--------------------------------\r");
JuanClerici 2:f45bd4655817 203 //Si alcancé el máximo nivel paso al estado GANAR
JuanClerici 2:f45bd4655817 204 if (nivelSec == NIVELES + 1) {
JuanClerici 1:78297550b459 205 estado = ESTADO_GANAR;
JuanClerici 0:a49a5f50d6bc 206 } else {
JuanClerici 2:f45bd4655817 207 //Si no llegué al máximo nivel paso de nivel
JuanClerici 3:1610e2f8803b 208 printf("\nPasaste al nivel %d!\r\n\n", nivelSec);
JuanClerici 2:f45bd4655817 209 posSec = 0;
JuanClerici 2:f45bd4655817 210 posJuego = 0;
JuanClerici 1:78297550b459 211 estado = ESTADO_MUESTREO;
JuanClerici 2:f45bd4655817 212 loop = 0;
JuanClerici 0:a49a5f50d6bc 213 times = 0;
JuanClerici 0:a49a5f50d6bc 214 }
JuanClerici 0:a49a5f50d6bc 215 }
JuanClerici 0:a49a5f50d6bc 216 } else {
JuanClerici 2:f45bd4655817 217 //Si el pulsador no corresponde con la secuencia paso al estado PERDER
JuanClerici 1:78297550b459 218 estado = ESTADO_PERDER;
JuanClerici 0:a49a5f50d6bc 219 }
JuanClerici 0:a49a5f50d6bc 220 }
JuanClerici 2:f45bd4655817 221 //Espero 5 times el LED encendido
JuanClerici 0:a49a5f50d6bc 222 if (times > 5) {
JuanClerici 0:a49a5f50d6bc 223 leds(0b000);
JuanClerici 0:a49a5f50d6bc 224
JuanClerici 0:a49a5f50d6bc 225 }
JuanClerici 0:a49a5f50d6bc 226 break;
JuanClerici 1:78297550b459 227 case ESTADO_PERDER:
JuanClerici 3:1610e2f8803b 228 //Prendo el LED blanco para mostrar que termino el juego y vuelvo al estado COMENZAR
JuanClerici 0:a49a5f50d6bc 229 printf("\nPerdiste Bro :(\r\n");
JuanClerici 0:a49a5f50d6bc 230 printf("Apreta cualquier boton para reiniciar!\r\n\n");
JuanClerici 0:a49a5f50d6bc 231 leds(0b111);
JuanClerici 1:78297550b459 232 estado = ESTADO_COMENZAR;
JuanClerici 1:78297550b459 233 break;
JuanClerici 1:78297550b459 234
JuanClerici 1:78297550b459 235 case ESTADO_GANAR:
JuanClerici 3:1610e2f8803b 236 //Mustro el LED blanco para mostrar que termino el juego y aviso que completo la secuencia
JuanClerici 1:78297550b459 237 printf("\nGANASTE!!! :)\r\n\n");
JuanClerici 1:78297550b459 238 printf("Apreta cualquier boton para reiniciar!\r\n\n");
JuanClerici 1:78297550b459 239 leds(0b111);
JuanClerici 1:78297550b459 240 estado = ESTADO_COMENZAR;
JuanClerici 0:a49a5f50d6bc 241 break;
JuanClerici 0:a49a5f50d6bc 242 }
JuanClerici 0:a49a5f50d6bc 243 }
JuanClerici 0:a49a5f50d6bc 244 void leds(int num)
JuanClerici 0:a49a5f50d6bc 245 {
JuanClerici 2:f45bd4655817 246 //Funcion que codifica el encendido y apagado de los LEDs
JuanClerici 0:a49a5f50d6bc 247 switch(num) {
JuanClerici 0:a49a5f50d6bc 248 case 0:
JuanClerici 0:a49a5f50d6bc 249 Rojo = 1;
JuanClerici 0:a49a5f50d6bc 250 Verde = 1;
JuanClerici 0:a49a5f50d6bc 251 Azul = 1;
JuanClerici 0:a49a5f50d6bc 252 break;
JuanClerici 0:a49a5f50d6bc 253 case 4:
JuanClerici 0:a49a5f50d6bc 254 Rojo = 0;
JuanClerici 0:a49a5f50d6bc 255 Verde = 1;
JuanClerici 0:a49a5f50d6bc 256 Azul = 1;
JuanClerici 0:a49a5f50d6bc 257 break;
JuanClerici 0:a49a5f50d6bc 258 case 2:
JuanClerici 0:a49a5f50d6bc 259 Rojo = 1;
JuanClerici 0:a49a5f50d6bc 260 Verde = 0;
JuanClerici 0:a49a5f50d6bc 261 Azul = 1;
JuanClerici 0:a49a5f50d6bc 262 break;
JuanClerici 0:a49a5f50d6bc 263 case 1:
JuanClerici 0:a49a5f50d6bc 264 Rojo = 1;
JuanClerici 0:a49a5f50d6bc 265 Verde = 1;
JuanClerici 0:a49a5f50d6bc 266 Azul = 0;
JuanClerici 0:a49a5f50d6bc 267 break;
JuanClerici 0:a49a5f50d6bc 268 case 7:
JuanClerici 0:a49a5f50d6bc 269 Rojo = 0;
JuanClerici 0:a49a5f50d6bc 270 Verde = 0;
JuanClerici 0:a49a5f50d6bc 271 Azul = 0;
JuanClerici 0:a49a5f50d6bc 272 break;
JuanClerici 0:a49a5f50d6bc 273 }
JuanClerici 0:a49a5f50d6bc 274 }
JuanClerici 0:a49a5f50d6bc 275
JuanClerici 0:a49a5f50d6bc 276 char Pulsador()
JuanClerici 0:a49a5f50d6bc 277 {
JuanClerici 2:f45bd4655817 278 //Funcion que aciva un flag con el cambio del pulsador y guarda el pulsado en una variable
JuanClerici 0:a49a5f50d6bc 279 pulsador = 0;
JuanClerici 1:78297550b459 280
JuanClerici 4:ddba0fd2caa4 281 if (antirrebote(PA)) {
JuanClerici 3:1610e2f8803b 282 flagPulsador = 1;
JuanClerici 3:1610e2f8803b 283 pulsador = 1;
JuanClerici 3:1610e2f8803b 284 return 0;
JuanClerici 3:1610e2f8803b 285 }
JuanClerici 4:ddba0fd2caa4 286 if (antirrebote(PV)) {
JuanClerici 0:a49a5f50d6bc 287 flagPulsador = 1;
JuanClerici 0:a49a5f50d6bc 288 pulsador = 2;
JuanClerici 0:a49a5f50d6bc 289 return 0;
JuanClerici 0:a49a5f50d6bc 290 }
JuanClerici 4:ddba0fd2caa4 291 if (antirrebote(PR)) {
JuanClerici 0:a49a5f50d6bc 292 flagPulsador = 1;
JuanClerici 0:a49a5f50d6bc 293 pulsador = 3;
JuanClerici 0:a49a5f50d6bc 294 return 0;
JuanClerici 0:a49a5f50d6bc 295 }
JuanClerici 1:78297550b459 296
JuanClerici 0:a49a5f50d6bc 297 pulsador = 0;
JuanClerici 0:a49a5f50d6bc 298 flagPulsador = 0;
JuanClerici 0:a49a5f50d6bc 299 return 0;
JuanClerici 0:a49a5f50d6bc 300 }
JuanClerici 0:a49a5f50d6bc 301
JuanClerici 4:ddba0fd2caa4 302 bool antirrebote(bool lectura)
JuanClerici 4:ddba0fd2caa4 303 {
JuanClerici 4:ddba0fd2caa4 304 //Funcion que hace un anti rebote y detecta el cambio de un pulsador
JuanClerici 4:ddba0fd2caa4 305 static bool lecant = 0;
JuanClerici 4:ddba0fd2caa4 306
JuanClerici 4:ddba0fd2caa4 307 switch(estado) {
JuanClerici 4:ddba0fd2caa4 308 case INICIO_P:
JuanClerici 4:ddba0fd2caa4 309 //Si tengo un flanco ascendente
JuanClerici 4:ddba0fd2caa4 310 if((lectura == 1) && (lecant == 0)) {
JuanClerici 4:ddba0fd2caa4 311 estado = RISING_P;
JuanClerici 4:ddba0fd2caa4 312 }
JuanClerici 4:ddba0fd2caa4 313 break;
JuanClerici 4:ddba0fd2caa4 314 case RISING_P:
JuanClerici 4:ddba0fd2caa4 315 /*Devuelvo el estado uno , una unica vez (Saco el rebote)*/
JuanClerici 4:ddba0fd2caa4 316 estado = RETENCION_P;
JuanClerici 4:ddba0fd2caa4 317 tp = 0;
JuanClerici 4:ddba0fd2caa4 318 return 1; //Devuelvo el estado alto ya que tuve un flanco
JuanClerici 4:ddba0fd2caa4 319 case RETENCION_P:
JuanClerici 4:ddba0fd2caa4 320 /*Durante un segundo y siempre que la lectura siga siendo alta retengo*/
JuanClerici 4:ddba0fd2caa4 321 if((tp >= 3) && (lectura == 0)) {
JuanClerici 4:ddba0fd2caa4 322 estado = INICIO_P;
JuanClerici 4:ddba0fd2caa4 323 }
JuanClerici 4:ddba0fd2caa4 324 break;
JuanClerici 4:ddba0fd2caa4 325 }
JuanClerici 4:ddba0fd2caa4 326 lecant = lectura; //Asigno el estado previo para el proximo ciclo..
JuanClerici 4:ddba0fd2caa4 327 return 0; //Devuelvo el estado nulo o cero
JuanClerici 4:ddba0fd2caa4 328 }
JuanClerici 4:ddba0fd2caa4 329
JuanClerici 4:ddba0fd2caa4 330 void timer()
JuanClerici 0:a49a5f50d6bc 331 {
JuanClerici 2:f45bd4655817 332 //Funcion que detecta las interrupciones del timer
JuanClerici 0:a49a5f50d6bc 333 times++;
JuanClerici 0:a49a5f50d6bc 334 semilla ++;
JuanClerici 0:a49a5f50d6bc 335 espera++;
JuanClerici 4:ddba0fd2caa4 336 tp++;
JuanClerici 0:a49a5f50d6bc 337 }