首页 > 编程知识 正文

嵌入式系统中系统时间显示不正确,嵌入式系统中系统时间显示不对

时间:2023-05-05 13:29:33 阅读:240714 作者:2734

从NVRAM中可以读取系统的时间,系统一般借助NVRAM产生的秒中断每秒读取一次当前时间并在LCD上显示。关于时间的显示,有一个效率问题。因为时间有其特殊性,那就是60秒才有一次分钟的变化,60分钟才有一次小时变化,如果我们每次都将读取的时间在屏幕上完全重新刷新 一次,则浪费了大量的系统时间。 

一个较好的办法是我们在时间显示函数中以静态变量分别存储小时、分钟、秒,只有在其内容发生变化的时候才更新其显示。 

                  extern void DisplayTime(…)                   {                   static BYTE byHour,byMinute,bySecond;                   BYTE byNewHour, byNewMinute, byNewSecond;                   byNewHour = GetSysHour();                   byNewMinute = GetSysMinute();                   byNewSecond = GetSysSecond();                   if(byNewHour!= byHour)                   {                   … /* 显示小时 */                   byHour = byNewHour;                   }                   if(byNewMinute!= byMinute)                   {                   … /* 显示分钟 */                   byMinute = byNewMinute;                   }                   if(byNewSecond!= bySecond)                   {                   … /* 显示秒钟 */                   bySecond = byNewSecond;                   }                   } 

这个例子也可以顺便作为C语言中static关键字强大威力的证明。当然,在C++语言里,static具有了更加强大的威力,它使得某些数据和函数脱离"对象"而成为"类"的一部分,正是它的这一特点,成就了软件的无数优秀设计。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。