打印
[STM32F0]

stm32 RTC使用时钟源LSI一秒一个振荡

[复制链接]
7430|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liguang02|  楼主 | 2014-9-22 22:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假设lsi为40khz,数据手册解释是30k-60khz,软件设置为
/* Calendar Configuration */
  RTC_InitStructure.RTC_AsynchPrediv = 99;
  RTC_InitStructure.RTC_SynchPrediv        =  399; /* (40KHz / 100) - 1 = 399*/
即是假设LSI为40khz,一秒一个振荡,那么实际LSI都是小于40khz的话,rtc时间是不是一直没办法增加,即是原来是1时0分0秒的,过了10秒后,因为lsi都是小于40khz,所以不会增加,
另外我设置为一秒1000次振荡的话,rtc如何判断时间到了一秒,即是如何知道这个振荡频率,然后增加rtc时间?
沙发
aozima| | 2014-9-22 23:09 | 只看该作者
比如某车额定速度120,当它跑110时,岂不是不动?

使用特权

评论回复
板凳
aozima| | 2014-9-22 23:10 | 只看该作者
钟振还是别省了,不过有网络或其它校时方法的话,还是可以用RC,启动校一下,然后定期校一下。

使用特权

评论回复
地板
liguang02|  楼主 | 2014-9-22 23:19 | 只看该作者
aozima 发表于 2014-9-22 23:09
比如某车额定速度120,当它跑110时,岂不是不动?

那我现在想问的就是是不是预分频输出只能是1hz,如果是1khz,单片机那边是不是也会当成1hz处理,如果他能发现是1khz,怎么发现的,还有我现在程序设置lsi为40khz,然后预分频为1hz,可是rtc 5s闹钟很久都没有中断,怎么回事?我只能是假设是不是LSI实际值只有大于40khz他才能进入闹钟中断?

使用特权

评论回复
5
liguang02|  楼主 | 2014-9-22 23:19 | 只看该作者
aozima 发表于 2014-9-22 23:10
钟振还是别省了,不过有网络或其它校时方法的话,还是可以用RC,启动校一下,然后定期校一下。 ...

硬件管脚全部被用光了

使用特权

评论回复
6
yinhaix| | 2015-5-14 16:47 | 只看该作者
我也要用LSI,怎样解决误差

使用特权

评论回复
7
liguang02|  楼主 | 2015-5-15 09:28 | 只看该作者
yinhaix 发表于 2015-5-14 16:47
我也要用LSI,怎样解决误差

不知道,我根本就没去解决,时间精度要求不高

使用特权

评论回复
8
yinhaix| | 2015-5-16 15:30 | 只看该作者

使用特权

评论回复
9
尤彼卡| | 2015-5-21 21:27 | 只看该作者
都会有误差,只要在允许范围就行

使用特权

评论回复
10
梦想号| | 2015-9-5 22:14 | 只看该作者
请问楼主您的问题解决了吗?我现在也是测试这个呢,在PC13脚输出RTC 1Hz的时钟信号,我设置为输出512Hz信号时输出很正常,偏差也就一点,但我设置成1Hz时钟输出时,输出信号竟然是2Hz的,这的搞不懂????

使用特权

评论回复
11
ddllxxrr| | 2019-7-5 12:32 | 只看该作者
小于的话,就是定时不准呗,跟增不增加有什么关系

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

307

帖子

2

粉丝