Problema con RTC

buenas, me encuentro montando un cuircuito que incluye un RTC DS1307 y un PIC via I2c

he conseguido hacer que funcione pero no se por la primera vez que leo el rtc lee ok, la siguiente no, la otra si etc... lo he solucionado leyendo siempre dos veces el rtc... pero no me parece buena solución, no se si es problema de la simulación o del circuito o del código a ver si alguien me puede ayudar

gracias!

mi rutina de lectura del i2c es

Código:
int RTCR(int adress)
{
int data;

i2c_start();      // Condición de inicio en el bus I2C
i2c_write(0b11010000);   //modo escritura
i2c_write(adress);           // direccion inicio lectura 
//i2c_stop();         // Condición de stop

i2c_start();      // Condición de inicio en el bus I2C
i2c_write(0b11010001);   //modo lectura
data = i2c_read ();
i2c_stop();         // Condición de stop

//leer un byte de sobra... no se por que!!!!!!!!!!!!!!!
i2c_start();      
i2c_write(0b11010001);  
i2c_read ();
i2c_stop();         

return(data);
}
 

Adjuntos

  • subir.JPG
    subir.JPG
    48.5 KB · Visitas: 6
Última edición por un moderador:
Atrás
Arriba