Autor Tema: Detectar la pulsación prolongada de un botón  (Leído 2101 veces)

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

Desconectado nutriax

  • PIC10
  • *
  • Mensajes: 42
Detectar la pulsación prolongada de un botón
« en: 02 de Abril de 2010, 13:02:37 »
Hola, antes que nada perdón si este tema ya se encuentra en algún otro post, el problema no es que no se usar el buscador del foro!  :D :D
el tema es que no se cómo llamarlo, pero paso a describir que es lo que quiero hacer y ustedes me dicen que opinan o con que nombre lo buscaría porque la verdad que no tengo ni idea como buscarlo.
tengo un pic con un lcd en el cual tengo un menú con varias opciones, cuando entro en una opcion tengo que cambiar un valor con cada pulsación de un botón mas (o up, se incrementa el valor) y un menos (o down, se decrementa el valor), pero el tema es que el usuario va a tener que cambiar por ejemplo de un valor de 30 a 200 por ejemplo pero con un incrementos de a 1, por tal motivo quiero programar una función que como suelen tener varios aparatos en donde el usuario presiona el boton y se va incrementando de a uno y si pasan por ejemplo 700 milisegundos con el boton presionado pasa a incrementar mucho mas rápido...
esto lo había pensado como voy a describir en el pseudo codigo (el pseudocodigo que pongo a continuación es solo ilustrativo ya que no tengo programado nada por ahora y no tengo las herramientas de programación a mano para programar y probarlo) me interesa únicamente la forma lógica de hacerlo, si alguien pone código mucho mejor  :lol:

Código: [Seleccionar]
if(btn_up){
    long valor_a_cambiar=0;
    int cont=0;
    while(btn_up){
        if(cont<4){
            cont++;
            delay_ms(200);
        }else{
            delay_ms(10);
        }
        if(valor_a_cambiar<600){
            valor_a_cambiar++;
        }
        imprimirValorEnLcd();
    }
}
Ustedes que opinan??? o como lo harían ustedes?

P.D.: modifique el post porque habia puesto las 3 primeras lineas y por problemas con el teclado se me publico...  :5]
« Última modificación: 02 de Abril de 2010, 13:32:09 por nutriax »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Detectar la pulsación prolongada de un botón
« Respuesta #1 en: 02 de Abril de 2010, 13:10:02 »
No contesto mensajes privados, las consultas en el foro

Desconectado nutriax

  • PIC10
  • *
  • Mensajes: 42
Re: Detectar la pulsación prolongada de un botón
« Respuesta #2 en: 02 de Abril de 2010, 13:41:51 »
Gracias por contestar rápido, pero eso no es lo que necesito, ahí explique bien mi problema, lo que pasa que cuando iba por la línea 2 o 3 de mi explicación, por problemas de teclado se me publico el post, pero ahí lo modifique.
también aprovecho para comentar que cuando el micro esta en el menú, no tiene que hacer absolutamente mas nada, y únicamente puede estar pulsada una tecla a la vez, no tiene recepción de rs232 ni nada que me puede interrumpir, por lo tanto puedo esperar el tiempo que sea necesario.
y también soy consciente de que si se suelta y se aprieta nuevamente mientras está el delay, este se cuenta como si nunca se hubiese suelto.