看了下官方的文档,对RTC校验是否如下:
1.先不管预分频,直接得出64分频后的频率f64,然后算出实际的晶振频率f,取其整数部分为F;
2.在F为预分频系数为前提下,计算出ppm,就是(f64-(float)F/64.0)/((float)F/64.0)*1000000,
3.对ppm四舍五入后得到整数,找对应的校正值,并写入校正寄存器,并将预分频系数设置为F。
这样不管晶振频率多少,都能在一定范围内对RTC进行校正。
例如:
测试得到64分频后为511.814,计算预分频应该为32756,理论64分频频率为511.8125,ppm=(511.814-511.8125)/511.8125*1000000=2.93,取3,得到对于的校正值为7,则设置RTC预分频系数为32755,校正值为7。
请各位大大们告知是否是这种做法?另文档中的例子中得到的ppm为27.35,为何要取整为28?另说27误差为69秒,27.35大约为71秒,0.65ppm的话误差1.7秒,请问,这个1.7秒时怎么算出来的? |