搜索
嵌入式教程:系统软件定时器
2022-02-25 11:01:14
439
0

  定时器?不就是闹钟嘛,我手机设置一下就好啦,你想他几点响,响多少次都可以。当然,学过嵌入式教程的同学不会有这样的认知,他们都会知道软件定时器是用程序模拟出来的定时器。


  那如果我需要不止一个软件定时器怎么破?其实解决方式非常简单,我可以直接用硬件定时起来模拟出一大堆软件定时器,你想要几个就整几个。这就是软件定时器的优点,数量上不会受到任何限制。



嵌入式教程:系统软件定时器



  其实各个系统上都会带有软件定时器,不管是Linux还是OS他们的原理都是差不多的。典型的实现方法是:通过一个硬件定时器产生固定的时钟节拍,每次硬件定时器中断到,就对一个全局的时间标记加一,每个软件定时器都保存着到期时间。


  程序需要定期扫描所有运行中的软件定时器,将各个到期时间与全局时钟标记做比较,以判断对应软件定时器是否到期,到期则执行相应的回调函数,并关闭该定时器。



嵌入式教程:系统软件定时器



  软件定时器的数据结构一般有两种,分别是数组和链表结构,而数据结构决定了性能和功能。所以我们在选择数据结构的时候一定要选择合适的,比如数组可以快速查找固定数量的数据。但没法进行动态拜年话,只能用在一切都固定好的情况。


  链表则是查找时间较长,但是动态增减,这也因此让它通用性更加强。等一切准备就绪后,千万不要忘了测试,不然你的嵌入式教程就白学了。当测试通过了,也就可以使用了。


  本文原创 文章来源:好学谷 转载请标明出处:http://www.haoxuegu.com/

嵌入式教程:高压电是以交流,还是直流方式输送?
每个学Java教程的程序员都不一样