注册 登录
编程论坛 单片机编程

有段程序想请教各位

修缘314 发布于 2016-09-13 20:46, 2359 次点击
     while(1)
     {
         if((hongwaizuo==0)&&(hongwaiyou!=0))
         {
              delayxms(2);
              if((hongwaizuo==0)&&(hongwaiyou!=0))
              {
            
              a=40;
              delayxms(30);
              a=46;
              delayxms(30);
            
              }
        while(hongwaizuo!=0)
          {
                  delayxms(30);
                a=33;
              };   
          }
这段程序中的a=40,a=46只要if中的条件满足就会一直循环,怎样能让他满足时只循环一次呢??
4 回复
#2
hu9jj2016-09-14 07:49
以下是引用修缘314在2016-9-13 20:46:30的发言:

     while(1)
     {
         if((hongwaizuo==0)&&(hongwaiyou!=0))
         {
              delayxms(2);
              if((hongwaizuo==0)&&(hongwaiyou!=0))
              {
            
              a=40;
              delayxms(30);
              a=46;
              delayxms(30);
            
              }
        while(hongwaizuo!=0)
          {
                  delayxms(30);
                a=33;
              };   
          }
这段程序中的a=40,a=46只要if中的条件满足就会一直循环,怎样能让他满足时只循环一次呢??

试试:
 while(1)
 {
     if((hongwaizuo==0)&&(hongwaiyou!=0))
     {
          delayxms(2);
          if((hongwaizuo==0)&&(hongwaiyou!=0))
          {
              a=40;
              delayxms(30);
              a=46;
              delayxms(30);
          }
          delayxms(30);
          a=33;
      }
#3
修缘3142016-09-14 16:48
回复 2楼 hu9jj
试过,这样会循环那三个
#4
hu9jj2016-09-14 19:38
不明白,你是想这些代码仅执行一次,不重复执行吗?将这些代码移到while(1)之前就行啊。
#5
修缘3142016-09-14 20:50
回复 4楼 hu9jj
恩恩,已经解决了,谢谢你
1