单片机执行一条for语句的时间
比如一个delay的函数:Voiddelay(inti){intj;for(;i>0;i--)for(j=0;j=100;j++);}那么对于i=1这个Delay延迟多久...
比如一个delay的函数:
Void delay(int i)
{
int j;
for(;i>0;i--)
for(j=0;j=100;j++);
}
那么对于i=1这个Delay延迟多久,有看到其他地方一条语句是1us,但是这样的话这个函数应该才100us,而书上是个1ms的延迟...
主频12Mhz,为什么会是1ms 展开
Void delay(int i)
{
int j;
for(;i>0;i--)
for(j=0;j=100;j++);
}
那么对于i=1这个Delay延迟多久,有看到其他地方一条语句是1us,但是这样的话这个函数应该才100us,而书上是个1ms的延迟...
主频12Mhz,为什么会是1ms 展开
展开全部
你理解错汇编语言 和 C 语言 一条语句执行时间的意思。汇编语言一部分指令,执行一次确实是1US,但C语言不是,C语言的语句不是等价于汇编语言的,C语言的每条语句可能等价于汇编语言的好几句。换算关系不是简单的看有几条语句。精确的C延时都是汇编写个小延时,用C在外面嵌套即可。
1MS 是因为你把这个函数反汇编的代码,一个 for 循环不是一个语句,是有几条语句执行的。C 和 汇编 语句不是等价的,要不然大家都直接用C,汇编高效率的优势早就不存在了。
1MS 是因为你把这个函数反汇编的代码,一个 for 循环不是一个语句,是有几条语句执行的。C 和 汇编 语句不是等价的,要不然大家都直接用C,汇编高效率的优势早就不存在了。
展开全部
一条for语句执行时间为10us。
for语句的一般格式为:for(表达式1;表达式2;表达式3){循环体语句;}
for语句的执行步骤是:先求表达式1的值并作为变量的初值,再判断表达式2是否满足条件,若为真则执行循环体语句,最后执行表达式3对变量进行修正,再判断表达式2是否满足条件,这样直到表达式2的条件不满足时退出循环。
for语句的一般格式为:for(表达式1;表达式2;表达式3){循环体语句;}
for语句的执行步骤是:先求表达式1的值并作为变量的初值,再判断表达式2是否满足条件,若为真则执行循环体语句,最后执行表达式3对变量进行修正,再判断表达式2是否满足条件,这样直到表达式2的条件不满足时退出循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个跟单片机的主频有很大关系,普通的51编译后大致是1ms左右
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在DEBUG里面看看反汇编的代码~~在那里计算时间。每条汇编指令的时候看书。
一般51都是用KEIL。先仔细看看keil的用法。
一般51都是用KEIL。先仔细看看keil的用法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可据我所知执行一条for语句用时3us
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询