duda para detectar pulso de pushbutton en puerto paralelo

Hola, una vez mas recurro a ustedes para solucionar una duda, aunque creo que está mas orientada a la progamacion...

Resulta que tengo que leer el dato que envie un pushbutton por el puerto paralelo por el registro de datos (D7 a D0). Uso Borland C.

El chiste es este: si presiono el botón (no mantenerlo, solo presionarlo y soltarno...bueno pues es un pushbutton) entro a una funcion X y muestro texto en pantalla de que estoy en esa funcion. Si presiono de nuevo, me salgo y se indica en la pantalla.

Sin embargo, la duración mínima de pulsacion de un pushbutton es de aprox 20ms, lo que causa un problema, porque el programa lee en orden de microdegundos, por lo que lee demasiadas veces el dato (por método de encuesta) causando que entre y salga de la funcion inmediatamente....

por ahi el profe me indico que tenia que hacer algo parecido a cuando se usa VHDL, con la funcion (clock´event,0), que registra cuando paso de transicion de 0 a 1 (boton presionado) y de 1 a 0 (boton suelto).

mas o menos la idea que entendí es, si quiero entrar a mi funcion, tengo que checar que el dato leido pase de 0 a cualquier cosa (ya que leo hasta 8 bits...lo que es un numero entero) y de esa lectura a cero....una vez cumplidas esas 2 condiciones entra a la funcion. Para salir es la misma idea.....

sin embargo no se cómo hacerlo para c......es para entrar a un menus usando botones externos
 
Podrias usar una boolean iniciandola en false ,luego haces una condicion si esa boolean esta en false , si es asi , haces lo que tu quieres hacer y seteas la boolean en true.


PD: Las booleans solo tiene 2 estados , true y false , nada mas.
 
Atrás
Arriba