Matriz teclado

L

lats

Guest
Hola,

Siempre me confunden con las teclas.Esta vez la confusión se encuentra en los picos.Soy de interfaz con un teclado 4x4 uC.He hecho el código que muestra el número de clave que se ha presionado
y está trabajando muy bien.En este código
estoy esperando continuamente de una clave para ser presionado.
Tengo que aplicar esto en mi proyecto en el que este teclado se utiliza para introducir la contraseña, algunos valores físicos,
etc ahora el problema es que no puedo esperar continuamente de una clave para ser pulsado,
por lo que debo llamar a esta función de temporizador periódicamente o debería generar una interrupción en común para estas 16 teclas.

Segundo problema, si tengo que entrar un valor digamos "1652" ¿Cómo se deben leer el teclado.Quiero decir ¿Cómo debo mucho el valor, hay que multiplicar el primer valor de clave de 1000 entonces en segundo lugar con 100 entonces tercero con 10
y por último añadir estos los cuatro,
al igual que 1 * 1000 6 * 100 5 * 10 2 = 1652Si alguien puede compartir una parte de su código con me
voy a ser muy agradecidos.Muchas gracias a todos ustedes.

 
para tu primer problema se puede comparar el puerto con valor por defecto (por
ejemplo 11110000b) en el temporizador de interrupción se producen periódicamente
clave y, a continuación, si se pulsa la tecla de llamada encontrar subrutina o función
pero este aumento de latencia por interrupción de su
así que en vez puedes configurar una bandera y esa bandera para comprobar si su conjunto, entonces su clave es prensado para comprobar que esto reducirá la carga sobre el temporizador de interrupciónpara la segunda pregunta, por favor decirle que controlador y que el idioma

 
usted necesita para describir lo que usted está utilizando microcontrolador y el lenguaje que el código mismo.es decir, c o montaje

 
Gracias SAU, para la respuesta, pero donde
y cuando debo configurar la bandera.
Estoy usando PIC18F4550
y programación en "C"Muchas gracias por responder.

 
temporizador de interrupción en su rutina cuando habrá un desfase en el valor (11110000b),
es decir, si se presiona una tecla de configurar una bandera

y en el bucle principal para comprobar siempre que su marca con otras mediciones y las tareas
si la bandera se establece a continuación, si se pulsa la tecla
entonces usted tiene que llamar a la función keyfind clave para encontrar el que se presiona

 
Gracias de nuevo para responder sau.Pero en el caso si la función principal está ocupado con otra,
y por el tiempo que el usuario abandone la clave de cómo se presiona el controlador saber qué tecla se presionó.realmente esto es lo que siempre me problemas.Creado a partir del 1 de minutos:sau que son de India
y también me puede u por favor me dan su teléfono móvil no.Te
llamaré si no le importa.

 
cuánto tiempo necesario en hacer otras tareas

porque la micro controladores están utilizando microsegundos en el desempeño de otras tareas

¿cuáles son las otras cosas que están haciendo en su sistema
o si la rima no es suficiente para intentar aumentar la velocidad de cristal (si no está usando UART)

Soy diputado de la India, desde donde usted está

 
así que por favor me dicen acerca de sus otras tareas en el sistema utilizado
para que podamos decidir qué hacer en la interrupción

 
En cada interrupción del temporizador, escanear la siguiente fila de la matriz.Después de escanear todos los registros establecer una variable con el valor de la clave o presionado a cero, si no presiona.Su bucle principal puede comprobar esta variable para ver si no es cero, lo que significa que se presionó una tecla.Si el bucle principal está demasiado ocupado para ello, a continuación, en su rutina de interrupción debe escribir la variable en un búfer que pueden ser leídos más tarde.El tamaño de la memoria depende de la frecuencia con la que se pulsan teclas frente a la frecuencia con que el bucle principal puede leerlo

 

Welcome to EDABoard.com

Sponsor

Back
Top