微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 延时函数的时间

延时函数的时间

时间:10-02 整理:3721RD 点击:
     请问这个函数,调用之后延时多长时间?

void delay()
{
;  ;
}

第一:你没告诉我们你的晶振多大
第二:你没有告诉我们你用的是什么单片机
不同的单片机对于延时计算式不一样的,51的有51的算法,AVR有AVR的机器周期和时间算法。

这是两个_nop_()      

希望大神计算下?

哦,不好意思:
晶振:12Mhz
单片机:STC89C52Rc

谢谢了!

4us吧,进入函数和出函数用了2us,执行两个指令又2us。不过我不确定,建议你keil仿真下。

首先给出结论,该函数延时长度为4个机器周期,(12M晶振等于4us)。从两个方面来验证。
方法一:keil调试,如图一,图二。


                          图一


                 图二

方法二:分析反汇编指令,如图三,图四。


                  图三


                  图四

路过瞅瞅大神的回答

用软件调试可以看出来,c语言中不同语句执行时间是不一样的

第一:你没告诉我们你的晶振多大
第二:你没有告诉我们你用的是什么单片机
不同的单片机对于延时计算式不一样的,51的有51的算法,AVR有AVR的机器周期和时间算法。

就是微秒级的延时,通常没有必要仔细计算具体时间,要算的话就大概是4微妙吧。

嗯,受教了。

路过瞅瞅大神的回答

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top