Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: aghor en 13 de Septiembre de 2006, 23:02:53
Título: Interrumpir cuenta regresiva...
Publicado por: aghor 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)
Título: Re: Interrumpir cuenta regresiva...
Publicado por: Modulay 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++
longint k =5000;
bool pulsacion = FALSE;
while(!pulsacion && k>0)
{
printf(lcd_putc,"\fEntrar a configuracion? %u", int((k+999)/1000));
pulsacion = estado_boton_X;
delay_ms(1);
k--;
}
if(pulsacion)
{
configuracion();
}
Aunque no sé si será demasiado eficaz a la hora de detectar la pulsación,será cuestión de que pruebes
Título: Re: Interrumpir cuenta regresiva...
Publicado por: aghor 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.