Bueno estoy intentando comunicar dos pic asta ahora lo he medio conseguido pero uno de mis problemas biene cuando envio un cadena y el primer caracter no aparece por ejemplo si mando"prueba para pic" en el lcd del otro pic me aparece "||rueba para pic" la pe si intercambia por ese simbolo. si os puede ayudar parte de mi codigo es este.Por ultimo cuando pongo por ejemplo WriteUsart(0x10) ponga el numero que ponga no se manda nada mirando en el osciloscopio me di cuenta que poniendo el numero que ponga la secuencia de los dos pulsos es la misma, en cambio con las cadenas van bien.
gracias por adelantado haber si me podriais ayudar con las dos dudas
TX
TRISA = 0X00;
TRISB = 0XF0;
TRISC = 0X80;
PORTA = 0X00;
PORTB = 0X00;
PORTC = 0X00;
// configuramos el EUSART para 9.6K baudios
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
25);
//esperar a que el buffer de transmisión
//este vacio o disponible
while(BusyUSART());
//envia caracter
putsUSART(mensaje);
Delay1KTCYx(250);
Delay1KTCYx(250);
Delay1KTCYx(250);
Delay1KTCYx(250);
RX
TRISA = 0X00;
TRISB = 0X00;
TRISC = 0X80;
TRISD=0x00;
PORTA = 0X00;
PORTB = 0X00;
PORTC = 0X00;
// configuramos el LCD
Inicializa_LCD();
Comando_LCD(CURSOR_OFF & BLINK_OFF);
Datos_LCD("tx=");
Comando_LCD(0XC0);//posicion en el LCD
Datos_LCD("rx=");
// configuramos el EUSART para 9.6K baudios
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
25);
//esperar a que el buffer de transmisión
do{ //este vacio o disponible
while(BusyUSART());
//esperamos caracter del virtual terminal
while(!DataRdyUSART());
getsUSART(recepcion_eco2,13);
Comando_LCD(0XC3);
for(i=0;i<=12;i++)
{
Dato_LCD(recepcion_eco2);
}
}
while(1);
}