diff options
Diffstat (limited to 'include/rtc.h')
-rw-r--r-- | include/rtc.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/rtc.h b/include/rtc.h new file mode 100644 index 000000000..fdc5ad709 --- /dev/null +++ b/include/rtc.h @@ -0,0 +1,48 @@ +#ifndef GUARD_RTC_UTIL_H +#define GUARD_RTC_UTIL_H + +#include "siirtc.h" + +#define RTC_INIT_ERROR 0x0001 +#define RTC_INIT_WARNING 0x0002 + +#define RTC_ERR_12HOUR_CLOCK 0x0010 +#define RTC_ERR_POWER_FAILURE 0x0020 +#define RTC_ERR_INVALID_YEAR 0x0040 +#define RTC_ERR_INVALID_MONTH 0x0080 +#define RTC_ERR_INVALID_DAY 0x0100 +#define RTC_ERR_INVALID_HOUR 0x0200 +#define RTC_ERR_INVALID_MINUTE 0x0400 +#define RTC_ERR_INVALID_SECOND 0x0800 + +#define RTC_ERR_FLAG_MASK 0x0FF0 + +extern struct Time gLocalTime; + +void RtcDisableInterrupts(void); +void RtcRestoreInterrupts(void); +u32 ConvertBcdToBinary(u8 bcd); +bool8 IsLeapYear(u8 year); +u16 ConvertDateToDayCount(u8 year, u8 month, u8 day); +u16 RtcGetDayCount(struct SiiRtcInfo *rtc); +void RtcInit(void); +u16 RtcGetErrorStatus(void); +void RtcGetInfo(struct SiiRtcInfo *rtc); +void RtcGetDateTime(struct SiiRtcInfo *rtc); +void RtcGetStatus(struct SiiRtcInfo *rtc); +void RtcGetRawInfo(struct SiiRtcInfo *rtc); +u16 RtcCheckInfo(struct SiiRtcInfo *rtc); +void RtcReset(void); +void FormatDecimalTime(u8 *dest, s32 hour, s32 minute, s32 second); +void FormatHexTime(u8 *dest, s32 hour, s32 minute, s32 second); +void FormatHexRtcTime(u8 *dest); +void FormatDecimalDate(u8 *dest, s32 year, s32 month, s32 day); +void FormatHexDate(u8 *dest, s32 year, s32 month, s32 day); +void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t); +void RtcCalcLocalTime(void); +void RtcInitLocalTimeOffset(s32 hour, s32 minute); +void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds); +void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2); +u32 RtcGetMinuteCount(void); + +#endif // GUARD_RTC_UTIL_H |