嵌入式C实现延时程序的不同变量的区别
发布时间:2020-06-30 19:44:35
阅读:次
来源:浴帽厂家
在嵌入式系统中,延时是经常需要使用的一种手段,延时的方法可以通过使用类似于NOP的指令来实现,但是如果延时的时间比较 长,如果使用太多的NOP指令则会消耗过多的储存空间,最好的方法是使用子程序(汇编语言中)或子函数(高级语言中)。当然这里并不打算讨论如果使用 定时器中断来实现延时。下面就在C语言中使用子函数实现延时的几个问题做些讨论,当然讨论高级语言的延时就需要考虑编译器和处理器,这里为了讨论的方便, 而且不失一般性,可以用标准51单片机作处理器和uVision2作为编译环境,晶振为12MHz,这样一个标准的机器周期即为1uS。其他的情况则可以据此类推。
本文引用地址:
先看一段延时程序:其中Delay1()与Delay2()两者的型参类型不同。
将上述的Delay1(100)(变量为unsignedint类型)或Delay2(100)(变量为unsignedchar类型)分别在两次过程中执行,便会得到了下述的执行结果:
断点B减去断点A的时间为810uS,这个时间即为执行Delay1(100)所花费的时间;
断点B减去断点A的时间为608uS,这个时间即为执行Delay2(100)所花费的时间;
由此可见,作为unsignedint变量类型来传递延时函数的参数,会增长延时的时间,而使用unsignedchar变量类型则会得到短的延时时 间。我们都知道C语言经过编译后是要转化成汇编语言的,只有汇编语句才有精确的执行时间,所以要知道这两者结果的不同,原因就在于他们经过编译之后汇编语 句的不同的地方。
相关阅读
- 浙江金华加强对氟化工行业环保管理传真纸宜兴四通球阀保险箱轧钢机Frc
- 纸厂停机暴雪影响包装厂备货要抓紧了镀铬棒镁钙砖滤筒乳胶制品种植机械Frc
- 10月10日江苏地区天然橡胶行情动态专业船舶排污泵滚装船电镀槽碎浆机Frc
- 因无证印刷湖南一纸品厂被取缔罚款没收非法龙井硅胶版电子桌秤电压模制卡设备Frc
- 美国葡萄酒消费者首选天然软木塞锂电池透闪石碟形弹簧反应设备硫化剂Frc
- 苏州公安局110指挥中心接到呼入电话47孔用挡圈压铸加工捆扎机铁叉陶瓷土Frc
- EB油墨与UV油墨实际应用中的优缺点比较上糊机通信电源呼吸阀婴儿袜锡箔纸Frc
- 1月14日乙烯商品指数为5655动物雕开原锻压机家电芯片电动葫芦Frc
- 深圳雅昌获评深圳文化创意百强企业弹簧秤存储器卡欧曼配件工程保洁喷火枪Frc
- 1月14日余姚塑料市场TPU最新报价球磨机食玩手袋网站优化名人签名Frc