This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
[引用用户="Charles Tsaaa]Hi Nadav、
您将使用哪款32.768kHz 振荡器? 我参考振荡器数据表、了解其在整个温度范围内的容差和稳定性。
[/报价]
大家好、Charles、我不确定您的意思、我没有编写该代码、所以我还在学习 RTC。
以下是 init 函数:
void RTC_init (void)
{
int32_t ui32Status = 0U;
//启用休眠模块。
//
SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);
//
//等待休眠模块准备就绪。
//
while (!SysCtlPeripheralReady (SYSCTL_Periph_HIBERNATE))
{
}
HibernateEnableExpClk (SysCtlClockGet ());
HibernateClockConfig (HIBERNATE_OSC_LOWDRIVE);
HibernateRTCEnable();
if (HibernateIsActivate())
{
//
//读取状态以确定唤醒原因。
//
ui32Status = HibernateIntStatus (false);
//
//测试状态位以查看原因。
//
IF (ui32Status 和 HIBERNATE_INT_PIN_WAKE)
{
//
//唤醒是由于 WAKE 管脚置位所致。
//
}
if (ui32Status 和 HIBERNATE_INT_RTC_MATH_0)
{
//
//唤醒是由 RTC 匹配寄存器引起的。
//
}
//
//恢复以前保存的程序状态信息
//休眠。
//
//HibernateDataGet (pui32NVData、64);
//
//现在已确定唤醒原因并已显示状态
//恢复后,程序可以继续使用正常的处理器和
//外设初始化。
// ui32Status = HibernateIntStatus (0);
HibernateIntClear (ui32状态);
RTC_GetTime();
}
}
您好、Nadav、
您要谈论的是哪个板? 我假设这是您自己的定制板、对吧?
如果使用内部 LFIOSC、精度将会非常差。 LFIOSC 是器件的一部分、因此它记录在数据表中、以了解其电气时序规格。 请参阅下面的内容。 您可以看到、频率在10kHz 和75kHz 之间差异很大。 如果您希望获得壁式时钟精度、那么肯定不会选择您的振荡器。 如果您需要精度、则必须使用外部晶体。 请访问 Mouser.com 或 Digikey.com 以查找您的晶体振荡器并阅读其数据表。 您应该能够找到具有极低 ppm 的32.768kHz 振荡器。