嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍

在嵌入式系统中,延时是经常需要使用的一种手段,延时的方法可以通过使用类似于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语言经过编译后是要转化成汇编语言的,只有汇编语句才有精确的执行时间,所以要知道这两者结果的不同,原因就在于他们经过编译之后汇编语句的不同的地方。

iPhone8涨到1000美元你就怕了?小米6不卖1999元才可怕
QML加载模块 WebView 与C++代码通信控制WebView模块的隐藏与显示
科技部支持北京建设国家新一代人工智能创新发展
变频器应该如何选型?_如何给电机选择合适变频器_变频器使用注意事项
Adobe正式公布:今年12月31日终止支持Flash
嵌入式C实现延时程序的不同变量的区别 几种Linux嵌入式开发环境的简单介绍
视频转换IC广泛应用于工控电脑、一体机、广告机等市场
在目前后PC时代,DRAM不再由标准型DRAM主导
航空连接器插头的作用性能_航空连接器插头使用注意事项
续航打折缩水其实只因这些技术不到位
五种降低微控制器能耗的技术
软通动力亮相2023世界物联网博览会 与无锡深化战略合作
隧道LED照明技术见证大国交通发展,三思陶瓷散热技术强势突围
嵌入式工控机在工业机器人中的应用
MATLAB如何实现图像增强灰度变换直方图均衡匹配
用人脸识别技术防未成年人沉迷游戏,可行吗?看专家怎么说
iPhone8即将发布,创新不再,价格令人担忧,这是你要的iphone8吗?
中国联通正式启用OSS融合通信系统进行扩容
参与和见证金航标kinghelm公司2022年突飞猛进发展
华为侯金龙:让云无处不在,让智能无所不及