PIC 16F887 receber string pela RS-232 - RESOLVIDO

Seguinte, estou querendo que o pic receba uma string pela 232, uma string que seja enviada por um outro dispositivo e não digitada pelo teclado.
#include <16F887.h>
#fuses HS,PUT,NOBROWNOUT,NOWDT,INTRC_IO,NOMCLR
#use delay(clock=8000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7) // no 16F688 xmit=PIN_C4,rcv=PIN_C5
#use i2c (MASTER,SCL=PIN_C3,SDA=PIN_C4)
#BYTE OSCCON=0X8F
//para receber a string
void get_string(char* s, unsigned int8 max) {
unsigned int8 len;
char c;
len=0;
do {
c=getc();
s[len++]=c;
}
while(kbhit());
s[len]=0;
}
#int_RDA
void recepcao_serial()
{
char string[10];
disable_interrupts(INT_RDA);
get_string;
enable_interrupts(INT_RDA);
}
main ()
{
OSCCON=0B01110100; // oscilador interno com 8MHz
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
while(1)
}
esse é o código simplificado, feito no CCS, o problema é quando simulo ele no proteus, usando um programinha envio uma palavra para a com virtual do proteus, o pic recebe os dois primeiros bytes quando recebe o terceiro dá o erro FIFO's full - OERR set, e do quarto byte em diante DATA discarded.
já tentei o código do TCPIPCHIP timed_getc mas dá o mesmo erro, não sei pra onde correr, ajuda ai meu povo, vlw.
#include <16F887.h>
#fuses HS,PUT,NOBROWNOUT,NOWDT,INTRC_IO,NOMCLR
#use delay(clock=8000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7) // no 16F688 xmit=PIN_C4,rcv=PIN_C5
#use i2c (MASTER,SCL=PIN_C3,SDA=PIN_C4)
#BYTE OSCCON=0X8F
//para receber a string
void get_string(char* s, unsigned int8 max) {
unsigned int8 len;
char c;
len=0;
do {
c=getc();
s[len++]=c;
}
while(kbhit());
s[len]=0;
}
#int_RDA
void recepcao_serial()
{
char string[10];
disable_interrupts(INT_RDA);
get_string;
enable_interrupts(INT_RDA);
}
main ()
{
OSCCON=0B01110100; // oscilador interno com 8MHz
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
while(1)
}
esse é o código simplificado, feito no CCS, o problema é quando simulo ele no proteus, usando um programinha envio uma palavra para a com virtual do proteus, o pic recebe os dois primeiros bytes quando recebe o terceiro dá o erro FIFO's full - OERR set, e do quarto byte em diante DATA discarded.
já tentei o código do TCPIPCHIP timed_getc mas dá o mesmo erro, não sei pra onde correr, ajuda ai meu povo, vlw.