2013-04-13 3 views
0

저는 CCS 컴파일러를 사용하고 있으며이 코드는 조건이 항상 참임을 경고합니다. 이 코드는 PIC16F877 용 코드이므로 입력이 1이면 루프에서 벗어나야합니다. 내가 여기서 뭔가를 놓치고 있니?while 루프 항상 true 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

루프 조건은 항상 true입니다. 이 경고는 테스트 조건을 통해서가 아니라 루프가 종료 될 수 없다는 것을 의미하지는 않습니다.

입력 (sut1)는, 당신은 당신의 외부 루프에서 깨고 종료된다 read_keypad()

+0

좋아 아, 그래서 탈옥 것입니다 당신이 입력 false를 반환 할 때까지 아무것도하지 않는 루프를 입력 true를 반환하는 경우 실제로 입력이 1 일 때 루프가 발생합니다. 감사합니다. – serpence

+0

input()이 true를 반환하면 false가 반환되어 루프에서 빠져 나와 함수를 종료합니다. – Joshua