杰理AC692X系列—RTC笔记(11)
PS:关于rtc不跑的问题整理
1.如果 LOWPOWER_OSC_TYPE 选择用 BT_OSC,
导致执行set_lowpower_keep_32K_osc_flag(0);
函数语句,会导致 32.768K 不起振,导致 RTC 时钟不跑,把形参 0 改为 1 即可。
2.AC692x_SDK_release_V2.2 程序 RTC 时钟睡眠 32K 晶振不振
参考AC692X问题文档26点
3.进入 RTC 睡眠以后 RTC 时钟不走
enter_sys_soft_poweroff(); 调用进入睡眠之前一定要调用下面这个保持 32768 晶振的函数
set_lowpower_keep_32K_osc_flag(1);
3.带有 RTC 时钟的方案,外挂 32.768KHz 的晶振,需注意 PR 口的设置
例如 AC6921A 主控,PR3/OSC32KI、PR0/OSC32KI 复用,所以在程序需要把 PR3 和 PR0 设置为高阻态,因为 PRN 口有些开机的默认值
PORTR_PU(PORTR0, 0);
PORTR_PD(PORTR0, 0);
PORTR_DIR(PORTR0, 1);
PORTR_DIE(PORTR0, 1);
PORTR_PU(PORTR3, 0);
PORTR_PD(PORTR3, 0);
PORTR_DIR(PORTR3, 1);
PORTR_DIE(PORTR3, 1);
4.AC692X 在各个模式读取 RTC 时间
参考AC692X问题文档27点
void othermode_get_rtctime(void)
{
rtc_read_datetime(rtc_set.calendar_set.curr_rtc_time);
rtc_read_alarmtime(rtc_set.alarm_set.curr_alm_time);
puts_time(rtc_set.calendar_set.curr_rtc_time);
}