C语言延时问题

2019-07-15 12:09发布

各位好,
现在在学习单总线编程,在时序上要求比较严格,我想问一下,
int i=10;
1.while(i--)  ;
2.for(i=0;i>0;i++)  ;
以上两个语句的延时是多少?
我觉得是 while 需要两个机器周期,所以时间为:2us*10=20us;
for()需要三个机器周期,故时间为3us*10=30us
请懂得的朋友指导一下,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
liujinyi016
1楼-- · 2019-07-15 16:00
看C语言是不怎么能看出来的,你还是要看生成的汇编了。
而汇编又与你的编译器相关。所以这个要自己在硬件上进行实验 最佳答案
houjue
2楼-- · 2019-07-15 16:51
这个可以用软件仿真得到啊,你可以试一试。
wufa1986
3楼-- · 2019-07-15 21:54
需要精确延时要用定时器,代码根据不同编译器结果不一样,更要命的是有些编译器重新编译结果不一样
blust
4楼-- · 2019-07-16 01:02
楼上说的都很到位,需要精确延时的话还是硬延时,即定时器;软延时只适用于一些对延时精度要求很低的情况,比如液晶初始化时延时1s左右等待初始化完成,这个情况差个几毫秒几十毫秒都不影响的,可以用软延时,不占用定时器资源。
守护初心
5楼-- · 2019-07-16 06:52
 精彩回答 2  元偷偷看……
守护初心
6楼-- · 2019-07-16 07:41
houjue 发表于 2017-1-8 10:01
这个可以用软件仿真得到啊,你可以试一试。

恩,好的

一周热门 更多>