避免微控制器执行程序碰撞的方法技术

技术编号:2918553 阅读:187 留言:0更新日期:2012-04-11 18:40
一种避免微控制器执行程序碰撞的方法,此方法包括:提供至少一第一执行程序以及一第二执行程序,其中微控制器每一第一周期执行一次第一执行程序,微控制器每一第二周期执行一次第二执行程序,其中第一周期小于第二周期;当在第二周期会发生第一执行程序与第二执行程序碰撞时,将该第二程序的执行时间平移一预设时间执行之。

【技术实现步骤摘要】

本专利技术是有关于一种微控制器的处理方法,且特别是有关于一种。
技术介绍
随着科技的进步,许多的产品都有应用到微控制器(Micro Controller,MCU),例如用于检测电脑温度的嵌入式控制器(Embedded Controller),用以控制键盘与个大电脑介面的键盘控制器(Keyboard Controller,KBC),用以控制液晶显示器的控制器等等。类似此类型的微控制器,一般都是使用80系列的控制器(8046、8051等等)。一般来说,微控制器常常用来处理一些常驻程序,例如在电脑中检测南桥晶片GPIO脚位的状态改变、透过SM汇流排检测电池容量资讯、检测温度、LED指示灯等等,这些常驻程序常常是要每一段固定时间就执行一次的程序,例如键盘控制器会有每5ms执行一次第1程序、每10ms执行一次第2程序、每20ms执行一次第3程序、每50ms执行一次第4程序、每100ms执行一次第5程序、每300ms执行一次第6程序、每500ms执行一次第7程序、每1000ms执行一次第8程序,然而上述的程序在执行时,可能会在其公倍数的时候产生碰撞(Collision),例如10ms就可能会发生第1程序与第2程序的碰撞,此时以5ms为周期的第一程序有可能将会被延迟执行。若以上述的例子来说,在上述所有程序的周期的最小公倍数3000ms时候,会发生所有的程序产生碰撞,此时将会造成程序的延迟执行,若是正好第1程序被延迟执行且延长的时间超过5ms,将会导致系统端基本输入输出系统(BIOS)相关程式也会跟着逾时或者判断错误,严重的情况下可能会导致当机的情况发生。
技术实现思路
专利技术的目的就是在提供一种,用以当该处理器必须周期性的处理至少两个执行程序时,可使其不会发生碰撞或插断,进一步的避免系统当机。本专利技术提出一种,此方法包括提供至少一第一执行程序以及一第二执行程序,其中微控制器每一第一周期执行一次第一执行程序,微控制器每一第二周期执行一次第二执行程序;当在第二周期会发生第一执行程序与第二执行程序碰撞时,将该第二程序的执行时间平移一预设时间执行之。依照本专利技术的较佳实施例所述的,上述微控制器器用以处理N个执行程序,上述N个执行程序分别对应N个执行周期,上述N个执行周期具有一最大公因数,且第K个执行周期小于第K+1个执行周期,N、K为自然数且0<K<=N。依照本专利技术的较佳实施例所述的,当上述N个执行周期的最小公倍数不等于上述N个执行周期的相乘时,将第I个执行程序延后I倍的预设时间执行,I为自然数且0<I<=N。依照本专利技术的较佳实施例所述的,当第J个执行周期等于最大公因数时,将第J个以后的执行程序更延迟1单位预设时间。在实施例中,预设时间为一单位时间且单位时间为1毫秒。本专利技术因利用预设时间的延迟,将常驻程序分散开,因此当该处理器必须周期性的处理至少两个执行程序时,可使其不会发生碰撞或插断,进一步的避免系统当机。为让本专利技术的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明图1绘示为本专利技术实施例的流程图。图2为本专利技术图1实施例的执行程序时间图。图3绘示为本专利技术实施例的流程图。图4与图5绘示为图3实施例的执行程序配置图。具体实施方式图1绘示为本专利技术实施例的流程图。图2为本专利技术图1实施例的执行程序时间图。请参考图1,首先,提供第1执行程序以及第2执行程序,其中微控制器每第一周期(例如5ms)执行一次第1执行程序,微控制器每第二周期(例如10ms)执行一次第2执行程序(步骤101)。判断第二周期(10ms)是否会发生第一执行程序与第二执行程序碰撞(步骤102)。当在第二周期(10ms)会发生第一执行程序与第二执行程序碰撞时,将第二程序的执行时间平移一预设时间(例如2ms)执行的(步骤103),例如图2。上述实施例中已经对描绘出了一个可能的型态,以下将举出8个执行程序的实施例以便本
者能轻易施行本专利技术。图3绘示为本专利技术实施例的流程图。图4与图5绘示为图3实施例的执行程序配置图。首先提供8个执行程序,微控制器用以处理8个执行程序,上述8个执行程序分别是每5ms执行一次的第1执行程序、每10ms执行一次的第2执行程序、每20ms执行一次的第3执行程序、每50ms执行一次的第4执行程序、每100ms执行一次的第5执行程序、每300ms执行一次的第6执行程序、每500ms执行的一次第7执行程序、每1000ms执行一次的第8程序执行(步骤301)。上述8个执行程序分别对应8个执行周期,上述8个执行周期具有一最大公因数为3000ms。判断上述8个执行周期的最小公倍数时间是否会发生执行程序碰撞(步骤302)。当8个执行周期的最小公倍数时间会发生执行程序碰撞时,将第I个执行程序延后I倍的预设时间执行(步骤303)。例如第1执行程序延迟1ms,第2执行程序延迟2ms等等,此时的执行程序配置。接下来判断上述8个执行程序的延迟时间是否等于最大公因数的倍数(步骤304)。当判断出第6执行程序延迟5ms恰好等于延迟程序时,将第6~8执行程序各延迟1ms(步骤305),此时第6执行程序延迟6ms、第7执行程序延迟7ms、第8延迟程序延迟8ms,如此便可避开执行程序的碰撞。综上所述,本专利技术因利用预设时间的延迟,将常驻程序分散开,因此当该处理器必须周期性的处理至少两个执行程序时,可使其不会发生碰撞或插断,进一步的避免系统当机。虽然本专利技术已以较佳实施例揭露如上,然其并非用以限定本专利技术,任何熟习此技艺者,在不脱离本专利技术的精神和范围内,当可作些许的更动与润饰,因此本专利技术的保护范围当视后附的申请专利范围所界定者为准。权利要求1.一种,包括提供至少一第一执行程序以及一第二执行程序,其中该微控制器每一第一周期执行一次该第一执行程序,该微控制器每一第二周期执行一次该第二执行程序,其中该第一周期小于第二周期;以及当在第二周期会发生第一执行程序与第二执行程序碰撞时,将该第二程序的执行时间平移一预设时间执行之。2.根据权利要求1所述的,其特征在于,该微控制器用以处理N个执行程序,该些N个执行程序分别对应N个执行周期,该些N个执行周期具有一最大公因数,且第K个执行周期小于第K+1个执行周期,N、K为自然数,0<K<=N。3.根据权利要求2所述的,其特征在于,当该些N个执行周期的最小公倍数时间会发生该些执行程序碰撞时,将第I个执行程序延后I倍的预设时间执行,I为自然数且0<I<=N。4.根据权利要求3所述的,当第J个执行周期所延后的J倍的预设时间等于该最大公因数时,将该第J个以后的执行程序更延迟1预设时间,J为自然数且0<J<=N。5.根据权利要求4所述的,其特征在于,该预设时间为一单位时间。6.根据权利要求1所述的,其特征在于,该单位时间为1毫秒。全文摘要一种,此方法包括提供至少一第一执行程序以及一第二执行程序,其中微控制器每一第一周期执行一次第一执行程序,微控制器每一第二周期执行一次第二执行程序,其中第一周期小于第二周期;当在第二周期会发生第一执行程序与第二执行程序碰撞时,将该第二程序的执行时间平移一预设时间执行之。文档编号G06F9/46GK101093451SQ20061009562公开日2007年12月26日 申请日期2本文档来自技高网
...

【技术保护点】
一种避免微控制器执行程序碰撞的方法,包括:提供至少一第一执行程序以及一第二执行程序,其中该微控制器每一第一周期执行一次该第一执行程序,该微控制器每一第二周期执行一次该第二执行程序,其中该第一周期小于第二周期;以及当在第二周期 会发生第一执行程序与第二执行程序碰撞时,将该第二程序的执行时间平移一预设时间执行之。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈农铠
申请(专利权)人:纬创资通股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1