嵌入式C实现延时程序的不同变量的区别

#T#在嵌入式系统中,延时是经常需要使用的一种手段,延时的方法可以通过使用类似于"NOP"的指令来实现,但是如果延时的时间比较长,如果使用太多的"NOP" 指令则会消耗过多的储存空间,最好的方法是使用子程序(汇编语言中)或子函数(高级语言中)。当然这里并不打算讨论如果使用定时器中断来实现延时。下面就在C语言中使用子函数实现延时的几个问题做些讨论,当然讨论高级语言的延时就需要考虑编译器和处理器,这里为了讨论的方便,而且不失一般性,可以用标准51单片机作处理器和uVision2作为编译环境,晶振为12MHz,这样一个标准的机器周期即为1uS。其他的情况则可以据此类推。

创新互联公司服务项目包括贵南网站建设、贵南网站制作、贵南网页制作以及贵南网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,贵南网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到贵南省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

先看一段延时程序:其中Delay1()与Delay2()两者的型参类型不同。

将上述的Delay1(100)(变量为unsigned int 类型)或Delay2(100)(变量为unsigned char  类型)分别在两次过程中执行,便会得到了下述的执行结果:

断点B减去断点A的时间为810uS,这个时间即为执行Delay1(100)所花费的时间;

断点B减去断点A的时间为608uS,这个时间即为执行Delay2(100)所花费的时间;

由此可见,作为unsigned int 变量类型来传递延时函数的参数,会增长延时的时间,而使用unsigned char 变量类型则会得到短的延时时间。我们都知道C语言经过编译后是要转化成汇编语言的,只有汇编语句才有精确的执行时间,所以要知道这两者结果的不同,原因就在于他们经过编译之后汇编语句的不同的地方。

新闻名称:嵌入式C实现延时程序的不同变量的区别
本文来源:http://www.shufengxianlan.com/qtweb/news38/531488.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联