Autor Tema: PAUSA Y PLAY  (Leído 1069 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado SOPHIA91

  • PIC10
  • *
  • Mensajes: 1
PAUSA Y PLAY
« en: 12 de Septiembre de 2015, 00:44:34 »
Buenas noches mis queridos compañeros, soy nuevo en el uso de los microcontroladores pic, y estoy elaborando un proyecto y necesito saber como puedo PAUSAR una función y volver a dar PLAY. Ejemplo con RB1 pausa y RB2 play.

¿como hago para pausar?
while(TRUE)
{   
     output_high(PIN_B1);
     delay_ms(10000);
     output_low(PIN_B1);
     delay_ms(1000);
}

Que la función quede congelada y al presionar RB2 continua normalmente, ¿quien me podría ayudar con el problema o alguna mejora?
MUCHAS GRACIAS AMIGOS ESPERO ME PUEDAN AYUDAR. :oops:

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: PAUSA Y PLAY
« Respuesta #1 en: 12 de Septiembre de 2015, 03:26:59 »
Pensalo como que tenes que encender una llave y esa llave comanda el programa.
Ademas tu boton en RB1 es quien va a manejar que se prenda o apague esa llave.

Otra cosa, por que poner 2 botones, cuando lo podes hacer con 1 :).
En el ejemplo, RB1 es una salida y RB2 es uan entrada ( como para un boton )


Código: C
  1. int1 var=0;  //Solo 2 estados, 1 o 0
  2.  
  3. while(TRUE)
  4. {
  5.      if(input(PIN_B2)) var^=1;                // Cambio el estado del bit 0 de var, eso me va a indicar
  6.      if(var)
  7.      {
  8.            output_high(PIN_B1);
  9.            delay_ms(1000);
  10.            output_low(PIN_B1);
  11.            delay_ms(1000);
  12.      }
  13. }

Tenes que darte cuenta que para que funcione el boton, vas a tener que esperar que pasen esos delays que estan puestos, es decir, para que tome efecto el boton vas a tener que tenerlo presionado por unos microsegundos hasta 2 segundos que es la suma de esos delays. Si queres el boton se detecte rapidamente, entonces vas a tener que hacer otras cosas un poco mas complejas como el uso de interrupciones/timers. Y quitar los delays, pero creo que esto va a hacer lo que queres