TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: NODOR en 06 de Octubre de 2004, 11:14:00

Título: problemas para leer puerto A del pic 16F877
Publicado por: NODOR en 06 de Octubre de 2004, 11:14:00
Soy nuevo en el mundo de los microprocesadores, intento realizar programas sencillos y me ha surgido un problema al intentar leer el puerto A, adjunto el programa para ver si alguien me puede ayudar y me indique que es lo que realizo mal.

#include <16f877.h>



#USE STANDARD_IO(A)
#use fast_io(a)
#use fast_io(b)
#byte porta = 0x05
#byte portb = 0x06


INT INICIALIZAR_VALORES()
{
   setup_adc(ADC_OFF);
   setup_adc_ports(NO_ANALOGS);
   SET_TRIS_A(0xFF);
   set_tris_b(0x00);
 
RETURN;
}  


main(void)
{
INICIALIZAR_VALORES();


IF (INPUT(PIN_A5))
{
 OUTPUT_HIGH(PIN_B5);

}
IF (INPUT(!PIN_A5))
{
 OUTPUT_HIGH(PIN_B7);
}


}
Título: RE: problemas para leer puerto A del pic 16F877
Publicado por: pocher en 06 de Octubre de 2004, 12:26:00
Tenías que haber explicado concretamente cual es el problema que te sucede al leer el porta. No somos adivinos, hay que facilitar las cosas.

Dos errores:

- Falta inicializar el puerto en la función con output_b(0x00)

- Cambia el segundo IF (INPUT(!PIN_A5)) por IF (!INPUT(PIN_A5))

Un saludo
Título: RE: problemas para leer puerto A del pic 16F877
Publicado por: NODOR en 13 de Octubre de 2004, 11:30:00
La función output_b(0x00) me da error al compilar el programa.
La libreria que estoy utilizando es la que viene por defecto con el programa CCS, puede que esté incompleta?
Alguien me podría ayudar?
Gracias.
Título: RE: problemas para leer puerto A del pic 16F877
Publicado por: pocher en 13 de Octubre de 2004, 11:40:00
¿Qué te pone en el error?

De paso pega el programa entero, a ver como lo tienes.

Un saludo