TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: smrz en 11 de Enero de 2013, 12:47:40
-
Buenas,
Estaba mirando la librería del DS1307 y a la hora de grabar un nuevo dato, hace:
sec &= 0x7F;
hr &= 0x3F;
Imagino que una de las funciones será poner a 1 el bit más alto en la hora para que tenga formato 24h, pero... ¿con estas líneas también se logra que la cuenta al llegar a 23:59:59 pase a 00:00:00?
void ds1307_set_date_time(BYTE day, BYTE mth, BYTE year, BYTE dow, BYTE hr, BYTE min, BYTE sec)
{
sec &= 0x7F;
hr &= 0x3F;
i2c_start();
i2c_write(0xD0); // I2C write address
i2c_write(0x00); // Start at REG 0 - Seconds
i2c_write(bin2bcd(sec)); // REG 0
i2c_write(bin2bcd(min)); // REG 1
i2c_write(bin2bcd(hr)); // REG 2
i2c_write(bin2bcd(dow)); // REG 3
i2c_write(bin2bcd(day)); // REG 4
i2c_write(bin2bcd(mth)); // REG 5
i2c_write(bin2bcd(year)); // REG 6
i2c_write(0x80); // REG 7 - Disable squarewave output pin
i2c_stop();
}
Saludos!!