Cordial saludo, espero se encuentren bien
Tengo un problema al tratar de realizar el montaje físico de la parte de recepción y envío de datos desde el microcontrolador 16F690 y el pic 16F877A, me encontraba verificando el correcto funcionamiento de la interrupción RDA que tengo entendido se produce cuando el microcontrolador recibe a través del transmisor TX, esto haciendo uso de la función output_toggle(LED), pero noté que el LED no se apagaba y dejaba de escribirse haciendo uso del printf(), pareciendo que el programa queda encerrado en la interrupción RDA pese a continuar enviando datos al PIC, estoy haciendo uso del Pickit2, PIC CCS C, y los microcontroladores mencionados anteriormente. Agradezco cualquier respuesta.
Adjunto el codigo de prueba
#include <probandouartpic16f690.h>
#include <16F690.h>
#device ADC=16
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOPROTECT
#use delay(internal=8MHz)
#use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B5,bits=8,stream=PORT1)
#define LED PIN_C7
#include <stdio.h>
char data;
int1 hay_dato=0;
#INT_RDA
void RDA_isr()
{
output_toggle(LED);
return;
}
void main()
{
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while(TRUE)
{
//! if(hay_dato==1){
//! putc('a');
//! hay_dato=0;
//! }
//!
if(data==1){
for(int i=0;i<2;i++){
putc('A');
}
}
printf("Hola");
delay_ms(1000);
}
}