我正在使用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;
}
}
答案 0 :(得分:1)
循环条件始终为真。这个警告并不意味着你的循环不可能退出,只是没有通过它的测试条件。
当输入(sut1)返回true时,你输入一个循环,在输入返回false之前什么都不做,然后你打破了你的外循环并退出read_keypad()