主题中讨论的其他器件:Energia、 TM4C123
我们在使用休眠模块时遇到问题。
void init_rtc (){
SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);
HibernateEnableExpClk (F_CPU);
HibernateClockConfig (HIBERNATE_OSC_HIGRHIVE);
HibernateRTCTrimSet (32767);
HibernateRTCEnable();
HibernateRTCMatchSet (0、HibernateRTCGet ()+5);
HibernateIntRegister (HibernateHandler);
HibernateIntEnable (HIBERNATE_INT_RTC_MATH_0);
//设置日历模式。 HibernateCounterMode()始终是必需的,但可以设置为12小时模式
休眠计数器模式(HIBERNATE_COUNTER_24HR);
if (!HibernateIsActivate()){
//将您的设置代码放在这里,运行一次:
//setup_time();
//启用休眠外设。 我使用的是 Energia、因此我使用 F_CPU 来设置时钟频率
HibernateRTCSet (1475489985);
//我们为 RTC 设置一个中断。 您可以更改该值
Debug_info ("//---------------- 执行 RTC 初始化代码。。。 ------ /");
}
否则{
debug_info ("//---------- 休眠模式已经激活了--- /");
}
}
上面是休眠和 RTC 的初始化代码。
信息:
1.3.3V 电池连接到器件。
使用 TM4c123BE6PZ 的定制板
系统大部分时间工作正常、但有时会无限卡在:
HibernateEnableExpClk (F_CPU);(问题1)
这会强制执行看门狗触发、同样的事情会不断发生。
问题2:
有时、器件在从休眠模式唤醒后无法检测休眠状态、因此默认时间被激活:
HibernateRTCSet (1475489985);<-执行此操作 并加载默认时间。
需要紧急建议。
此致、
Suchit Patel