项目中需要实现长定时,定时范围在0-750天,以天为单位,实现的功能是针对故意拖欠质保金的客户自动关闭设备的某些功能而不能正常使用,
如果将设定的天数换算成年、月、日三个量,然后用这三个量去和时钟芯片的时间对比,对应的值变化就将对应的年月日值减1,减到0为止。但
这个方法在修改了系统时钟的情况下显得毫无用处,而且当设备停电了,这个算法也不准确了,所以想请教大家有没有做过这样的:设定的倒计时
时间不受修改了系统时间的影响,并且不受设备停电的影响(就是讲即使你今天停机没用也算你用了一天了)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
楼主要求的是断电情况下也要计算时间的
定义一个5字节数组并存在EEPROM里,格式是: 年、月、 日、 限制天数(非零为天数,0值代表关闭该功能)、递减量,
1、当前时间的“日”的变化则将的年月日替换数组里的年月日,同时"递减量"减一,减到零启动“限制”功能(此时不在判断
日期的变化并保持“限制”状态,只有将“限制天数”修改为0(进入菜单修改此值有密码限制)才能退出“限制”功能。)
修改日期时新的年月日值存到EEPROM里,相当于从新的起点计算日期变化来修改“递减量”。
(实现:不受修改时间的影响)
2、开机即判断是否开了“限制”功能,如是则读当前日期并与EEPROM里的日期比较,计算两个日期间的天数,
“递减量” 减这个天数,小于等于0即启动“限制”,否则“递减量” -= 这个天数,(实现:停电情况下也计算使用天数)
当前在解决 “计算两个日期间的天数”
系统里面设计了RTC计时,那就必须保证RTC能持续正常工作。
把RTC电源取出? 抱歉,系统时间错误,立即锁机!
一周热门 更多>