Hola chicos! Espero que puedan ayudarme con esto! Estoy usando la versión de CCS 4.109 y trato de implementar una comunicación a través de SPI (Software) entre 2 PIC 16f628. Estoy utilizando PROTEUS para simular el circuito, y el maestro funciona bien, envía el dato correctamente que lee del puerto_b, pero la data que llega al esclavo no es la correcta... No sé q estaré haciendo mal, o si es un bug del compilador como tal. Muchas gracias por su aporte! Saludos... Aquí los códigos:
PIC ESCLAVO:
#include<16F628A.H>
#fuses INTRC_IO,NOWDT,NOPROTECT,NOLVP
#byte puerto_a=5
#byte puerto_b=6
#use delay(clock=4000000)
#use spi(SLAVE,CLK=PIN_A0,DO=PIN_A2,DI=PIN_A1,ENABLE=PIN_A3,MODE=1,BITS=8)
byte dato_rx;
void main()
{
for(;;){
dato_rx=spi_xfer(0);
puerto_b=dato_rx;
delay_ms(1);
}
}
PIC MAESTRO:
#include<16F628.H>
#fuses INTRC_IO,NOWDT,NOPROTECT,NOLVP
#byte puerto_a=5
#byte puerto_b=6
#use delay(clock=4000000)
#use spi(CLK=PIN_A0,DO=PIN_A1,DI=PIN_A2,ENABLE=PIN_A3,MODE=1,BITS=8)
byte dato_tx;
void main()
{
for(;;){
dato_tx=puerto_b;
spi_xfer(dato_tx);
delay_ms(1);
}
}