历史上的今天
返回首页

历史上的今天

今天是:2025年05月08日(星期四)

正在发生

2021年05月08日 | 系统节拍与软件定时器-嵌入式微系统

2021-05-08 来源:eefocus

系统节拍是非常重要的一个设备,在早期的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是系统节拍设备,它除了分散节拍直接调用固定的运行在其上的设备外,还提供了注册机制给上层应用程序提供系统节拍,具体如下:

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


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

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


推荐阅读

史海拾趣

Altonics公司的发展小趣事

Altonics公司创始人在XXXX年创建了这家公司,初期面临着资金短缺、市场竞争激烈和技术人才缺乏的困境。然而,创始人凭借对电子技术的深刻理解和敏锐的市场洞察力,决定专注于工业自动化控制领域的研发与生产。经过不懈的努力,公司成功开发出一款高性能的自动化控制设备,受到了市场的广泛认可,为公司的后续发展奠定了坚实的基础。

Embedded Planet公司的发展小趣事

Embedded Planet公司深知人才是企业发展的核心驱动力。因此,公司一直致力于培养和吸引优秀人才,建立了一支高效、专业的团队。公司为员工提供丰富的培训和发展机会,鼓励员工不断学习和创新。同时,公司还注重团队建设和文化塑造,营造了一个积极向上、团结协作的工作氛围。这些努力使得Embedded Planet公司成为了一个充满活力和创造力的企业。

DRS Technologies公司的发展小趣事

DRS Technologies公司成立于1968年,由Leonard Newman和David Gross两位工程师共同创立。当时,他们正在Loral Corporation研究反潜战的信号处理技术。然而,当Loral决定转向其他技术方向时,Newman和Gross决定继续他们的研究,并创立了DRS。他们的努力最终导致了AN/SQR-17无源潜艇探测系统的开发,这一系统至今仍在广泛使用。

EICHHOFF公司的发展小趣事

品质一直是EICHHOFF公司发展的核心竞争力。为了确保产品质量的稳定性和可靠性,公司建立了一套完善的质量管理体系,并持续进行改进和优化。从原材料采购到生产加工、从产品检测到售后服务,每一个环节都严格按照质量管理体系的要求进行。

此外,EICHHOFF公司还积极引入国际先进的品质管理工具和方法,如六西格玛、精益生产等,以进一步提高产品质量和生产效率。这些努力使得EICHHOFF的产品在行业中享有很高的声誉和信誉。

AC Interface Inc公司的发展小趣事

随着国内市场的饱和,ABC Electronics Inc. 开始寻求国际化的发展道路。公司首先在欧洲设立了分支机构,通过参加国际电子展会、与欧洲企业建立合作伙伴关系等方式,逐步打开了欧洲市场。随后,公司又进军北美和亚洲市场,通过本地化运营和定制化服务,满足了不同国家和地区的需求。这一国际化战略不仅拓展了公司的市场份额,也提升了其品牌影响力。

Deltron / DEM Manufacturing公司的发展小趣事

Deltron Emcon,即现在的DEM Manufacturing,起源于四家英国制造企业的合并。这些企业分别是成立于1946年的Deltron Components,专业音频连接器和压铸盒制造商Roxburgh EMC(成立于1969年),EMC滤波器和组件的制造商Media Products(成立于1990年),以及广播跳线产品制造商BES Electronics(成立于1982年)。这些公司在各自的领域内都有着丰富的经验和卓越的技术,合并后,DEM Manufacturing凭借这些优势,在电子行业中迅速崭露头角。

问答坊 | AI 解惑

智能车信息回放系统6

智能车信息回放系统6…

查看全部问答>

具备图形加速能力的嵌入式应用系统

具备图形加速能力的嵌入式应用系统…

查看全部问答>

频率变换电路的概要

频率变换电路的概要 时间:2010-05-28 22:44:35 来源: 作者: 频率变换电路也称之为频率变频器(Converter),为高频率电路独特的电路方式。如大家所详知的超外差(Superheterodyne)方式,便为频率变换的一种方式。频率变换电路可以将HF~VHF~UHF ...…

查看全部问答>

4x4 4x4键盘问题,有四个键值始终不对,请大家帮帮忙

[#TK1117] 4x4 4x4键盘问题,有四个键值始终不对,请大家帮帮忙   用89c2051做了一个键盘,P1.0-P1.3接上拉电阻,程序如下: uchar getkey() {     uchar recode,key;             ...…

查看全部问答>

已有文件abc.inf和abc.sys,如何用wise打包驱动?

reference manual已阅,但是依然没有找到方法。 基本的使用我已经明白,设计到inf如何使用的部分不是很清楚,目前已经完成的操作就是: 1.拷贝文件。 abc.sys -> $(WINNT)\\System32\\DRIVERS abc.inf -> $(WINNT)\\inf 2.写注册表 [HKEY_LOC ...…

查看全部问答>

CE下怎么因隐藏掉开始菜单啊(不用aygshell中SH打头的函数)

CE下怎么因隐藏掉开始菜单啊(不用aygshell中SH打头的函数)…

查看全部问答>

Freescale 的智能电表产品方案

          笔者在上海参加FTF ,听中国电力科学院首席专家胡学浩中国智能电网发展战略部署和实践的报告,智能电网就是SMART GRID ,中国建设坚强智能电网意义重大,具体实施是三步走。笔者对智能电网的智 ...…

查看全部问答>

取消默认的上拉电阻让ADC更准确。

LPC111x默认reset后都是上拉电阻使能,这个内部的上拉电阻在使用SSP等接口是非常方便,大约可以提供50~60uA的上拉电流(I2C还是拉不动啊~)。在ADC时需要提高精度可以把上拉电阻禁能,例如P1.0(ADC1)接口: LPC_IOCON->JTAG_TMS_PIO1_0   ...…

查看全部问答>

MSP430的启动过程

   介绍启动过程之前我们先介绍下MSP430的POR(power on reset)和PUC(power up clear)。POR只能由下面三种情况触发:1、器件上电;2、RST(配置为复位模式)引脚为低电平;3、当PORON为1时, SVS为低。PUC的触发情况(POR一定会触发PU ...…

查看全部问答>