Hola estoy intentando leer el puerto A del PIC18F4550 y encender unos leds en función del estado de éste. Hay algo que no funciona, pero no logro ver que es. ¿Podría alguien ayudarme?
//*** EJEMPLOS CURSO C18 TODOPIC ***
//*** 5.-IF ELSE ***
#include <p18f4550.h>
//#include <delays.h>
#include <stdio.h>
#pragma config FOSC = XT_XT,FCMEN = OFF,IESO = OFF //CONFIG1H
#pragma config PWRT = ON,BOR = OFF,BORV = 0 //CONFIG2L
#pragma config WDT = OFF,WDTPS = 32768 //CONFIG2H
#pragma config MCLRE = ON,LPT1OSC = OFF,PBADEN = OFF,CCP2MX = ON//CONFIG3H
#pragma config STVREN = OFF,LVP = OFF,XINST = OFF,DEBUG = OFF//CONFIG4L
#pragma config CP0 = ON,CP1 = ON,CP2 = ON, CP3 = ON//CONFIG5L
#pragma config CPB = ON,CPD = ON//CONFIG5H
#pragma config WRT0 = ON,WRT1 = ON,WRT2 = ON,WRT3 = ON//CONFIG6L
#pragma config WRTB = ON,WRTC = ON,WRTD = ON//CONFIG6H
#pragma config EBTR0 = ON,EBTR1 = ON,EBTR2 = ON,EBTR3 = ON//CONFIG7L
#pragma config EBTRB = ON//CONFIG7H
unsigned int valor;
void main(void){
//inicializar puertoA
//todos los pines
//seran digitales
PORTA = 0XFF; //inicializar puertoA como entrada
LATA = 0X00;
ADCON0 = 0X00; //ADC desactivado
ADCON1 = 0X0F; //Digitales
CMCON = 0X07; //Comparadores desactivados
//*******************
TRISA = 0XFF;
TRISB = 0X00;
TRISC = 0X00;
LATB = 0XFF;
//*******************************************************
//*******************************************************
while(1)
{
valor=PORTA;
//***************
if(valor == 0X00)
{
LATB = 0XFF;
}
//***************
if(valor == 0X01)
{
LATB = 0X00;
}
}
//*******************************************************
//*******************************************************
}
Para leer o escribir en el puerto en C18. ¿hay que usar LATX o PORTX?
Gracias.
PD: El código es modificado del tutorial de C18 de micro_cadaver de este foro.
Como salida en el puerto B uso leds. y como entrada en el puerto A un pulsador qeu da 5 V al pulsarlo, la idea es dejarlo pulsado y ver como cambia el puerto B.