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 + -
显示快捷键?