原创 系统节拍与软件定时器-嵌入式微系统连载之八

2014-8-3 10:09 1564 15 3 分类: 消费电子

系统节拍是非常重要的一个设备,在早期的MCU51和ARM7芯片中,没有专门的系统节拍,往往由一路硬件定时器来实现其功能,到了Cortex系列,ARM提供了Systick硬件定时器专门用于系统节拍,可见现在的编程对系统节拍的依赖性。


系统节拍的概念比较早的出现在OS中,产生固定间隔的重复中断,用于任务的超时等待或者任务延时多少个节拍周期用。在前后台系统中,也引入了系统节拍,比如msOS-Mcu51版本很早就引入了系统节拍,实现按键扫描、虚拟定时器等功能。此外还有一种基于时间片编程的架构,直接采用系统节拍来处理一些对时间精度要求比较高的需求。常用时间间隔是5mS或者10mS,也就是说每秒钟200次或者100次节拍。随着处理器速度的提高,尤其是在一些控制要求高的地方,可以采用1mS,msOS甚至采用了0.1mS的高频率系统节拍。这个具体的时间间隔跟项目需求有关,可以根据自己的项目灵活配置,但在满足需求的情况下,不建议设置的太高,否则影响处理器效率。


msOS中的很多设备,都需要基于系统节拍来运行,比如按键、软件定时器。这些设备不需要太高的系统时钟,按键只需要每秒钟100次,软件定时器需要每秒钟1000次节拍,但msOS因为面向时间精度要求比较高的行业,所以默认的系统节拍时间间隔设置的很短,达到0.1ms,也就是说一秒钟一万次节拍。所以需要对系统节拍进行分频处理,但因为系统节拍真实的间隔是0.1ms,以STM32工作在72MHz为例,这么短的时间最多只能执行7200个CPU指令,为了防止各个低速设备都挤在同一个系统节拍内运行,超过7200个指令,所以在分频的时候,不要把所有的设备都放在同一个节拍里面,需要把各个设备分散到各个节拍中运行。


Device_systick.c是系统节拍设备,它除了分散节拍直接调用固定的运行在其上的设备外,还提供了注册机制给上层应用程序提供系统节拍,具体如下:

 

5386a352d5a1b-thumb.jpg

5386a388b7c37-thumb.jpg

 

定时器是一个项目中经常用到的设备,比如动画设计、闹钟、定时工作、超时处理等。然而一个处理器往往自带的硬件定时器是非常有限的,并且功能也比较有限,不能灵活应用,所以需要通过系统节拍虚拟出多路软件定时器。


软件定时器主要定时器服务、启动、停止三个函数组成,默认支持8个软件定时器,以下面代码为例加以说明。

 

5386a35bb873d-thumb.jpg


FunctionCallback为定时器超时后的回调执行函数,是软件定时器初始化的第三个参数,超时时间到就执行这个函数,第二个参数1000为超时的时间,单位是软件定时器的系统时钟,msOS采用的是1mS,1000也就是一秒钟。第一个参数为回调函数执行的位置,TimerMessageHandle表示在业务逻辑中执行,适合处理代码量大的,处理时间长的函数。TimerSystickHandle表示在系统节拍中直接处理,系统节拍内一般适合代码量少的,处理时间短的函数。软件定时器功能非常有用,它的结构也非常简单,用户看懂之后可以任意扩展其功能完成自己特殊的用途。

文章评论1条评论)

登录后参与讨论

用户1678053 2014-8-18 09:57

看看

用户1657263 2012-7-23 09:30

一款多功能网络测试仪

相关推荐阅读
凤舞天 2019-01-20 20:07
运放的压摆率与增益带宽积,到底是怎么个关系?
今天在ADI上寻找一颗高速运放,但是看了ADI的运放列表,把我弄闷了,到底是选择压摆率高的还是增益带宽积大的。如下图:LT6275是40M增益带宽积,但是压摆率却到2.2K,非常高,相反LT6203X...
凤舞天 2019-01-13 12:53
雨滴慧目图像识别项目的产品定义过程详解!
需求来源:      俊知焊齿机的合金刀头上料机构,采用基恩士的光纤激光识别,对于一些对称性比较强的合金刀头,容易误判,所以高端的焊齿机采用价格昂贵的图像识别系...
凤舞天 2019-01-01 19:50
半导体空穴到底怎么导电的?
我们熟悉的半导体材料,常用的是P、N类型的,硅(SI)中掺杂元素硼(B),因为B三价,相对于SI的4价来说,缺少一颗电子,把这个缺失的部分叫做空穴,这类掺杂B的叫P型材料。对应的,掺杂了元素磷(P),...
凤舞天 2018-12-22 22:13
孩子的教育不应该只是学习,更应该是去挑战
大家会发现,很多优秀的知识分子,自己水平很高,但是自己的孩子却教不好,很多老师的孩子,小学成绩很好,初中也不错,但是到了高中,大学之后,很多走向平庸,这个似乎违背我们的认知。现在自己有小孩了,也面临知...
凤舞天 2018-12-01 11:34
MOS管应用概述(四):基本参数
mos管的基本参数,大家熟悉的必然是Ids电流,Ron导通电阻,Vgs的阈值电压,Cgs、Cgd、Cds这几项,然而在高速应用中,开关速度这个指标比较重要。上图四项指标,第一项是导通延时时间,第二项是...
凤舞天 2018-12-01 10:36
努力之前请先学会思考
公司这么多年下来,有一些人一直很努力,也很听话,让他做什么就做什么,然而一直以来他们很少自己主动做事,挑头做事,往往都是打个下手,听命令行事,一天无忧无虑,看看手机上上网,乐呵呵的,估计睡觉很容易睡着...
我要评论
1
15
关闭 站长推荐上一条 /2 下一条