Hola de nuevo a todos, continuo con mi interés en aprender C, y vuelvo a atrancarme en el siguiente ejemplo:
///Compara el dato del puerto de entrada PORTA con un "Numero". Tres posibilidades:
// - Si (PORTA) = Numero se encienden todos los LEDs de salida.
// - Si (PORTA) > Numero se activan los LEDs pares de salida.
// - Si (PORTA) < Numero se encienden los LEDs del nibble alto y se apagan los del bajo.
#include <16F84A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#use delay(clock=4000000)
#byte PORTA=0x05 // Dirección del PortA NO FUNCINA SI QUITO ESTO
#byte PORTB=0x06 // Dirección del PortB
#use fast_io(B)
#use fast_io(A)
//DECLARACIÓN DE VARIABLES
int variable=12;
///PROGRAMA
void main (void)
{
set_tris_a(0xFF); //porta como entrada
set_tris_b(0x00); //portb como salida
do{ //Bucle.........
if(PORTA=variable){
PORTB=(0xFF);
}else
{
if(PORTA>variable){
PORTB=(0b01010101);}
else
{PORTB=(0b11110000);}}
}while(true); //......Infinito
}
¿Cual es el error que estoy cometiendo?
De nuevo gracias por vuestra colaboración y por la comprensión a preguntas tan simples.