I want to get 4 different values from an Infraredreceiver
. Each call to the function IRNumbers
should wait for an signal. But when it gets the first value, it continues and do not stop at the while-loop
. It only uses the first value three more times..
Here is my code:
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;
}
I do not know why the while-loop
doesn't stop. I tried clearing the buffer too. But it did nothing useful.
I believe you need to call irrecv.resume() before you attempt to read the next value. For example:
int IRNumbers(int i) {
char number;
while (!irrecv.decode( & results));
irrecv.resume();
switch (results.value) {
case 16738455:
number = '0';
break;
...