#fuses HS,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT // Los Fuses de siempre
#use delay(clock=4000000) // Oscilador a 4 Mhz
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) // RS232 Estándar
char rcvchar;
// INTERRUPCON /////////////////////////////////////////////////////////////
#int_rda
void serial_isr() // Interrupción recepción serie USART
{
rcvchar=0x00; // Inicializo caracter recibido
if(kbhit()) // Si hay algo pendiente de recibir ...
{
rcvchar=getc(); // lo descargo y ...
printf(rcvchar);
}
}
//////// Programa Principal /////////////////////////////////////////////////////////
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// TODO: USER CODE!!
set_tris_C(0x90);
enable_interrupts(int_rda); // Habilita Interrupción RDA
enable_interrupts(global); // Habilita interrupciones
do
{
// Con esta rutina cada dato que se recibe, lo devuelve (es bastante básico).
// Hay que modificar para hacer lo que se necesite con el dato recibido.
} while (TRUE);
}