我想从Infraredreceiver
获得4个不同的值。每次调用函数IRNumbers
都应该等待一个信号。但是当它获得第一个值时,它会继续并且不会停留在while-loop
。它只使用第一个值三次..
这是我的代码:
int IRNumbers(int i) {
char number;
while (!irrecv.decode( & results));
switch (results.value) {
case 16738455:
number = '0';
break;
case 16724175:
number = '1';
break;
case 16718055:
number = '2';
break;
...
default:
IRNumbers(i);
break;
}
return number;
}
我不知道为什么while-loop
没有停止。我也尝试清除缓冲区。但它没有任何用处。
答案 0 :(得分:0)
我相信你需要在尝试读取下一个值之前调用irrecv.resume()。例如:
int IRNumbers(int i) {
char number;
while (!irrecv.decode( & results));
irrecv.resume();
switch (results.value) {
case 16738455:
number = '0';
break;
...