📄 triton_rtc.h
字号:
-----------------------------------------------------------*/
#define RTC_SETTESTMODE MSI2C_MasterPollingSendAbb(Abb_RTC_CTRL_REG, ( RTC_CTRL_REG_RD | RTC_TEST_MODE ))
/*----------------------------------------------------------
RTC_ENABLEITALARM : Enable the IT_ALARM
-----------------------------------------------------------*/
#define RTC_ENABLEITALARM MSI2C_MasterPollingSendAbb(Abb_RTC_INTERRUPTS_REG, ( RTC_INTERRUPTS_REG_RD | RTC_IT_ALARM ))
/*----------------------------------------------------------
RTC_DISABLEITALARM : Disable the IT_ALARM
-----------------------------------------------------------*/
#define RTC_DISABLEITALARM MSI2C_MasterPollingSendAbb(Abb_RTC_INTERRUPTS_REG, ( RTC_INTERRUPTS_REG_RD & ~RTC_IT_ALARM ))
/*----------------------------------------------------------
RTC_TEST_BUSY : Return the RTC state busy signal
-----------------------------------------------------------*/
#define RTC_TEST_BUSY ( RTC_STATUS_REG_RD & RTC_BUSY )
/*----------------------------------------------------------
RTC_ENABLEITTIMER : Enable the IT_TIMER
-----------------------------------------------------------*/
#define RTC_ENABLEITTIMER MSI2C_MasterPollingSendAbb(Abb_RTC_INTERRUPTS_REG, ( RTC_INTERRUPTS_REG_RD | RTC_IT_TIMER ))
/*----------------------------------------------------------
RTC_DISABLEITTIMER : Disable the IT_TIMER
-----------------------------------------------------------*/
#define RTC_DISABLEITTIMER MSI2C_MasterPollingSendAbb(Abb_RTC_INTERRUPTS_REG, ( RTC_INTERRUPTS_REG_RD & ~RTC_IT_TIMER ))
/*----------------------------------------------------------
RTC_SETEVENTTIMER : Set the event for the IT_TIMER
-----------------------------------------------------------*/
#define RTC_SETEVENTTIMER(x) MSI2C_MasterPollingSendAbb(Abb_RTC_INTERRUPTS_REG, ( (RTC_INTERRUPTS_REG_RD & 0xfffc) | (x) ))
/*----------------------------------------------------------
RTC_GETEVENTTIMER : Get the event status for the IT_TIMER
-----------------------------------------------------------*/
#define RTC_GETEVENTTIMER ( RTC_STATUS_REG_RD & 0x3c)
/* ============================================================================
* GLOBAL TYPES DEFINITIONS
* =============================================================================
*/
typedef enum
{
ERR_RTC_SEC = 10,
ERR_RTC_MIN = 11,
ERR_RTC_HRS = 12,
ERR_RTC_DAY = 13,
ERR_RTC_MON = 14,
ERR_RTC_YEAR = 15,
ERR_RTC_WDAY = 16,
ERR_RTC_ALARM_SEC = 17,
ERR_RTC_ALARM_MIN = 18,
ERR_RTC_ALARM_HRS = 19,
ERR_RTC_ALARM_DAY = 20,
ERR_RTC_ALARM_MON = 21,
ERR_RTC_ALARM_YEAR = 22,
ERR_RTC_CTRL_REG = 23,
ERR_RTC_INTERRUPTS_REG = 24,
ERR_RTC_STATUS_REG = 25,
ERR_RTC_COMP_MSB_REG = 26,
ERR_RTC_COMP_LSB_REG = 27,
ERR_RTC_RES_PROG_REG = 28,
ERR_RTC_POWER_ON_RESET_REG = 29
} RTC_Error_t;
/* ============================================================================
* FUNCTIONS PROTOTYPES
* =============================================================================
*/
//----------------------------------------------------
// NAME : RTC_Busy_Falling_Edge
// DESCRIPTION: Detect a busy falling edge
// RETURN VALUE : none
// PARAMETERS : none
// LIMITATIONS :
//----------------------------------------------------
void RTC_Busy_Falling_Edge(void);
/*
Waiting routine : ~2400 clk unit
*/
void RTC_Wait_unit_clk(void);
UWORD8 RTC_conv_bin(const UWORD8 value);
UWORD8 RTC_conv_bcd(const UWORD8 value);
int RTC_Busy(void);
void RTC_Init_Sec(const UWORD8 value);
void RTC_Init_Min(const UWORD8 value);
void RTC_Init_Hrs(const UWORD8 value, const char mode12, const char pm);
void RTC_Init_Day(const UWORD8 value);
void RTC_Init_Mon(const UWORD8 value);
void RTC_Init_Year(const UWORD8 value);
void RTC_Init_Week(const UWORD8 value);
void RTC_Init_Time(const UWORD8 sec, const UWORD8 min, const UWORD8 hrs,
const char mode12, const char pm );
void RTC_Init_Ddate(UWORD8 day, UWORD8 month, UWORD8 year, UWORD8 week );
void RTC_Init_Date(struct rtc_tm *const rtctime );
UWORD8 RTC_GetSec(void);
UWORD8 RTC_GetMin(void);
UWORD8 RTC_GetHrs(void);
UWORD8 RTC_GetMode(void);
UWORD8 RTC_GetDay(void);
UWORD8 RTC_GetMon(void);
UWORD8 RTC_GetYear(void);
UWORD8 RTC_GetWeek(void);
void RTC_GetDate(struct rtc_tm *rtctime );
void RTC_GetAlarm(struct rtc_tm *rtctime );
int RTC_num_days(struct rtc_tm *time);
unsigned int RTC_num_sec(struct rtc_tm *time);
void RTC_SetAlarm(struct rtc_tm *rtctime );
void RTC_SetMode12_24(const UWORD8 mode);
UWORD8 RTC_GetPMnAM(void);
UWORD8 RTC_GetMode12_24(void);
UWORD8 RTC_GetStatus (void);
void RTC_Rounding_30s(void);
void RTC_Wait_unit_clk (void);
//-----------------------------------------------------------------------------
// NAME : RTC_TestRegisters
// DESCRIPTION : Reset RTC module & test if all register have default value.
// RETURN VALUE : Return the result of the test OK or BAD
// PARAMETERS : none
// LIMITATIONS : Update 18 results
//-----------------------------------------------------------------------------
UWORD16 RTC_TestRegisters(void);
void RTC_SECONDS_REG_WR(const UWORD8 value);
void RTC_MINUTES_REG_WR(const UWORD8 value);
void RTC_HOURS_REG_WR(const UWORD8 value);
void RTC_DAYS_REG_WR(const UWORD8 value);
void RTC_MONTHS_REG_WR(const UWORD8 value);
void RTC_YEARS_REG_WR(const UWORD8 value);
void RTC_WEEK_REG_WR(const UWORD8 value);
void RTC_ALARM_SECONDS_REG_WR(const UWORD8 value);
void RTC_ALARM_MINUTES_REG_WR(const UWORD8 value);
void RTC_ALARM_HOURS_REG_WR(const UWORD8 value);
void RTC_ALARM_DAYS_REG_WR(const UWORD8 value);
void RTC_ALARM_MONTHS_REG_WR(const UWORD8 value);
void RTC_ALARM_YEARS_REG_WR(const UWORD8 value);
void RTC_CTRL_REG_WR(const UWORD8 value);
void RTC_STATUS_REG_WR(const UWORD8 value);
void RTC_INTERRUPTS_REG_WR(const UWORD8 value);
void RTC_COMP_LSB_REG_WR(const UWORD8 value);
void RTC_COMP_MSB_REG_WR(const UWORD8 value);
void RTC_RES_PROG_REG_WR(const UWORD8 value);
void RTC_POWER_ON_RESET_REG_WR(const UWORD8 value);
#endif /* __LIB_NAME_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -