Lines Matching refs:datetime

43 static bool RTC_CheckDatetimeFormat(const rtc_datetime_t *datetime);
52 static uint32_t RTC_ConvertDatetimeToSeconds(const rtc_datetime_t *datetime);
60 static void RTC_ConvertSecondsToDatetime(uint32_t seconds, rtc_datetime_t *datetime);
65 static bool RTC_CheckDatetimeFormat(const rtc_datetime_t *datetime) in RTC_CheckDatetimeFormat() argument
67 assert(datetime); in RTC_CheckDatetimeFormat()
75 …if ((datetime->year < YEAR_RANGE_START) || (datetime->year > YEAR_RANGE_END) || (datetime->month >… in RTC_CheckDatetimeFormat()
76 …(datetime->month < 1U) || (datetime->hour >= 24U) || (datetime->minute >= 60U) || (datetime->secon… in RTC_CheckDatetimeFormat()
83 …if ((((datetime->year & 3U) == 0U) && (datetime->year % 100U != 0U)) || (datetime->year % 400U == … in RTC_CheckDatetimeFormat()
89 if ((datetime->day > daysPerMonth[datetime->month]) || (datetime->day < 1U)) in RTC_CheckDatetimeFormat()
97 static uint32_t RTC_ConvertDatetimeToSeconds(const rtc_datetime_t *datetime) in RTC_ConvertDatetimeToSeconds() argument
99 assert(datetime); in RTC_ConvertDatetimeToSeconds()
107 seconds = ((uint32_t)datetime->year - 1970U) * DAYS_IN_A_YEAR; in RTC_ConvertDatetimeToSeconds()
109 seconds += (((uint32_t)datetime->year / 4U) - (1970U / 4U)); in RTC_ConvertDatetimeToSeconds()
111 seconds += monthDays[datetime->month]; in RTC_ConvertDatetimeToSeconds()
114 seconds += ((uint32_t)datetime->day - 1U); in RTC_ConvertDatetimeToSeconds()
116 if (((datetime->year & 3U) == 0x00U) && (datetime->month <= 2U)) in RTC_ConvertDatetimeToSeconds()
121 seconds = (seconds * SECONDS_IN_A_DAY) + (datetime->hour * SECONDS_IN_A_HOUR) + in RTC_ConvertDatetimeToSeconds()
122 (datetime->minute * SECONDS_IN_A_MINUTE) + datetime->second; in RTC_ConvertDatetimeToSeconds()
127 static void RTC_ConvertSecondsToDatetime(uint32_t seconds, rtc_datetime_t *datetime) in RTC_ConvertSecondsToDatetime() argument
129 assert(datetime); in RTC_ConvertSecondsToDatetime()
152 datetime->hour = (uint8_t)(secondsRemaining / SECONDS_IN_A_HOUR); in RTC_ConvertSecondsToDatetime()
154 datetime->minute = (uint8_t)(secondsRemaining / 60U); in RTC_ConvertSecondsToDatetime()
155 datetime->second = (uint8_t)(secondsRemaining % SECONDS_IN_A_MINUTE); in RTC_ConvertSecondsToDatetime()
159 datetime->year = YEAR_RANGE_START; in RTC_ConvertSecondsToDatetime()
164 datetime->year++; in RTC_ConvertSecondsToDatetime()
167 if ((datetime->year & 3U) != 0x00U) in RTC_ConvertSecondsToDatetime()
178 if ((datetime->year & 3U) == 0x00U) in RTC_ConvertSecondsToDatetime()
187 datetime->month = i; in RTC_ConvertSecondsToDatetime()
196 datetime->day = (uint8_t)days; in RTC_ConvertSecondsToDatetime()
340 status_t RTC_SetDatetime(rtc_datetime_t *datetime) in RTC_SetDatetime() argument
342 assert(datetime != NULL); in RTC_SetDatetime()
347 if (!(RTC_CheckDatetimeFormat(datetime))) in RTC_SetDatetime()
354 s_CurrentTimeSeconds = RTC_ConvertDatetimeToSeconds(datetime); in RTC_SetDatetime()
365 void RTC_GetDatetime(rtc_datetime_t *datetime) in RTC_GetDatetime() argument
367 assert(datetime); in RTC_GetDatetime()
370 RTC_ConvertSecondsToDatetime(s_CurrentTimeSeconds, datetime); in RTC_GetDatetime()
390 void RTC_GetAlarm(rtc_datetime_t *datetime) in RTC_GetAlarm() argument
392 assert(datetime); in RTC_GetAlarm()
395 RTC_ConvertSecondsToDatetime(s_AlarmTimeSeconds, datetime); in RTC_GetAlarm()