Hola a todos, a ver si os ha pasado esto a alguno y se puede solucionar. Os comento estoy haciendo una recepción entre un PIC 18F4520 y el PC a través de RS232, estoy programando con CCS C, todo funciona bien en un tiempo 10seg - 1min recepción y transmisión pero luego la interrupción RDA deja de saltar, sigue enviando datos del PIC -> PC pero al contrario, la interrupción no hace caso de los datos que recibe. Es como si se quedase bloqueado la usar de recepción. Lo tengo simulado en proteus y pasa eso y luego lo pruebo en el micro y sucede lo de la simulación.
Yo no se que le pasa ni como solucionarlo, ya he probado a activar la interrución pero sigue igual.
Un saludo y gracias
Código:
#include <18F4520.h>
#device ADC = 10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=19200, parity=N, xmit=PIN_C6, rcv=PIN_C7)
#int_rda
void rda_isr() {
//Keypress = 0x00;
if(kbhit()){
codigo_buffer[indice_rs232] = getc();
indice_rs232 = indice_rs232 + 1;
if (codigo_buffer[0]=='$' && codigo_buffer[9]=='#'){
//recibe_ref();
//CONCATENAR VALORES RECIBIDOS RS-232 DE int16 = int8+int8
indice_rs232 = 0; // SE UTIIZA PARA LIMPIAR EL BUFFER
duty_PWM1 = make16(codigo_buffer[1], codigo_buffer[2]);
set_pwm1_duty(duty_PWM1); //Actualizo el PWM
}
}
}
}
Yo no se que le pasa ni como solucionarlo, ya he probado a activar la interrución pero sigue igual.
Un saludo y gracias