我有两个 LaunchPad 板 EK-TM4C1294,在我的应用中,我需要在两个板之间同步时间,因为一个板充当主板,另一个板充当从板
主器件在通过 GPIO 从器件启动接收到中断信号时、使用 GPIO 中断向从板发送信号(同时启用主 RTC)
它自己的 RTC、
在休眠 RTC 模块中,主设备和从设备都设置为在65秒和12458亚秒时产生匹配中断。 在中断处理程序内部、我正在切换
并检查示波器 Tektronix 2012中的两个信号。 示波器中的切换脉冲 不同于 大约250us。
重复一下,我得到 的结果相同。
现在我的问题是 ,不同 芯片中的 RTC 是否可以具有不同的精度,或者它是否必须具有片上晶体的精度。
两个电路板都来自 TI,我使用外部晶振来实现高精度,它根据原理图连接了12pf 电容器。
这是我的 RTC init 子例程:
{
SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);
while (!SysCtlPeripheralReady (SYSCTL_Periph_HIBERNATE));
HibernateEnableExpClk (g_ui32SysClock);
HibernateClockConfig (HIBERNATE_OSC_LOWDRIVE);
HibernateRTCEnable();
HibernateRTCSet (0);
HibernateRTCMatchSet (0、65);
HibernateRTCSSMatchSet (0、12458);
HibernateIntEnable (HIBERNATE_INT_RTC_MATH_0);
HibernateIntClear (HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_LOW_BAT | HIBERNATE_INT_RTC_MATH_0);
HibernateIntRegister (HibernateHandler);
}
如果我用其它电路板更换从器件或主器件,则差异会随电路板而变化,但对于一对电路板保持相同。
谢谢及此致 。