都显示“23:59:32”了,中间两组“:”闪不闪有什么意义?
如果是显示“23:59”,那可以闪的。
开个定时器计数器会不?
你的定时器开个1ms,计满500就改变“:”的状态,不需要太准,前500“;”亮起,500后“;”灭,会不?
同时你肯定还会在大循环中时不时去读RTC的秒计数,当读到的秒计数是新内容时,不管这个500ms增量到什么值,直接清0,同时“;”亮起,这样算不算“同步”?至于500ms后就由它去,多几10个计数都无所谓,因为是灭了。。当下一个秒读数更新时,又清0了,重头来过。。
不完整代码给你参考:
定时器计数:
- //tim0中断
- void tim0_Isr() interrupt 1 //
- {
- tms++; //这个计满500就灭秒点
复制代码
更新秒点状态:
- //显示秒点
- if (tms<=500) //上半秒?
- {
- //秒点亮
- }
- else
- {
- //秒点灭
- }
复制代码
所谓的同步:
- if(oldsec!=sec) //秒读数有变
- {
- tms=0;
- oldsec=sec;
复制代码 |