- *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;
-}
-
-void DS1307_GetTime(uint8_t* const Hour,
- uint8_t* const Minute,
- uint8_t* const Second)
-{
-#if defined(DUMMY_RTC)
- *Hour = 1;
- *Minute = 1;
- *Second = 1;
- return;
-#endif
-
- if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
- {
- TWI_SendByte(DS1307_TIMEREG_START);
-
- TWI_StopTransmission();
- }
-
- DS1307_TimeRegs_t CurrentRTCTime;
-
- if (TWI_StartTransmission(DS1307_ADDRESS_READ, 10))
- {
- TWI_ReceiveByte(&CurrentRTCTime.Byte1.IntVal, false);
- TWI_ReceiveByte(&CurrentRTCTime.Byte2.IntVal, false);
- TWI_ReceiveByte(&CurrentRTCTime.Byte3.IntVal, true);
-
- TWI_StopTransmission();
- }
+ // Convert stored time value into decimal
+ TimeDate->Second = (CurrentRTCTime.Byte1.Fields.TenSec * 10) + CurrentRTCTime.Byte1.Fields.Sec;
+ TimeDate->Minute = (CurrentRTCTime.Byte2.Fields.TenMin * 10) + CurrentRTCTime.Byte2.Fields.Min;
+ TimeDate->Hour = (CurrentRTCTime.Byte3.Fields.TenHour * 10) + CurrentRTCTime.Byte3.Fields.Hour;