Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

02/03/2012 #1


PIC enclava la entrada :S
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.
03/03/2012 #2
Moderador

Avatar de D@rkbytes

peluky69 dijo: Ver Mensaje
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.
Saludos.
Al parecer el problema que tienes se debe a un mal funcionamiento del oscilador del pic
o alguna falla de alimentación. Verifica la configuración de fuses, oscilador, MCLR y alimentación.

No entiendo porque reiteras otra vez la weak pullup de RA2 con WPUA2 = 1
Si con declarar el Bit7 del registro OPTION_REG en 0 ya queda habilitada
La declaración OPTION_REG = 0x7F; // = 01111111 ya lo hace tanto para el puerto A como para el B.

Pudiera ser otra causa, pero a simple vista de lo que escribes,
nada parece hacer que RA2 quede enclavado en 0.
13/04/2012 #3


Ya lo solucioné. El problema era que la funcion del lcd cambiaba la configuracion y configuraba el puerto como salida.

Muchas gracias
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.