[发明专利]一种在单片机系统中实现高精度延时的方法有效
申请号: | 201710096343.6 | 申请日: | 2017-02-22 |
公开(公告)号: | CN106933535B | 公开(公告)日: | 2019-11-26 |
发明(设计)人: | 赵进云;谢纯珀 | 申请(专利权)人: | 福建魔方电子科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 35212 福州市鼓楼区京华专利事务所(普通合伙) | 代理人: | 林云娇<国际申请>=<国际公布>=<进入 |
地址: | 350000 福建省福州*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供一种在单片机系统中实现高精度延时的方法,所述方法为:所述单片机系统内设置有一定时器,所述定时器配置成超时时间为T,基于这个周期性的定时器,获得单位时间T内,单片机所能执行的加减法次数CPU_CNT;所述次数CPU_CNT按位来确定,先确定CPU_CNT最高为1的位,然后依次从高到低的确定每位的值;获得单位时间T内能执行多少次加法或减法运算之后,在单片机系统延时函数中把延时时间转换成对应的加法或减法次数便可实现精确延时。本发明实现通用的,灵活的,低成本的高精度软件延时功能。 | ||
搜索关键词: | 一种 单片机 系统 实现 高精度 延时 方法 | ||
【主权项】:
1.一种在单片机系统中实现高精度延时的方法,其特征在于:所述方法为:所述单片机系统内设置有一定时器,所述定时器配置成超时时间为T的周期性的定时器,/n基于这个周期性的定时器,每次开机的时候获得单位时间T内,单片机所能执行的加法或减法次数CPU_CNT;所述次数CPU_CNT按位来确定,先确定CPU_CNT最高为1的位,然后依次从高到低的确定每位的值;/n获得单位时间T内能执行多少次加法或减法运算之后关闭定时器挪作它用,在单片机系统延时函数中把延时时间转换成对应的加法或减法次数以实现精确延时;/n所述方法中所述次数CPU_CNT按位来确定,先确定CPU_CNT最高为1的位具体为:步骤10、在单片机系统的定时器中断处理函数中用变量TIMER_CNT表示对超过T时间次数的计数,每计数一次表示时间流逝T;/n步骤11、给定一初始值CPU_COUNT,该CPU_COUNT表示初始时假设的单位时间T内处理器能执行的加法或减法次数,/n步骤12、将CPU_COUNT左移一位,即CPU_COUNT=CPU_COUNT<<1/n步骤13、定时器开始一个新的计时周期时,即TIMER_CNT发生变化时,保存TIMER_CNT当前的值,然后执行CPU_COUNT次减法或加法运算;/n步骤14、将步骤13中保存的TIMER_CNT的值,与经过减法或加法运算后TIMER_CNT的值进行比较,如果两个值相同,则CPU_COUNT偏小,跳转到步骤12执行;如果当前值大于之前步骤13保存的值,则CPU_COUNT偏大,把CPU_COUNT右移一位,即CPU_COUNT=CPU_COUNT>>1;这时便确定了最高有效位;/n为提高系统启动速度,减少计算CPU_CNT的时间,其中,用CPU_CNT_PREC表示CPU_COUNT的高有效位位数,也就是CPU_COUNT只从最高有效位开始的CPU_CNT_PREC位有效,剩下的低位不用计算都被忽略置为0,这样再进行确定CPU_CNT最高为1的位,然后依次从高到低的确定每位的值就提高了效率。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建魔方电子科技有限公司,未经福建魔方电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710096343.6/,转载请声明来源钻瓜专利网。