Saludos a todos!
En primer lugar dar la enhorabuena a toda la comunidad por este sitio. Hace poco que lo conozco y hay muchísima información, gracias =)
Ahora queria explicaros el problemita que tengo. Uso un PIC16F873 conectado a un módulo de RF para comunicar varios dispositios entre ellos. Entre el pic y el módulo RF hay comunicacion RS232. El problema es que al recibir, la interrupcion solo salta una vez. Es decir, el pic recibe una interrupción por el primer mensaje que le llega pero, si no lo reseteo manualmente, no es capaz de volver a entrar en la interrupcion.
¿Puede ser debido a que necesito hacer algun tipo de clear? Las otras interrupciones que uso (INT_TIMER0 y INT_RB) no me dan problemas, y saltan siempre que tienen que saltar. He probado varias cosas: deshabilitar las interrupciones al inicio y habilitarlas al final de la misma interrupcion (aunque eso ya lo hace el compilador), hacer la interrupcion muy corta (en cuanto a codigo)...
Aquí os copio las partes que importan del código a ver si sirve de algo.
#use rs232(baud=19200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
...
#INT_RDA
void interrupcion_recibir(){
if (kbhit()){
gets(in_pconv);
if(in_pconv[0]==pconv[0]){
touch();
}
}
}
...
void main(){
...
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
while(TRUE){}
}
Pues nada, muchas gracias de antemano. Saludos!