Autor Tema: Interrumpir cuenta regresiva...  (Leído 1758 veces)

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

Desconectado aghor

  • PIC10
  • *
  • Mensajes: 19
Interrumpir cuenta regresiva...
« en: 13 de Septiembre de 2006, 23:02:53 »
Hola amigos...
Tengo hecho un programa que al comienzo ofrece la opcion de entrar a una "configuracion".
Lo que hice de la sgte. manera.
       For(k=5;k>0;k--){
       printf(lcd_putc,"\fEntrar a configuracion? %u, k);
       ... ;
       ... ;
      // si detecta cambio estado de boton X, entre a configuracion();
       delay_ms(1000);}

Bueno la idea es que se presione un boton para realizar la "configuracion()" , el problema es que no se como realizar dicha espera sin el for() ya que no puedo interrumpir la cuenta regresiva usándolo.
En dicha instancia tengo desactivadas las interrupciones.
 
Existe alguna forma diferente de hacerlo??
Espero haya quedado mas o menos claro....
Gracias !!  8)


Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Interrumpir cuenta regresiva...
« Respuesta #1 en: 13 de Septiembre de 2006, 23:40:21 »
Aunque la forma idónea es usando interrupción por pulsación,te puede valer algo así:

Código: C++
  1. long int k = 5000;
  2. bool pulsacion = FALSE;
  3. while(!pulsacion && k>0)
  4.    {
  5.    printf(lcd_putc,"\fEntrar a configuracion? %u", int((k+999)/1000));
  6.    pulsacion = estado_boton_X;
  7.    delay_ms(1);
  8.    k--;
  9.    }
  10. if(pulsacion)
  11.    {
  12.    configuracion();
  13.    }

Aunque no sé si será demasiado eficaz a la hora de detectar la pulsación,será cuestión de que pruebes
« Última modificación: 13 de Septiembre de 2006, 23:57:10 por Modulay »

Desconectado aghor

  • PIC10
  • *
  • Mensajes: 19
Re: Interrumpir cuenta regresiva...
« Respuesta #2 en: 14 de Septiembre de 2006, 00:53:40 »
Gracias por tu interés... voy a revisar :)

 !!!!!! Lo he solucionado usando RB0, activando la interrupcion externa solo sobre esa cuenta con un For.

Gracias  :mrgreen:
« Última modificación: 21 de Septiembre de 2006, 11:11:16 por aghor »