2013-04-13 82 views
0

我正在使用CCS編譯器,併爲此段代碼發出警告,說明條件始終爲真。這是PIC16F877的代碼,所以當輸入爲1時,它應該跳出循環。我在這裏錯過了什麼嗎?雖然循環始終爲真CCS

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

循環條件始終爲真。這個警告並不意味着你的循環不可能退出,只是不通過它的測試條件。

當輸入(SUT1)返回true你進入一個循環,什麼也不做,直到輸入返回false,那麼你就打破了你的外循環和退出read_keypad()

+0

哦好,所以它會分解出當輸入爲1時確實循環。謝謝。 – serpence

+0

如果input()返回true,則返回false將跳出循環並退出該函數。 – Joshua