请教:有关RTC闹钟设置的问题
各位大虾:我写了一个RTC闹钟的程序,代码大约如下:代码目的:进入待机模式后3秒通过RTC闹钟唤醒。
main()
{
......//init
m_vTimeSave = RTC_GetCounter();
while(1)
{
tCurrentTime = RTC_GetCounter();
if(tCurrentTime - m_vTimeSave > 5) //大于5秒
{
tCurrentTime = RTC_GetCounter();
RTC_SetAlarm(tCurrentTime + 3);
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
PWR_EnterSTANDBYMode();//待机
}
}
}
可是发现如下问题:按照以上程序执行到RTC_WaitForLastTask();语句时则死循环,此时查看RTC_CRL寄存器的RTOFF位,的确为0,但是单步调试时RTC_SetAlarm(tCurrentTime + 3); 语句的每一步操作都已经完成,且查看RTC_ALRH和RTC_ALRL寄存器,确认数值都已经写入这两个寄存器,但是RTC_WaitForLastTask();却进入空等待中。很奇怪,请高人指点一二,不胜感激!
屏蔽掉语句RTC_SetAlarm(tCurrentTime + 3); 或者语句RTC_WaitForLastTask();都顺利进入待机模式,且可以通过PA.0(WAKE_UP)上升沿外部中断唤醒,但是不能通过RTC闹钟唤醒。请指教。
RE:请教:有关RTC闹钟设置的问题
我也碰到这样问题 要是有解决方法能不能告诉我 121028320@qq.com
页:
[1]