0

我正在使用 CCS 编译器,对于这段代码,我得到了一个警告,即条件始终为真。这是 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;
     }
}
4

1 回答 1

1

循环条件始终为真。该警告并不意味着您的循环不可能退出,只是不能通过其测试条件。

当 input(sut1) 返回 true 时,您将进入一个在 input 返回 false 之前什么都不做的循环,然后您将跳出外部循环并退出 read_keypad()

于 2013-04-13T10:06:10.063 回答