微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 大家看一下这两个语句有区别吗?

大家看一下这两个语句有区别吗?

时间:10-02 整理:3721RD 点击:
while (1)
        {
           if(i<=1080*n) /*脉冲数*/
              {                        
         
                CLK1=!CLK1;
                for(m=0;m<30;m++)
                     {
                           ;
                     }
                CLK1=!CLK1;
                    DelayMS(1);
                                i++;
               }
                     
          }
/////////////////////////////////////////////////////
while(i<=1080*n)/*脉冲数*/
                         {
                
         
                CLK=!CLK;
                for(m=0;m<30;m++)
                     {
                           ;
                     }
                CLK=!CLK;
                    DelayMS(1);
                                i++;
                     
                    }

用while(1)就是死循环;
用while(i<=1080*n),只要i一直累加,就有可能满足i>1080*n,这时while(i<=1080*n)为假,就跳出while()循环了

楼上的说得对
发脉冲最好使用定时器中断来做,频率更稳定

可是我调试的结果正好相反呀

不可能正好相反的,
看下定义i的类型,1080*n这个数有可能很大,i不论怎么累加也没有超过1080*n这个数,比如你把i定义为char的类型

可是我让i<4按第二个语句结果也是停不下来

那基本和while(1)没区别,只要n大于0

我是大学新生,很喜欢电子设计,望大家多多指点。

一楼讲得不错,新手学习了

int i;
while(n--)
{
    i=1080;
    while(i--)
   {
        .
   }
}
你的代码效率太低下了。

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

网站地图

Top