这个C++延时函数怎样理解

2020-02-02 09:39发布

下面这个延时函数怎么看呢?求解
void delay()
{
long int bl1;
int bl2;
for(bl1=655356;bl1>0;bl1--)
        {
        for(bl2=410;bl2>0;bl2--);
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
40条回答
lindabell
1楼-- · 2020-02-02 14:54
这个二重循环,第一重循环执行655356次 for(bl2=410;bl2>0;bl2--);
总共执行的次数为655356*410次__nop_()指令
其实就是让CPU一直什么也不干(或让CPU一直执行_nop_()指令)

以上不是重点,重点是你的头像很像我的一个同学,是本人吗?
takashiki
2楼-- · 2020-02-02 18:40
这个函数的分析不是重点,重点是内容。

你既然发在51分区,那我就认为这是在51上跑的。
这个函数延时一次需要几天完成,啥也不干就等着老去,只能说练功过于聚精会神,心无旁骛,已经打通了任督二脉,脑袋里有开水声了。
李鸿鸿
3楼-- · 2020-02-02 23:13
lindabell 发表于 2012-9-10 14:05
这个二重循环,第一重循环执行655356次 for(bl2=410;bl2>0;bl2--);
总共执行的次数为655356*410次__nop_() ...

谢谢了!不是本人吧,你看错了。
李鸿鸿
4楼-- · 2020-02-03 04:01
 精彩回答 2  元偷偷看……
takashiki
5楼-- · 2020-02-03 04:30
李鸿鸿 发表于 2012-9-10 18:04
要几天才能完成?我等几秒就过去了,这是怎么一会事?

我的意思是,这个函数不合理。那么多的时间都在这里空转浪费了,什么也干不了了。如果单片机实在是闲的没事干,还不如降低时钟频率响应一下“低碳”的号召呢。当然了,如果你是为了在这里死等以饿死看门狗的话,当我没说好了。

长时间延时不要使用软件延时,还是使用定时器的好。
gyzzg2030
6楼-- · 2020-02-03 04:52
楼主可能不会定时器延时

一周热门 更多>