Hola. Estoy intentando hacer un ejemplo basico con el 18F452 pero cuando activo interrupciones de la UART parece que el PIC se bloquea o algo asi.. Las simulaciones con proteus OK. Si comento la linea de enable_interrupts(INT_RDA) todo funciona Ok y la interrupcion externa funciona bien
#include <18f452.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay (clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8, ERRORS)
#use standard_io(A)
#use standard_io(C)
char dato[25];
#int_EXT1
void EXT1_isr(void){
output_high(PIN_A0); // enciende el LED en el PIN A0
delay_ms( 200 ); // demora de 1 segundo
output_low(PIN_A0); // apaga el LED
}
#int_RDA
void RDA_isr(void){
disable_interrupts(INT_RDA);
output_high(PIN_A0); // enciende el LED en el PIN A0
delay_ms( 200 ); // demora de 1 segundo
output_low(PIN_A0); // apaga el LED
gets(dato);
enable_interrupts(INT_RDA);
}
void main()
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT1);
enable_interrupts(INT_RDA);
printf("HOLA");
output_low(PIN_A0);
while(TRUE)
{
}
}
Si alguien me puede orientar se lo agradeceria....