【技术实现步骤摘要】
本专利技术涉及一种用于实现无操作系统中。
技术介绍
在嵌入式系统中,通常同时有多个任务需要开启定时器,而嵌入式系统硬件定时器资源有限,尤其对于单片机、微处理器80386等0^硬件定时器资源相当有限,在这种情况下如何软件扩展定时器就显得极为重要。 目前软件扩展定时器多采用队列方式,队列扩展又分为单队列和多队列。单队列定时器将定时器按定时时长从小到大排序,增加定时器时插入队列相应位置。多队列方式根据不同的定时精度设置多个队列,轮询检测每个队列中的定时器。单队列方式需对每个定时器设置定时器节点,而对于无操作系统小规模嵌入式系统软件来说,队列和节点结构操作实现较为复杂。多队列不但需要设置定时器节点,而且需要对多个队列轮询,占用内存且结构复杂,更不适合小规模嵌入式系统。
技术实现思路
本专利技术目的在于提供一种适合无操作系统的。 为实现上述目的,本专利技术采取下述技术方案:本专利技术所述,按照下述步骤进行:第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数;第三步、初始化全局软件定时器数组为负值;第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给所述任务对应的数组元素;定时值计算公式如下:定时值=定时时间/硬件定时器精度一 1 ;第五步、在所述硬件定时器响应函数内对全局软件定时器数组元素值进行判断,如果全局软件定时器数组元素值为负值,不执行任 ...
【技术保护点】
一种嵌入式系统软件扩展定时器的方法,其特征在于:按照下述步骤进行:第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除;第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数;第三步、初始化全局软件定时器数组为负值;第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定时值赋值给所述任务对应的数组元素;定时值计算公式如下:定时值=定时时间/硬件定时器精度-1;第五步、在所述硬件定时器响应函数内对全局软件定时器数组元素值进行判断,如果全局软件定时器数组元素值为负值,不执行任何操作;如果全局软件定时器数组元素值为0,则所述任务定时时间到,执行定时操作,且对全局软件定时器数组元素值执行减一操作;如果全局软件定时器数组元素值为正值,对全局软件定时器数组元素值执行减一操作。
【技术特征摘要】
1.一种嵌入式系统软件扩展定时器的方法,其特征在于:按照下述步骤进行: 第一步、根据任务定时时间设置硬件定时器精度,所设硬件定时器精度被所述任务所需定时时间整除; 第二步、建立一个全局软件定时器数组,所述全局软件定时器数组的长度等于所需软件定时器的个数; 第三步、初始化全局软件定时器数组为负值; 第四步、当所述任务需要开启软件定时器时,根据所述任务定时时间以及硬件定时器精度计算定时值,并将所计算定...
【专利技术属性】
技术研发人员:吴华娟,王小坡,
申请(专利权)人:郑州飞机装备有限责任公司,
类型:发明
国别省市:河南;41