hal_rtc.c
来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C语言 代码 · 共 66 行
C
66 行
//-----------------------------------------------------------------------------
// HAL_RTC
//-----------------------------------------------------------------------------
#include "hal_rtc.h"
t_rtc_date rtc_date;
t_rtc_time rtc_time;
//-----------------------------------------------------------------------------
void RTC_Init (void)
{
RTC->CONTROL = 0x00;
}
//-----------------------------------------------------------------------------
t_rtc_time RTC_Read_Time (void)
{
t_rtc_time rtc_time;
rtc_time.reg.TIME = RTC->TIME;
return (rtc_time);
}
//-----------------------------------------------------------------------------
void RTC_Set_Time (t_rtc_time rtc_time)
{
RTC->TIME = rtc_time.reg.TIME;
}
//-----------------------------------------------------------------------------
t_rtc_date RTC_Read_Date (void)
{
t_rtc_date rtc_date;
rtc_date.reg.DATE = RTC->DATE;
return (rtc_date);
}
//-----------------------------------------------------------------------------
void RTC_Set_Date (t_rtc_date rtc_date)
{
RTC->DATE = rtc_date.reg.DATE;
}
//-----------------------------------------------------------------------------
void RTC_Set_Alarm (t_rtc_time rtc_time, t_rtc_date rtc_date, u32 flags)
{
RTC->ALARM_TIME = rtc_time.reg.TIME;
RTC->ALARM_DATE = rtc_date.reg.DATE;
if (flags & RTC_ALARM_IE)
RTC->STATUS |= RTC_ALARM_INT_FLAG; //clear flag by writing 1
RTC->CONTROL = flags;
}
//-----------------------------------------------------------------------------
u8 RTC_Check_Alarm (void)
{
if (RTC->STATUS & RTC_ALARM_INT_FLAG)
{
RTC->STATUS |= RTC_ALARM_INT_FLAG; //clear flag by writing 1
return (1);
} else
return (0);
}
//-----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?