Gracias Suky por la pista, implemente algo parecdido a lo que me mostras pero aun asi se traban los numeros al llegar a destino, algo estoy haciendo mal pero no se que sera, seguire probando.
Creo o mas bien no se si la variable que va recibiendo los datos puede ser char, aunque en realidad lo que se transmiten son caracteres...asi que no se.
De todas formas aca esta lo que no funciona.
Saludos.
////////////////////////////////////////////TX///////////////////////////////////
#include <16f876A.h>
#device ADC=8
#FUSES NOWDT, XT, NOPUT, NOLVP
#use delay (clock=4000000)
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7)//, bits=8, parity=N)
void main(){
int ejex,ejey;
long eje_xy;
setup_adc_ports(AN0_AN1_AN3);
setup_adc(ADC_CLOCK_INTERNAL); // Trabajo con reloj interno
while(true){
set_adc_channel(0); //Selecciono canal 0 de ADC
delay_us(30);
ejex=read_adc(); //Leo el ADC0 y ejey toma su valor
delay_us(50);
set_adc_channel(1); //Selecciono canal 1 de ADC
delay_us(30);
ejey=read_adc(); //Leo el ADC1 y ejex toma su valor
ejex=make8(eje_xy,0);
ejey=make8(eje_xy,1);
printf("%lu\n",eje_xy);
delay_ms(300);
/////////////////////////////////////////RX////////////////////////////////////////
void main(){
lcd_init();
int ejex,ejey;
char rec[3],k;
k=0;
while (TRUE) {
if (kbhit()) {
rec[k]=getc();
if(rec[k]=='\n'){
rec[k]=0;
}
else {
if(k==0) ejex=rec[k];
if(k==1) ejey=rec[k];
k++;
}
printf(lcd_putc,"\fAn = %U" ,ejex);
printf(lcd_putc,"\nAn = %U" ,ejey);