我需要从一个缓慢且合理精确的时钟为 RTC 计数器计时。 我发现最好的选择是 REFO。 从用户手册中的 RTC 配置:
在查看 FR2100数据表时、会出现歧义:
假设这是一个拼写错误、将 RTCSS 设置为01b 将启用 AUX 时钟、默认情况下、在没有外部晶体的情况下、AUX 时钟似乎会回到 REFO 时钟、对吧?
然而、当使用这个设置时、RTC 计数器似乎在一个大约750kHz 的时钟上计数、这是奇数、这个频率来自哪里? 此外、在使用该时钟时、预分频器似乎不能可靠工作(分频器设置并不总是改变计数器速度)。
我已经验证了 VLOCLK 在 RTC 中的使用是否正常、但由于精度较差、我无法使用。
请在这里帮助我、在 MSP430FR2100上、在使用 REFO 时钟的 RTC 配置中、我在这里不理解什么? 或者这是不可能的?
我的代码:
Watchdog_Time EQU 3024. ;32 Hz tick * 90秒+ 5% Margin mov.w #Watchdog_Time、&RTCMOD ;设置计数限制 bis.w #RTCSS0|RTCPS2|RTCPS1|RTCPS0、&RTCCTL; ;时钟= 01 (AUX/REFO?)、预分频器1024 = 32Hz 节拍 bis.w #RTCSR、&RTCCTL ;重置计数 器循环: bit.w #02h、RTCIV ;检查 RTC 计数器是否溢出 jz 跳过 {action on timeout goes here} 跳过: JMP 环路
此代码以大约4秒的间隔触发超时、其中超时值应为~95。 将预分频器更改为通过(1)会将触发时间更改为2秒、这对我来说根本没有意义。
请提供帮助、谢谢!
/Johannes