mcu_ab568x/userboot240328/app/platform/bsp/bsp_rtc.c
2025-05-30 18:03:10 +08:00

38 lines
959 B
C

#include "include.h"
void rtc_clock_init(void)
{
tm_t tm;
tm.year = 2023;
tm.mon = 8;
tm.day = 18;
tm.hour = 10;
tm.min = 8;
tm.sec = 36;
//tm.weekday = get_weekday(tm.year, tm.mon, tm.day);
RTCCNT = tm_to_time(tm);
}
//多少秒后闹钟响
AT(.text.rtc)
void rtc_set_alarm_relative_time(u32 nsec)
{
tm_t rtc_tm;
rtc_tm = time_to_tm(RTCCNT); //更新时间结构体
RTCALM = tm_to_time(rtc_tm) + nsec; //设置闹钟相对于当前时间n秒后
}
//设置多少秒后闹钟唤醒
AT(.text.rtc)
void rtc_set_alarm_wakeup(u32 nsec)
{
uint rtccon3 = RTCCON3;
RTCCPND = BIT(17); //clear RTC alarm pending
RTCCON9 = BIT(0); //clear alarm pending
rtc_set_alarm_relative_time(nsec);
rtccon3 |= BIT(8); //RTC alarm wakeup enable
RTCCON3 = rtccon3;
}