Con lo que ha sugerido Manolo ya se consigue que entre en la interrupción,aunque parece que interfiere con el usb y la enumeración falla.
Maunix,he comprobado esos bits y no parece que ninguno se active.
He suprimido todo lo relacionado al usb y esto sigue haciendo cosas que no me explico.
¿os podeis creer que así el led se enciende...
int8 dato;
boolean usart = FALSE;
#INT_RDA
void serial_isr()
{
output_high(PIN_B5);
usart = true;
if(kbhit())
{
dato = getc();
}
}
void main(void)
{
set_tris_c(0x80);
output_low(PIN_B5);
enable_interrupts(INT_RDA);
SPEN=1; // USART activada
CREN=1; // Recepción activada
enable_interrupts(GLOBAL);
while(TRUE)
{
if(usart == true)
{
//output_high(PIN_B5);
}
}
}
...y asi no?
int8 dato;
boolean usart = FALSE;
#INT_RDA
void serial_isr()
{
//output_high(PIN_B5);
usart = true;
if(kbhit())
{
dato = getc();
}
}
void main(void)
{
set_tris_c(0x80);
output_low(PIN_B5);
enable_interrupts(INT_RDA);
SPEN=1; // USART activada
CREN=1; // Recepción activada
enable_interrupts(GLOBAL);
while(TRUE)
{
if(usart == true)
{
output_high(PIN_B5);
}
}
}