Estou com um pequeno problema ... não consigo fazer a interrupção RDA funcionar. Fiz um pequeno circuito só para ver se conseguia atender a esta interrupção, mas até agora nada.
O código em C é seguinte:
cpp code
#fuses HS,NOWDT,NOPROTECT
#include <16f628A.H>
#include <string.h>
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)
#int_rda
trata(void)
{
output_low(pin_b0);
}
void main()
{
enable_interrupts(int_rda);
printf("Isso funciona\n\r");
output_high(pin_b0);
while(True)
{
output_high(pin_b5);
delay_ms(500);
output_low(pin_b5);
delay_ms(500);
}
}
Deveria Funcionar assim:
Ligo o circuito e ele manda pela serial a frase "Isso Funciona"
Depois ele liga um LED que está conectado no pino B0.
Depois ele entra em loop acendendo e apagando um outro LED conectado no pino B5.
Até ai tudo bem.
Só que quando chegar quarquer coisa pela serial ele deveria apagar o led do pino B0 (pelo tratamento da interrupção RDA).
Essa útima parte não funciona ... já pude comprovar que ele consegue receber dados pela serial nas não atende o tratamento da interrupção.
Por favor me ajudem ...