buenas, escribo para ver si alguien de por aqui ya ha establecido una comunicacion SPI entre dos micros con exito o si alguien me pued echar una mano, he logrado establecer la comunicacion facilmente pero de la forma Maestro(Envia) - Esclavo(Recibe) enviando cadenas desde el maestro y recibiendolas en el esclavo y trabaja al 100%, sin embargo al enviar los datos desde el esclavo si es una cadena no la envia bien por ejemplo HOLA queda HHLLAA caso contrario a si es un solo byte por lo que creo que es un problema de sincronizacion, aqui el codigo de C18:
MAESTRO
unsigned char cadena[4];
/******DECLARACION PUERTO SLAVE SELECT*********/
#define SS PORTBbits.RB7 // Chip select
void main(void){
ADCON1 = 0x07;
TRISBbits.TRISB7 = 0;
TRISCbits.TRISC6 = 0;
OpenSPI( SPI_FOSC_64,
MODE_01,
SMPEND);
while(1){
SS=0;
getsSPI(cadena,4);
SS=1;
}
}
ESCLAVO
char cadena[4]="HOLA";
void main(void){
ADCON1 = 0x07;
TRISAbits.TRISA5 = 1;
OpenSPI( SLV_SSON,
MODE_01,
SMPEND);
while(1)
{
putsSPI(cadena);
}
}