TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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);
}
}
-
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
-
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.
-
¿Qué te pone en el error?
De paso pega el programa entero, a ver como lo tienes.
Un saludo