Paso a comentarles lo que estuve haciendo..
La idea en este caso es escribir el valor en un registro y luego leer dicho valor..
Como verán en la imagen adjunta, el primer bit indica si voy a escribir o si voy a leer.
y a continuación leo o escribo.
Mi problema es que no estoy leyendo nada..
Agradecería si alguien pudiera darme una mano ya que seguramente es una pavada
y no me estoy dando cuenta.
El código que pongo a continuación es bastante simple, le envío al registro de lectura/escritura
el valor de count y luego intento leerlo. Una vez leído lo imprimo en el lcd.
El problema es que no estoy leyendo nada.. Ya que si leyera algo, debería mostrar el mismo
valor ambas lineas en el lcd.
Saludos y gracias por su ayuda
------------------------------------------------------------------------------------------------------
void main()
{
lcd_init();
delay_ms(100);
lcd_putc('\f');
int test, cont=0;
set_tris_c(16); // Configuración del puerto C para trabajar el spi
setup_spi(spi_master | spi_l_to_h | spi_clk_div_16);
do
{
cont++;
spi_write(0x9D); // 1001 1101 Escribo a la direccion 1D (El primer 1 indica que se va a escribir)
delay_us(10);
spi_write(cont);
delay_us(20);
spi_write(0x1D); // 0001 1101 Escribo a la direccion 1D (El primer 0 indica que se va a leer)
delay_us(10);
test = spi_read(); // Leo el valor del registro
lcd_gotoxy(1,1);
printf(lcd_putc, "Contador: %d", cont); // Imprimo el valor de count
lcd_gotoxy(1,3);
printf(lcd_putc, "Test contador: %d", test); // Imprimo el valor del registro
delay_ms(500); // Espero 500 ms para poder visualizar
lcd_putc('\f'); // Limpio la pantalla
}
while(true);
}