Hola Fer. Convencido de que era el .NPL no te detalle el funcionamiento. Lo hago ahora:
0) Carga los valores, almacenados en la eeprom, en tecla_1 a 4.
1)Solicita el código de acceso y barre el teclado.
2) Si se ingresó un dígito ingresa en la interrupción y lo compara con el código valido,tecla_1 a 4. Si todos son correctos´, al apretar la 5ta tecla, ves el mensaje de Aceptado y habilita las demás funciones.Si no muestra error de código.Si da error 3 veces borra los registros y vuelve a inicio.
3)Con * seleccionas cambio de código y te pide la primer vez el nuevo código.
4)Ingresados 4 dígitos (código nuevo) los almacena (temporal_1a4) y solicita repetir el codigo.
5) Ingresando 4 dígitos los va comparando con los almacenados en el paso anterior y, si son correctos pasa sin visor a grabar el código nuevo en la eeprom y cargar el nuevo código en tecla_1 a 4 para futuras validaciones, se reset todos los registros. Si no muestra error de código.Si da error 3 veces borra los registros y vuelve a inicio.
- Las funciones adicionales se ejecutan si no elijes cambio de código. Cambiar código al salir lo hace reseteando todo, por lo que debe validarse el código nuevamente para las funciones
- F4 acepta el código ingresado (necesario para poder corregir el 4to valor ingresado), mientras F3 hace que no avance el contador de presionadas y se pueda corregir el valor ingresado.
- Las funcione de cada tecla son elegibles o descartables según necesidad.
- He modificado los mensajes y solo se va en el inicia (único mostrado fuera de valido o no), donde veo: Valxx (codigo valido), tempxx(valor guardado en 1er paso del cambio de código, contxx(numero de tecla pulsada)y Tec xx(valor de la tecla pulzada.
Además he modificado poniendo todos los pines RB0 a 3 a +V, luego habilito la interrupción y barro el teclado, con lo que elimino el valor de cualquier tecla residente durante la interrupción.
El problema está en la re habilitación del teclado, pero no le encuentro la pata a la sota.
Espero no haber olvidado cosas,
el alemán no me deja claros en la cabeza.
Un abrazo.