Hola, estoy utilizando un PIC16f690 para hacer una especie de reloj/alarma/loquesalga...
Concretamente en la entrada RA2, tengo conectado un pulsador que al pulsarlo conecta la entrada a masa.
Configuro dicho pin como entrada:
//Entradas y salidas
ANSEL = 0; //Configura puertos digitales
ANSELH = 0; //Configura puertos digitales
TRISA = 0b011100; //Configura el puerto A.
Tengo activada la resistencia interna de pull-up con el codigo:
OPTION_REG = 0x7F; //Habilita las pull up individuales del puerto A y B
WPUA2 = 1;
Se supone que al pulsar el pulsador se debe tener un '0' lógico y al soltarlo un '1' lógico, pero no. La 1ª o 2ª vez que se pulsa se queda fijo a '0' logico y la única forma de que vuelva a '1' lógico es hacer un puente a VCC (5v).
He provado a poner resistencia externa de pull-up, de distintos valores, y el resultado con todas ellas es el mismo: la única forma de quitar el '0' lógico es conectar el pin directamente a VCC.
¿Alguien sabe a qué se debe esto y como se puede solucionar?
Gracias.
Saludos.
Concretamente en la entrada RA2, tengo conectado un pulsador que al pulsarlo conecta la entrada a masa.
Configuro dicho pin como entrada:
//Entradas y salidas
ANSEL = 0; //Configura puertos digitales
ANSELH = 0; //Configura puertos digitales
TRISA = 0b011100; //Configura el puerto A.
Tengo activada la resistencia interna de pull-up con el codigo:
OPTION_REG = 0x7F; //Habilita las pull up individuales del puerto A y B
WPUA2 = 1;
Se supone que al pulsar el pulsador se debe tener un '0' lógico y al soltarlo un '1' lógico, pero no. La 1ª o 2ª vez que se pulsa se queda fijo a '0' logico y la única forma de que vuelva a '1' lógico es hacer un puente a VCC (5v).
He provado a poner resistencia externa de pull-up, de distintos valores, y el resultado con todas ellas es el mismo: la única forma de quitar el '0' lógico es conectar el pin directamente a VCC.
¿Alguien sabe a qué se debe esto y como se puede solucionar?
Gracias.
Saludos.