过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

定时器的实现原理

IT技术 • ForTheMe • 发表于 7 年前 • 最后回复来自 ForTheMe • 7 年前

本人近期有接触过 vxworks实时系统、ni实时系统和rtx实时系统,但感觉各个定时器都有差别,即使两个都是rtx定时器也会有细微差别,请问下这个定时器实现是基于什么的?和系统的cpu主频有关系吗? (本人不怎么懂硬件这一块)

加入收藏 新浪微博 分享到微信 ❤赞 2114 次点击 0 人赞 0 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到8条回复
linuxwww 7 年前 #1 赞 0

分频出来的

ForTheMe 楼主 7 年前 #2 赞 0

@linuxwww 网上搜了一下“分频”的概念:受外部周期信号激励的震荡,其频率恰为激励信号频率的纯分数,都叫做分频。是这个意思吗?
也就是有个外部的周期信号激励?那么这个周期信号是哪个产生的呢? cpu吗?

woyouzui 7 年前 #3 赞 0

不说软的定时器,硬件的定时器都是计数器,驱动时钟一般是cpu主频分频的低频时钟驱动,向上或者向下的计数,符合条件就触发中断或者事件。所谓的区别,无非是寄存器和计数器的运行差别吧。

ForTheMe 楼主 7 年前 #4 赞 0

@woyouzui 现在这边两个系统(简称A系统、B系统,A和B之间有一个公共区域)之间都是实时系统(定时器分辨率ns级别的),A定时1ms往公共区域写一次数据并自加一,B定时1ms从公共区域读一次数据,时间长了,B会读到两个连续一样的数据,个人感觉是两个定时器一长一短,我不知道这个是不是和这些系统的主频有关。

woyouzui 7 年前 #5 赞 0

很正常啊,时钟不是同频的,有累积误差,当误差大于一个周期的时候,就会错一个周期。

ForTheMe 楼主 7 年前 #6 赞 0

@woyouzui 嗯 就是说最好用主频相同的cpu才能避免这个时间累积误差问题吧

woyouzui 7 年前 #7 赞 0

和主频相同没关系,世界上不存在完全一样的两个晶振,你这个属于异步的通信,但是使用的同步的方式。

ForTheMe 楼主 7 年前 #8 赞 0

@woyouzui 嗯是的,两个系统是独立的,A系统会1ms内解算出数据,并定时发送数据,B系统也是1ms在解算,工作,AB是两个不同厂家,不同的开发环境,还没想到好法子解决。

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
iOS 过早客没有数据,大佬们求教!
GPT-5
寻有K12教育行业软件开发经验的同学合作
你们都用哪些AI工具,求分享下~
过早客flutter版来了
亲测,鸿蒙开发奖励到手了
感觉gemini已经是一骑绝尘
分享一个拥有很多好看壁纸的插件
作为后端开发工程师,你们有中途转向机器学习/深度学习的吗?
写了个过早客的暗色插件,个人感觉很好用嘿嘿

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号