Lines Matching refs:datetime

48 static bool RTC_CheckDatetimeFormat(const rtc_datetime_t *datetime);
57 static uint32_t RTC_ConvertDatetimeToSeconds(const rtc_datetime_t *datetime);
65 static void RTC_ConvertSecondsToDatetime(uint32_t seconds, rtc_datetime_t *datetime);
70 static bool RTC_CheckDatetimeFormat(const rtc_datetime_t *datetime) in RTC_CheckDatetimeFormat() argument
72 assert(NULL != datetime); in RTC_CheckDatetimeFormat()
80 …if ((datetime->year < YEAR_RANGE_START) || (datetime->year > YEAR_RANGE_END) || (datetime->month >… in RTC_CheckDatetimeFormat()
81 …(datetime->month < 1U) || (datetime->hour >= 24U) || (datetime->minute >= 60U) || (datetime->secon… in RTC_CheckDatetimeFormat()
88 …if ((((datetime->year & 3U) == 0U) && (datetime->year % 100U != 0U)) || (datetime->year % 400U == … in RTC_CheckDatetimeFormat()
94 if ((datetime->day > daysPerMonth[datetime->month]) || (datetime->day < 1U)) in RTC_CheckDatetimeFormat()
102 static uint32_t RTC_ConvertDatetimeToSeconds(const rtc_datetime_t *datetime) in RTC_ConvertDatetimeToSeconds() argument
104 assert(NULL != datetime); in RTC_ConvertDatetimeToSeconds()
112 seconds = ((uint32_t)datetime->year - 1970U) * DAYS_IN_A_YEAR; in RTC_ConvertDatetimeToSeconds()
114 seconds += (((uint32_t)datetime->year / 4U) - (1970U / 4U)); in RTC_ConvertDatetimeToSeconds()
116 seconds += monthDays[datetime->month]; in RTC_ConvertDatetimeToSeconds()
119 seconds += ((uint32_t)datetime->day - 1U); in RTC_ConvertDatetimeToSeconds()
121 if ((0U == (datetime->year & 3U)) && (datetime->month <= 2U)) in RTC_ConvertDatetimeToSeconds()
126 seconds = (seconds * SECONDS_IN_A_DAY) + ((uint32_t)datetime->hour * SECONDS_IN_A_HOUR) + in RTC_ConvertDatetimeToSeconds()
127 ((uint32_t)datetime->minute * SECONDS_IN_A_MINUTE) + datetime->second; in RTC_ConvertDatetimeToSeconds()
132 static void RTC_ConvertSecondsToDatetime(uint32_t seconds, rtc_datetime_t *datetime) in RTC_ConvertSecondsToDatetime() argument
134 assert(NULL != datetime); in RTC_ConvertSecondsToDatetime()
156 datetime->hour = (uint8_t)(secondsRemaining / SECONDS_IN_A_HOUR); in RTC_ConvertSecondsToDatetime()
158 datetime->minute = (uint8_t)(secondsRemaining / 60U); in RTC_ConvertSecondsToDatetime()
159 datetime->second = (uint8_t)(secondsRemaining % SECONDS_IN_A_MINUTE); in RTC_ConvertSecondsToDatetime()
163 datetime->year = YEAR_RANGE_START; in RTC_ConvertSecondsToDatetime()
168 datetime->year++; in RTC_ConvertSecondsToDatetime()
171 if (0U != (datetime->year & 3U)) in RTC_ConvertSecondsToDatetime()
182 if (0U == (datetime->year & 3U)) in RTC_ConvertSecondsToDatetime()
195 datetime->month = (uint8_t)x; in RTC_ConvertSecondsToDatetime()
204 datetime->day = (uint8_t)days; in RTC_ConvertSecondsToDatetime()
305 status_t RTC_SetDatetime(RTC_Type *base, const rtc_datetime_t *datetime) in RTC_SetDatetime() argument
307 assert(NULL != datetime); in RTC_SetDatetime()
310 if (!(RTC_CheckDatetimeFormat(datetime))) in RTC_SetDatetime()
316 base->TSR = RTC_ConvertDatetimeToSeconds(datetime); in RTC_SetDatetime()
327 void RTC_GetDatetime(RTC_Type *base, rtc_datetime_t *datetime) in RTC_GetDatetime() argument
329 assert(NULL != datetime); in RTC_GetDatetime()
334 RTC_ConvertSecondsToDatetime(seconds, datetime); in RTC_GetDatetime()
386 void RTC_GetAlarm(RTC_Type *base, rtc_datetime_t *datetime) in RTC_GetAlarm() argument
388 assert(NULL != datetime); in RTC_GetAlarm()
395 RTC_ConvertSecondsToDatetime(alarmSeconds, datetime); in RTC_GetAlarm()