嵌入式系统软件扩展定时器的方法技术方案

技术编号:11108211 阅读:88 留言:1更新日期:2015-03-04 21:33
本发明专利技术涉及一种嵌入式系统软件扩展定时器的方法,根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;建立一个全局软件定时器数组,数组的长度等于所需软件定时器的个数;初始化全局软件定时器数组为负值;当任务需要开启软件定时器时,根据任务定时时间、硬件定时器精度计算定时值;在硬件定时器响应函数内对数组元素值进行判断,如果数组元素值为负值,不执行任何操作;如果数组元素值为0,则任务定时时间到,执行定时操作且对数组元素值执行减一操作;如果数组元素值为正值,对数组元素值执行减一操作。本发明专利技术优点在于占用内存少,结构易实现,特别适用于无操作系统中、小型嵌入式系统软件。

【技术实现步骤摘要】

本专利技术涉及一种用于实现无操作系统中。
技术介绍
在嵌入式系统中,通常同时有多个任务需要开启定时器,而嵌入式系统硬件定时器资源有限,尤其对于单片机、微处理器80386等0^硬件定时器资源相当有限,在这种情况下如何软件扩展定时器就显得极为重要。 目前软件扩展定时器多采用队列方式,队列扩展又分为单队列和多队列。单队列定时器将定时器按定时时长从小到大排序,增加定时器时插入队列相应位置。多队列方式根据不同的定时精度设置多个队列,轮询检测每个队列中的定时器。单队列方式需对每个定时器设置定时器节点,而对于无操作系统小规模嵌入式系统软件来说,队列和节点结构操作实现较为复杂。多队列不但需要设置定时器节点,而且需要对多个队列轮询,占用内存且结构复杂,更不适合小规模嵌入式系统。
技术实现思路
本专利技术目的在于提供一种适合无操作系统的。 为实现上述目的,本专利技术采取下述技术方案:本专利技术所述,按照下述步骤进行:第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数;第三步、初始化全局软件定时器数组为负值;第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给所述任务对应的数组元素;定时值计算公式如下:定时值=定时时间/硬件定时器精度一 1 ;第五步、在所述硬件定时器响应函数内对全局软件定时器数组元素值进行判断,如果全局软件定时器数组元素值为负值,不执行任何操作;如果全局软件定时器数组元素值为0,则所述任务定时时间到,执行定时操作,且对全局软件定时器数组元素值执行减一操作;如果全局软件定时器数组元素值为正值,对全局软件定时器数组元素值执行减一操作。 本专利技术优点在于采用建立一定时器数组,对定时器数组元素设置定时值,通过每次操作定时器数组的方法实现软件扩展定时器。因此,本专利技术所需资源少,占用内存少,结构易实现,特别适用于无操作系统中、小型嵌入式系统软件。 【附图说明】 图1是本专利技术硬件定时器中断函数流程图。 图2是本专利技术所述任务开启软件定时器流程图。 【具体实施方式】 如图1、2所示,为进一步说明本专利技术的软件扩展定时器方法,下面结合具体实施例加以描述:第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度可以被任务所需定时时间整除;第二步、建立一个全局软件定时器数组,该数组的长度等于所需软件定时器的个数; 第三步、初始化软件定时器数组为负值; 假设共有十个任务需要软件定时器,所需定时时间分别为乂01118、乂11118、乂21118、^31118,^41118 ? ^51118 ? ^61118 ? ^71118 ? ^81118 ? ^91118 ;则硬件定时器精度可设置为11118,全局软件定时器数组长度0〔10〕长度为10,并将0 [10]初始化为-1 ;第四步、当任务需要开启软件定时器时,根据任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给任务对应的数组元素,定时值计算公式如下:定时值=定时时间/定时器精度一 1 ; 第五步、假设任务0需要开启软件定时器,定时时间为则根据计算公式计算得到: 定时值=101118/11118-1=9 ; 假设任务0对应数组元素0 [0],则0 [0] =9 ;在硬件定时器响应函数内对数组元素值进行判断,如果数组元素值为负值,不执行任何操作;如果数组元素值为0,则相应任务定时时间到,执行定时操作,且对数组元素值执行减一操作;如果数组元素值为正值,对数组元素值执行减一操作。本文档来自技高网...

【技术保护点】
一种嵌入式系统软件扩展定时器的方法,其特征在于:按照下述步骤进行:第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数;第三步、初始化全局软件定时器数组为负值;第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给所述任务对应的数组元素;定时值计算公式如下:定时值=定时时间/硬件定时器精度-1;第五步、在所述硬件定时器响应函数内对全局软件定时器数组元素值进行判断,如果全局软件定时器数组元素值为负值,不执行任何操作;如果全局软件定时器数组元素值为0,则所述任务定时时间到,执行定时操作,且对全局软件定时器数组元素值执行减一操作;如果全局软件定时器数组元素值为正值,对全局软件定时器数组元素值执行减一操作。

【技术特征摘要】
1.一种嵌入式系统软件扩展定时器的方法,其特征在于:按照下述步骤进行: 第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除; 第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数; 第三步、初始化全局软件定时器数组为负值; 第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定...

【专利技术属性】
技术研发人员:吴华娟王小坡
申请(专利权)人:郑州飞机装备有限责任公司
类型:发明
国别省市:河南;41

网友询问留言 已有1条评论
  • 来自[美国加利福尼亚州圣克拉拉县山景市谷歌公司] 2015年03月05日 13:06
    1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。
    0
1