每1秒钟获取一次ds1302 的时间 但要求准确 避免在单片机主循环里每次都都执行读取函数

解释一下:平时写程序的时候都是主循环里每次都进行DS1302的时间读取想象有没有一种方法将ds1302每次秒寄存器进位时候触发单片机执行读取函数;然后在刷新显示界面... 解释一下:平时写程序的时候都是主循环里每次都进行DS1302的时间读取 想象有没有一种方法将ds1302每次秒寄存器进位时候 触发单片机执行读取函数 ;然后在刷新显示界面 展开
 我来答
百度网友186dfeac08
推荐于2018-04-14 · TA获得超过754个赞
知道小有建树答主
回答量:1074
采纳率:50%
帮助的人:520万
展开全部
印象中DS1302没有这种功能的使用方法,你可以用定时器定一段时间读一次。

别一款时钟芯片 DS12887 却是有这种功能的,它有一个中断管脚,可以配置成每秒输出一个中断,甚至每天中断输出,刚好符合你想要的功能。
追问
其实也有这方的想法 但是总感觉有问题  例如 利用c51 定时中断1s 产生标志位  通过标志位执行读取函数  那也不能把握 我读的那一瞬间 正好碰到 秒寄存器进位 然后获取时间  下一秒读时间间隙正好又是  秒寄存器进位间隙  。。否则,读时间可能与时钟内部时间 有1s以内的误差。所以,对于精准的时间要求可能不行。 DS12887 找资料看看,谢谢~~
追答
我意思不是隔这么久中断一次,你说1S中断一次,那肯定是太久了,你可以中断小一点啊,比如50ms读一次,这样1S以内就可以读20次了,要不然还可以10ms读一次,1S可以读100次,这样的时间刷新,就算人眼都看不出来了,做时钟的话,那肯定是没有问题的,人肯定感觉不到时间间隔的差异 ……
GUEL86
2014-03-11 · TA获得超过5855个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:2664万
展开全部
如果 你在 程序中用到了 定时器(或者使用一个定时器)只要定时计时到1秒 置位一个秒标志
在 主循环秒标志置位时 读取时间 并且清秒标志,
定时器不需要 单独使用 可以借助已经使用的(当然用单独的更好)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式