基于微控制器的倒计时算法与实现
1 引 言
这里的倒计时就是计算出从当前时间点需要经过多长时间才能到达目标时间点。从另一个角度讲, 就是计算出两个时间点之间的时间差。目前, 倒计时系统正得到越来越广泛的应用。在体育比赛、公交系统乃至铁路系统中出现了很多倒计时的时间显示。就在前不久, 关于上海世博会的倒计时正式启动, 其精度精确到天。
在类似的应用中, 大多数情况下, 倒计时功能(包括显示功能)是由微控制器实现的。微控制器不同于桌面电脑或笔记本电脑, 其系统资源非常有限, 也不能安装复杂的操作系统, 没有现成的倒计时系统可以应用。下面将讨论适合在微控制器中运行的倒计时算法。
2 倒计时算法的两种常用思路
关于倒计时的计算主要有两种思路: 一是针对时间段倒计时, 二是针对目标时间倒计时。
●针对时间段倒计时
时间段的含义就是两个时间点的时间差。对时间段倒计时就是先获取两个时间点之间的时间差,然后随着运行时间的增加对该时间差按运行时间递减, 直至递减为0, 表示倒计时结束。
例如, 微处理器对100天倒计时或者对100秒倒计时, 都属于对时间段倒计时, 时间段分别是100天和100秒。当然, 在实际计算时, 最好先把天换算为秒, 再按运行时间递减。
●针对目标时间倒计时
该种思路与第一种思路最大的不同就是它获取的不是时间差, 而是目标时间, 微控制器须自行计算出当前时间与目标时间的时间差。在这种情况下,随着当前时间的改变, 微控制器必须反复计算与目标时间的时间差, 直至差值为0。
例如, 当前时间是2009年5月10 日11点27分0秒, 微控制器获取到目标时间是2009年5月12日11点27分0秒, 则计算出当前的时间差为2天。然后, 当前时间一旦改变, 微控制器就必须重新计算时间差, 直到当前时间到达或超过2009年5月12日11点27分0秒。
●两种思路的比较
( 1)获取的时间参数不同
如前所述, 第一种思路获取的是时间差, 第二种思路获取的是目标时间点。
( 2)采取的算法不同
第一种思路的主要算法是按运行时间对获取的时间差进行递减运算, 这实际是时间计时的逆运算。
该算法牵涉到减法运算与天、小时、分钟、秒的时间规则运算。
第二种思路的主要算法就是计算出两个时间点之间的时间差。该算法不仅牵涉到时间规则运算,还牵涉到闰年的概念与多种算术运算, 比第一种思路的算法复杂许多。此外, 由于该算法需要微控制器能够随时获取当前的准确时间, 因此要求微处理器必须具备实时时钟功能。
相关文章
- 2024-03-19超声波流量计在制盐生产中的应用
- 2022-06-08以DDS为参考的PLL在现代电台设计中的应用
- 2023-08-18新型船用雨量计
- 2022-07-27iFIX软件在计算机机房场地监控系统中的应用
- 2024-03-15便携式自动测角仪的工作原理及应用
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。