Bueno, mirando el CCS veo que no es compatible con el C2C. Por cierto CCS es una clase de compilador de "C" igual que los es C2C. Las modificaciones que yo hatia son:
LIST p=12c508A, r=HEX;
#INCLUDE <C:\C2CPP\p12C508A.inc>;
#define __CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC;
typedef int8 boolean; // lo sacamos fuera dl main
#define GP1 output_pin_port_a( 1 ); // Declaramos lo que es GP1 y GP2
#define GP2 output_pin_port_a( 2 );
void main()
{
// Descripcion de variables
boolean GP3;
boolean GP4;
boolean GP5;
while(1) // Ejecutar un bucle que se repite de forma indefinida
{
while (!input_pin_port_a( 0 )){}; // Se cierra en el 2º bucle si A0 = 0 y espera a que valga 1
// Eliminamos una asignación innecesaria de GP0.
GP3= input_pin_port_a( 3 ); // Leemos las variables de entrada que definiran las salidas
GP4= input_pin_port_a( 4 );
GP5= input_pin_port_a( 5 );
if (GP3==0 && GP4==0 && GP5==0) { GP1=0;GP2=0;}
else if (GP3==0 && GP4==0 && GP5==1) { GP1=0;GP2=1;}
else if (GP3==0 && GP4==1 && GP5==0) { GP1=1;GP2=1;}
else if (GP3==0 && GP4==1 && GP5==1) { GP1=0;GP2=1;}
else if (GP3==1 && GP4==0 && GP5==0) { GP1=1;GP2=0;}
else if (GP3==1 && GP4==0 && GP5==1) { GP1=0;GP2=0;}
else if (GP3==1 && GP4==1 && GP5==0) { GP1=1;GP2=0;}
else if (GP3==1 && GP4==1 && GP5==1) { GP1=1;GP2=1;}
endif
}
} // Cerramos en main
Las modificaciones echas son:
1º Declaramos las variables necesarias eliminando GP0 que utilizamos directamente la función de lectura para evitarnos asignaciones innecesarias. No se si GP1 y GP2 estan bien declaradas, por no disponer del manual del C2C.
2º Creamos un bucle infinito que siempre se esta ejecutando con while(1)
3º Creamos un bucle while (!input_pin_port_a( 0 )){}; que lo unico que hace es que si A0 es cero se queda esperando a que sea 1.
4º Leemos las variables de entrada
5º Ponemos las variables de salida.
6º Saltamos según el bucle infinito a 3º.
Basicamente este es el programa. Por desgracia no dispongo del C2C y no puedo compilarlo y simularlo para ver si tiene alguna fallo. Seguro que algo esta mal en la sintaxis pero ya digo que no dispongo del manual ni del compilador.
Pruebalo y nos comentas.
Un saludo.