yifei_515 发表于 2009-7-15 20:19:34

请教:有关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闹钟唤醒。请指教。

zmy12006 发表于 2011-11-15 02:45:13

RE:请教:有关RTC闹钟设置的问题

我也碰到这样问题 要是有解决方法能不能告诉我 121028320@qq.com
页: [1]
查看完整版本: 请教:有关RTC闹钟设置的问题