打印

IIC 实时钟怎么读?

[复制链接]
1632|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xhtwork|  楼主 | 2017-9-20 15:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xhtwork 于 2017-9-20 16:20 编辑

IIC可能是最慢的总线,无硬件IIC模块的cpu用IO模拟iic读RTC的时间开销还是不小的。
为了在界面上显示准确的时间,我一直都是每秒读一次。
今天听人说:他一直都开机读1次、然后自己定时、过段时间再读1次 。。。

大概估一下:如果普通晶体精度20ppm、温飘20ppm,正常情况下每小时误差应在1秒以内。
那么按理说,1小时较准1次钟就可以了。

大家是每秒都读,还是过一阵读一次?或者有什么其他思路?
另外,在多机联网需要授时的场合,大家都多长时间发一次授时信号?




评论
路驹 2019-11-15 16:44 回复TA
怎么联系你 

相关帖子

沙发
feelhyq| | 2017-9-20 16:17 | 只看该作者
如果楼主要很精密的授时,可以用GPS模块,它提供实时 时间

使用特权

评论回复
板凳
feelhyq| | 2017-9-20 16:20 | 只看该作者
UART 总线 或者单总线才是最慢的总线,在里利用GPIO模拟I2C时,速度是可以保证的,依据RTC本身模块特性决定,GPIO模拟400Kb/s(I2C高速模式)是没问题的,

使用特权

评论回复
评论
xhtwork 2017-9-20 16:24 回复TA
你说得对,uart比iic慢。是我没说清楚,我本意是跟并口、spi比较。 
地板
ningling_21| | 2017-9-20 16:25 | 只看该作者
使用不同的RTC时间的误差不同,一般一秒读一次(需显示秒),或一分钟读一次(不需显示秒)

使用特权

评论回复
5
feelhyq| | 2017-9-20 16:27 | 只看该作者
IO模拟时,里面的延时可以不断的减小,只要能满足你使用RTC芯片的时序就行了

使用特权

评论回复
6
xyz549040622| | 2017-9-20 16:34 | 只看该作者
保证1s内读一次就好了。

使用特权

评论回复
7
Prry| | 2017-9-20 18:20 | 只看该作者
就算用模拟i2c也不会占用很多CPU资源,如果带操系统,还可以用系统延时函数,不会阻塞当前模式时序,CPU还是可以利用这段资源的。

使用特权

评论回复
8
山东电子小菜鸟| | 2017-9-20 20:52 | 只看该作者
开机读1次、然后自己定时、过段时间再读1次 。。。 这种方法可行

使用特权

评论回复
9
datouyuan| | 2017-9-22 10:46 | 只看该作者
认同7楼的观点。

IIC花销那么少,随时都可以读。有了RTC,跟精确时间有关的都应依靠RTC,不应该像你同事那样再搞一套定时。

使用特权

评论回复
10
xhtwork|  楼主 | 2017-9-22 21:08 | 只看该作者
datouyuan 发表于 2017-9-22 10:46
认同7楼的观点。

IIC花销那么少,随时都可以读。有了RTC,跟精确时间有关的都应依靠RTC,不应该像你同事那 ...

RE 9楼:
用 io 模拟读一次 IIC 时钟的开销大概是1毫秒,对数据存取而言算比较大的开销了,心理上会感觉不舒服。但考虑到1秒读一次,确实也无所谓。

Re 7楼:
iic的延时都是us,模拟的时候一般是靠堆积空指令实现。

使用特权

评论回复
11
chineseboyzxy| | 2017-9-23 10:34 | 只看该作者
要是自己搞个定时,还再去搞个RTC,多余了,程序里随便找个地方插进去读一下就行了,要么就把自己的定时搞精确,不要RTC算了。

使用特权

评论回复
12
路驹| | 2019-11-15 16:43 | 只看该作者

使用特权

评论回复
13
ayb_ice| | 2019-11-15 17:12 | 只看该作者
模拟的1秒钟读100次也没问题

使用特权

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

本版积分规则

38

主题

154

帖子

4

粉丝