有关延时程序while和for语句的选用

2019-07-15 20:18发布

     我在编写四线四拍步进电机的程序时,在调解电机转动大的速度时,即用延时程序调节速度,
用while语句电机转动的很慢,而用for就很好了,下面是我的两个不同例子:
while延时:
void Speed(uint s)                           
{
     int j;
  for(j=0; j <= 100; j++)
   while(s--);
}

for延时
void Speed(uint s)
{
     int i,j;
  for(j=0; j <= s; j++)
   for(i =0 ; i <= 100; i++);
}
这到底是while与for语句执行时间有关还是什么其他原因,差别这么大呢??

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
z00
1楼-- · 2019-07-15 22:51
这两段代码明显不能进行相比
while循环可以和以下代码进行对比
For(I=0;I<100;I++)
For(;s>0;s--);
低调~小营长
2楼-- · 2019-07-16 04:07
对啊。。。但你能够告诉我的问题吗?用while语句为什么电机转得很慢,单片机在读没一条指令所花的时间是一样的,麻烦你说的清楚点
k331922164
3楼-- · 2019-07-16 08:15
 精彩回答 2  元偷偷看……
Jack315
4楼-- · 2019-07-16 08:39
延时程序最好用定时器来实现,因为用循环的方法的话,延时的时间与很多因素有关:
- 时钟频率
- (C) 代码的实现和编译优化
- 中断
- 。。。
依然落叶飘零
5楼-- · 2019-07-16 12:38
明显是延时的时间不一样。你用keil模拟仿真一下,看看两个函数的运行时间就清楚了。

一周热门 更多>