而循环总是真正的CCS

时间:2013-04-13 10:02:22

标签: c pic

我正在使用CCS编译器,并且为这段代码发出警告,条件始终为true。这是PIC16F877的代码,因此当输入为1时,它应该突破循环。我在这里错过了什么吗?

int read_keypad()
{
   int value=0;
   while(1)
   {
     UpButton=0;                  // In case of bad Input
     DownButton=0;
     RightButton=0;
     LeftButton=0;
     EnterButton=0;

     output_high(sat1); 
     if (input(sut1)) 
     {    
       value=1;
       while(input(sut1));
       break;
     }
}

1 个答案:

答案 0 :(得分:1)

循环条件始终为真。这个警告并不意味着你的循环不可能退出,只是没有通过它的测试条件。

当输入(sut1)返回true时,你输入一个循环,在输入返回false之前什么都不做,然后你打破了你的外循环并退出read_keypad()