Buenas, decidi obtener los datos por el puerto serie de otra forma puesto que aunque funciona con las interrupciones se pone lento otro proceso paralelo que tengo a la lectura. Lo hize poniendo el siguiente codigo en el programa principal dentro de un while.
while(1)
{
if(PIR1bits.RCIF==1){
for(k=0; k<=1; k++)
{
while(!DataRdyUSART());
Datos[k]=getcUSART();
}
PIR1bits.RCIF=0;
gotoxyXLCD(1,2);
putsXLCD(Datos);
}
.... Contina programa
o lo que es lo mismo
while(1)
{
if(PIR1bits.RCIF==1){
getsUSART(Datos,2);
PIR1bits.RCIF=0;
gotoxyXLCD(1,2);
putsXLCD(Datos);
}
El problema ahora es que cuando intento leer una cadena de 3 o mas datos el programa se queda parado, solo me funciona de la forma que puse anteriormente pero me lee los 2 primeros caracteres de la cadena incluso en el proteus pasa lo mismo, cosa que se me hace raro pues con el metodo de la interrupcion si puedo obtener la cadena completa.
Salu2.