mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-08 03:34:24 -05:00
112 lines
3.4 KiB
C
112 lines
3.4 KiB
C
#ifndef NITRO_RTC_API_H_
|
|
#define NITRO_RTC_API_H_
|
|
|
|
typedef enum RTCAlarmChan
|
|
{
|
|
RTC_ALARM_CHAN_1 = 0,
|
|
RTC_ALARM_CHAN_2,
|
|
RTC_ALARM_CHAN_MAX
|
|
}
|
|
RTCAlarmChan;
|
|
|
|
// Alarm status definitions
|
|
typedef enum RTCAlarmStatus
|
|
{
|
|
RTC_ALARM_STATUS_OFF = 0,
|
|
RTC_ALARM_STATUS_ON,
|
|
RTC_ALARM_STATUS_MAX
|
|
}
|
|
RTCAlarmStatus;
|
|
|
|
#define RTC_ALARM_ENABLE_NONE 0x0000
|
|
#define RTC_ALARM_ENABLE_WEEK 0x0001
|
|
#define RTC_ALARM_ENABLE_HOUR 0x0002
|
|
#define RTC_ALARM_ENABLE_MINUTE 0x0004
|
|
#define RTC_ALARM_ENABLE_ALL ( RTC_ALARM_ENABLE_WEEK | RTC_ALARM_ENABLE_HOUR | RTC_ALARM_ENABLE_MINUTE )
|
|
|
|
typedef enum RTCWeek
|
|
{
|
|
RTC_WEEK_SUNDAY = 0,
|
|
RTC_WEEK_MONDAY,
|
|
RTC_WEEK_TUESDAY,
|
|
RTC_WEEK_WEDNESDAY,
|
|
RTC_WEEK_THURSDAY,
|
|
RTC_WEEK_FRIDAY,
|
|
RTC_WEEK_SATURDAY,
|
|
RTC_WEEK_MAX
|
|
}
|
|
RTCWeek;
|
|
|
|
typedef struct RTCDate
|
|
{
|
|
u32 year;
|
|
u32 month;
|
|
u32 day;
|
|
RTCWeek week;
|
|
}
|
|
RTCDate;
|
|
|
|
typedef struct RTCTime
|
|
{
|
|
u32 hour;
|
|
u32 minute;
|
|
u32 second;
|
|
}
|
|
RTCTime;
|
|
|
|
typedef struct RTCAlarmParam
|
|
{
|
|
RTCWeek week; // Day of the week
|
|
u32 hour; // Hour ( 0 ~ 23 )
|
|
u32 minute; // Minute ( 0 ~ 59 )
|
|
u32 enable; // Alarm enable flag ( RTC_ALARM_ENABLE_* )
|
|
|
|
}
|
|
RTCAlarmParam;
|
|
|
|
typedef enum RTCResult
|
|
{
|
|
RTC_RESULT_SUCCESS = 0,
|
|
RTC_RESULT_BUSY,
|
|
RTC_RESULT_ILLEGAL_PARAMETER,
|
|
RTC_RESULT_SEND_ERROR,
|
|
RTC_RESULT_INVALID_COMMAND,
|
|
RTC_RESULT_ILLEGAL_STATUS,
|
|
RTC_RESULT_FATAL_ERROR,
|
|
RTC_RESULT_MAX
|
|
}
|
|
RTCResult;
|
|
|
|
typedef void (*RTCCallback) (RTCResult result, void *arg);
|
|
typedef void (*RTCInterrupt) (void);
|
|
|
|
void RTC_Init(void);
|
|
RTCResult RTC_GetDate(RTCDate *date);
|
|
RTCResult RTC_GetTime(RTCTime *time);
|
|
RTCResult RTC_GetDateTime(RTCDate *date, RTCTime *time);
|
|
RTCResult RTC_SetDate(const RTCDate *date);
|
|
RTCResult RTC_SetTime(const RTCTime *time);
|
|
RTCResult RTC_SetDateTime(const RTCDate *date, const RTCTime *time);
|
|
RTCResult RTC_GetAlarmStatus(RTCAlarmChan chan, RTCAlarmStatus *status);
|
|
RTCResult RTC_GetAlarmParam(RTCAlarmChan chan, RTCAlarmParam *param);
|
|
RTCResult RTC_SetAlarmStatus(RTCAlarmChan chan, const RTCAlarmStatus *status);
|
|
RTCResult RTC_SetAlarmParam(RTCAlarmChan chan, const RTCAlarmParam *param);
|
|
RTCResult RTC_GetDateAsync(RTCDate *date, RTCCallback callback, void *arg);
|
|
RTCResult RTC_GetTimeAsync(RTCTime *time, RTCCallback callback, void *arg);
|
|
RTCResult RTC_GetDateTimeAsync(RTCDate *date, RTCTime *time, RTCCallback callback, void *arg);
|
|
RTCResult RTC_SetDateAsync(const RTCDate *date, RTCCallback callback, void *arg);
|
|
RTCResult RTC_SetTimeAsync(const RTCTime *time, RTCCallback callback, void *arg);
|
|
RTCResult RTC_SetDateTimeAsync(const RTCDate *date, const RTCTime *time, RTCCallback callback,
|
|
void *arg);
|
|
RTCResult RTC_GetAlarmStatusAsync(RTCAlarmChan chan, RTCAlarmStatus *status, RTCCallback callback,
|
|
void *arg);
|
|
RTCResult RTC_GetAlarmParamAsync(RTCAlarmChan chan, RTCAlarmParam *param, RTCCallback callback,
|
|
void *arg);
|
|
void RTC_SetAlarmInterrupt(RTCInterrupt interrupt);
|
|
RTCResult RTC_SetAlarmStatusAsync(RTCAlarmChan chan, const RTCAlarmStatus *status,
|
|
RTCCallback callback, void *arg);
|
|
RTCResult RTC_SetAlarmParamAsync(RTCAlarmChan chan, const RTCAlarmParam *param,
|
|
RTCCallback callback, void *arg);
|
|
|
|
#endif //NITRO_RTC_API_H_
|