[需求] 找个能够手动调节快慢的时钟
我想要个保留机械闹钟快慢调节功能的软件,在网上找不到。现在流行的电脑时钟,一般只是允许手动校时,软件计时节奏固定了,网络自动对时又有延迟,过不久误差就很大,用来用去总不爽,应该增加计时快慢的调节功能。
其实试了多次,我听收音机给时钟校时比网络授时还要反应快速多了,但是管不了时钟节奏,经常才几天就误差几秒,烦恼无比::070821_02.jpg::
所以想要一个时钟,显示时分秒,要有一个走时快慢调节功能,象机械钟快慢控制装置那样,把走时速度尽量调到真实水平。
这个功能应该很容易实现吧,在程序里面加个快慢控制模块,按两次手动正确对时动作之间的软件计时长度,推算软件计时的快慢程度,再手动指定这个长度等于真实的时长,软件就可以改变节奏符合实际了。
比如要求不误差1秒的时候,第一次手动对时确认正确了,时点是2008-11-1 ,第二次手动对时确认正确,时点是2008-11-11 ,而软件在第二次手动对时完成时把这个时点算成2008-11-10 ,那么就是10天内软件慢24秒,每天慢2.4秒,每小时慢0.1秒。
这样通过手动定义,要求软件把原来自己认为的(10天-24秒)的时长确认成10天整,它的节奏就变得更加准确了。
然后再完成一次手动对时,软件就按这个起算标准继续走钟,后面的计时应该爽得多了;如果这次手动对时有人为误差也不要紧,软件只按最新的时长定义走,让人去对付手动对时准确性问题,总会对出觉得满意的结果,软件用最新定义节奏套算最新对时,自然会比调速前走得更精确了。
这个功能应该可以重复使用,并且可以再精密些,把测算的快慢误差手动平均分配到一定时长中消除,就不会过分积累误差了。
增加这个功能,应该可以轻松对付不同计算机固有时钟基频不一样的问题,避免各按硬件定死的节奏走,无法长时间和别台统一步调;也应该可以对付温度变化对时钟基频的影响,起码在1秒的精度上做得比较好,如果程序设计再完善些,通过比较两次某种技术的更高精度对时,并且自动变更秒长定义,要把较长时间的计时精度提高几个数量级似乎也行得通吧。
是否已经有这样的时钟软件了呢? 反正有人玩单片机做出来了,其实计算机上能这样会很好用,但愿有免费又小巧的出来。
[ 本帖最后由 千眼观音 于 2008-11-1 19:12 编辑 ] 看你的描述太长了,我总结一下你是不是因为你的钟不准确而想一次性的调准它?
如果是的话给你3个方案:
1、换掉主板上折晶振。换一个好的就能解决大多数问题。
2、每天开机后用软件自动校时,对上国家授时中心的会比手动要准。
3、学习相关的语言,修改系统中相应的计时标准。记得以前学语言有时候(不记得是C还是汇编里有)。 如果单片机上的做出来了,那电脑肯定也可以了,单片机的语言一般用c51,你就依样画葫芦把他用vb编出来不就得了? 原帖由 wlbx 于 2008-11-1 19:12 发表 http://www.astronomy.com.cn/bbs/images/common/back.gif
看你的描述太长了,我总结一下你是不是因为你的钟不准确而想一次性的调准它?
如果是的话给你3个方案:
1、换掉主板上折晶振。换一个好的就能解决大多数问题。
2、每天开机后用软件自动校时,对上国家授时中心的会比手动要准 ...
这还嫌长,嘴巴很痛苦::070821_07.jpg::
忘了说明意图,还要多话::070821_18.jpg::
是想出现一种可行性通用性尽可能良好的广谱软件,在计时步长定义的程序处理节点把硬件问题几乎扫干净。
这样就没有换硬件的麻烦了,还可以对付硬件基频其实受好多物理因素影响不能绝对稳定的问题,天下没有哪把尺子的长度永远固定,换尺子不如改刻度。
网络授时真的不可靠,它中心是固定一条线传过来,但是要传进家里,就不知道中间会从哪条分线路走了,还有那么多中继处理的东西拖延,看看电视不同频道的时间显示就知道原理差不多了,以前信它,结果上了当,甚至不知道误差的范围,很多数据变成了垃圾,挫败了好几个重大战役,那可都是历史上不可再现的瞬间啊yct38.gif
所以才非要最大程度减少中间环节,还要主动可控,宁可去撞收音机信号输入转换的墙。
换高品质晶振可不是解决办法,就算它频率绝对固定,也几乎不可能恰好等于真实步长,误差根本不能消除,还要和别的元件关联,信号处理过程复杂,情况多变,综合结果几乎不可能固定,还不如强攻灰箱最后吐出东西的时点定义,搞错的风险会最小。
计算机程序的太核心部分太难修改了,而且不断变化的计时系统步长误差也要经常修改才实用,这会让人抓狂的,也不能连续运行。所以还是在外挂的小模块里处理比较合适些,何苦拿螺丝刀扎那脆弱的核心部件。
唉,感觉还是因为普及的计时精度要求到现在还太粗了,差个几分钟都无所谓,但是难道谁都不需要高精度吗? 也该有人来挖这块绊脚石了,可惜俺不上编程的手,能编的又藏到非普及的专业里,只做太复杂太昂贵的劳什子。也许总有一天谁也开始捣鼓简捷较高精度电脑计时吧,就先把技术需求说在这,或者我用自己的星币悬赏一下? 就怕人嫌少不鸟我。
坚信将来会有人需要这个小东西的,也相信会非常有用,我拿个技术概念技术需求首提资格先yct52.gif
随时期待,随时等用,不见不散::0020::
回复 3# 月下晒太阳 的帖子
软件技术不精啊大哥,您能帮捣鼓一个么?::0020:: 忘了说明一个问题——只要个绿色软件,不去影响计算机的系统程序。并不打算把计算机系统程序的计时搞准了,仅仅是想把因为计时有误差而说错的时点名称、量错的时段长度表示成正确值,哪管它实际误差究竟多大。
为了完成这个口误的纠正,标准时间采用外部的其他东西来参照,不必计算机系统自己改变计时模块的状态解决,也不让计算机自己垄断时间校对(不然信号延迟引起的误差就没法消除了)。
这个软件只须能够按照系统程序的计时情况,给手动对时(或者别种方式更精确直接地对时)的动作记录当时的时点名称 t1、t2(系统程序说的名称),并且计算前后两次动作的时长 l(按系统程序计时方式量的长度);
然后在这个软件的时点名称修改操作中独立完成准确报时工作:
把系统程序说错的时点名称、量错的时长改口说成认定正确的值T1、T2、L,软件就算出系统程序计时的快慢程度了,仍然只听系统程序不断报时,但是把系统程序量的时长l理解成 L,自己推算系统从T2开始报的时点名称t3、t4、t5......其实应该是真实的T3、T4、T5.....于是同步于系统说“现在是ti”地翻译说“现在是t3”,就能够用系统程序的那只破闹钟报出准确时间了。
如果系统的闹钟计时状态一直不变,那么软件就一次性算出快慢程度,一直可以准确纠正系统的口误了,而且不去折腾系统,让它自己继续错去,两不麻烦;
如果系统的破钟状态改变,快慢程度有变化了,那么软对付的办法是继续按原来比较 l 和 L 的差异程度修改报时名称,直到再次手动修改 Ti 和T(i+1)的名称,马上得知新定义时点之间的系统测量时长 li 正对应真实时长 Li,就从新的起算时点 Ti (系统说是 ti )把系统测量的时长 li 理解为新参考时长 Li,继续纠正系统的口误,这样,又能死死盯住系统的破钟完成准确报时任务了。
这样对系统程序只旁听不打架,只要按照需求的计时误差限制水平,隔若干时间更新一次某两个时点的强行定义,就能获得连续的更高精度计时数据了;
也方便躲过系统程序修改这个巨大的麻烦和风险,研究出直接和口误纠正软件连接的非人工对时办法、时点强行定义办法,用光系统破钟计时稳定程度和分辨率的潜力,即便按目前普及电脑的技术水平,要在不很长的时间内达到ms级的连续计时精度可能也不难吧,或者至少短时可以保证0.01s级的精度? 这个水平貌似勉强满足天文爱好的一些业余发烧领域需求了,于是貌似不是只针对我自己要的东西了......
但是这样的软件居然还没有出现,感觉有点怪。想起有人查找询问时得到的一句回答是这种东西没有用所以不可能存在,实在耸肩,该有需求的啊,大大个世界什么软件都有人想到玩到,就是不在这个路上的土疙瘩上踩一脚? 技术上也应该不成问题吧? 迷惑::18::
页:
[1]