每1秒钟获取一次ds1302 的时间 但要求准确 避免在单片机主循环里每次都都执行读取函数
解释一下:平时写程序的时候都是主循环里每次都进行DS1302的时间读取想象有没有一种方法将ds1302每次秒寄存器进位时候触发单片机执行读取函数;然后在刷新显示界面...
解释一下:平时写程序的时候都是主循环里每次都进行DS1302的时间读取 想象有没有一种方法将ds1302每次秒寄存器进位时候 触发单片机执行读取函数 ;然后在刷新显示界面
展开
2个回答
展开全部
印象中DS1302没有这种功能的使用方法,你可以用定时器定一段时间读一次。
别一款时钟芯片 DS12887 却是有这种功能的,它有一个中断管脚,可以配置成每秒输出一个中断,甚至每天中断输出,刚好符合你想要的功能。
别一款时钟芯片 DS12887 却是有这种功能的,它有一个中断管脚,可以配置成每秒输出一个中断,甚至每天中断输出,刚好符合你想要的功能。
追问
其实也有这方的想法 但是总感觉有问题 例如 利用c51 定时中断1s 产生标志位 通过标志位执行读取函数 那也不能把握 我读的那一瞬间 正好碰到 秒寄存器进位 然后获取时间 下一秒读时间间隙正好又是 秒寄存器进位间隙 。。否则,读时间可能与时钟内部时间 有1s以内的误差。所以,对于精准的时间要求可能不行。 DS12887 找资料看看,谢谢~~
追答
我意思不是隔这么久中断一次,你说1S中断一次,那肯定是太久了,你可以中断小一点啊,比如50ms读一次,这样1S以内就可以读20次了,要不然还可以10ms读一次,1S可以读100次,这样的时间刷新,就算人眼都看不出来了,做时钟的话,那肯定是没有问题的,人肯定感觉不到时间间隔的差异 ……
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询