Pues por ahora tengo esto:
char valor1,valor2,valor3,valor4;
int8 dig1,dig2,dig3,dig4;
int16 duty[4];
#INT_RDA
void serial_isr()
{
valor1=getchar();
dig1=valor1-48;
duty[0]=dig1;
lcd_gotoxy(1,2);
printf(lcd_putc,"%u",dig1);
delay_ms(10);
valor2=getchar();
dig2=valor2-48;
duty[1]=dig2;
lcd_gotoxy(3,2);
printf(lcd_putc,"%u",dig2);
delay_ms(10);
valor3=getchar();
dig3=valor3-48;
duty[2]=dig3;
lcd_gotoxy(5,2);
printf(lcd_putc,"%u",dig3);
delay_ms(10);
valor4=getchar();
dig4=valor4-48;
duty[3]=dig4;
lcd_gotoxy(7,2);
printf(lcd_putc,"%u",dig4);
delay_ms(10);
}
Almaceno cada digito que envio de la PC al pic, numero por numero, lo convierto de string a int y lo almaceno en posiciones sucesivas de un array en este caso duty[4] que es un arreglo tipo entero. Mi problema ahora es jeje como convierto ese array tipo entero en un numero comun jeje como 1024 o 3