/* ===================================================================*/ void RTC1_GetTime(LDD_TDeviceData *DeviceDataPtr, LDD_RTC_TTime *TimePtr) { uint32_t x; uint32_t Seconds, Days; (void)DeviceDataPtr; /* Parameter is not used, suppress unused argument warning */ Seconds = RTC_PDD_ReadTimeSecondsReg(RTC_BASE_PTR); /* Seconds since 2000-01-01 */ Seconds--; Days = Seconds / 86400U; /* Days */ Seconds = Seconds % 86400U; /* Seconds left */ TimePtr->Hour = Seconds / 3600U; /* Hours */ Seconds = Seconds % 3600u; /* Seconds left */ TimePtr->Minute = Seconds / 60U; /* Minutes */ TimePtr->Second = Seconds % 60U; /* Seconds */ TimePtr->DayOfWeek = (Days + 6U) % 7U; /* Day of week */ TimePtr->Year = (4U * (Days / ((4U * 365U) + 1U))) + 2000U; /* Year */ Days = Days % ((4U * 365U) + 1U); if (Days == ((0U * 365U) + 59U)) { /* 59 */ TimePtr->Day = 29U; TimePtr->Month = 2U; return; } else if (Days > ((0U * 365U) + 59U)) { Days--; } else { } x = Days / 365U; TimePtr->Year += x; Days -= x * 365U; for (x=1U; x <= 12U; x++) { if (Days < ULY[x]) { TimePtr->Month = x; break; } else { Days -= ULY[x]; } } TimePtr->Day = Days + 1U; }
uint32 readRTC() { return RTC_PDD_ReadTimeSecondsReg(RTC_BASE_PTR); }