- if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
- {
- TWI_SendByte(DS1307_DATEREG_START);
-
- TWI_StopTransmission();
- }
-
- DS1307_DateRegs_t CurrentRTCDate;
-
- if (TWI_StartTransmission(DS1307_ADDRESS_READ, 10))
- {
- TWI_ReceiveByte(&CurrentRTCDate.Byte1.IntVal, false);
- TWI_ReceiveByte(&CurrentRTCDate.Byte2.IntVal, false);
- TWI_ReceiveByte(&CurrentRTCDate.Byte3.IntVal, true);
-
- TWI_StopTransmission();
- }
-
- *Day = (CurrentRTCDate.Byte1.Fields.TenDay * 10) + CurrentRTCDate.Byte1.Fields.Day;
- *Month = (CurrentRTCDate.Byte2.Fields.TenMonth * 10) + CurrentRTCDate.Byte2.Fields.Month;
- *Year = (CurrentRTCDate.Byte3.Fields.TenYear * 10) + CurrentRTCDate.Byte3.Fields.Year;