IR Remotecontrol: Warten auf gültigen Tastendruck

Hallo,

ich sitze gerade hier vor meinem sketch und versuche zu verstehen wieso mein µC in der Warteschleife der IR Empfangsroutine stecken bleibt.
Ich verwende die irremote.h zum Empfangen von Tastendrücken. Dabei will ich nachdem die “SETUP” gedrückt wurde, auf einen weiteren Tastendruck warten. Eine gedrückt gehaltene Taste (REPEATED) muss natürlich auch ausgeschlossen werden. SETUP wird erkannt, aber danach hängt er wohl in der while-Schleife fest. ???

if (irrecv.decode(&results))
{
switch(results.value)
{
case SETUP:
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“Setup Uhrzeit”);
lcd.setCursor(0, 1);
irrecv.resume();
while(!irrecv.decode(&results) && (results.value == REPEATED)); //<-Hier hängt das Programm
Serial.println(results.value,HEX);

Was mach ich falsch? Wie kann man die Abfrage besser gestalten?

Was mach ich falsch?

Du erwartest von uns hellseheriechen Fähigkeiten. Gib uns den gesamten Sketch. Grüße Uwe

Ich hatte die geichen Schwierigkeiten, aber so gehts wenn bei der Initialisierung alles stimmt.

void loop() {
      
  if (irrecv.decode(&results)) {
    
  if (results.value == 0xFF629D){merk=1;}//Taste ^
  if (results.value == 0xFF6897){merk=2;}//Taste 1
  if (results.value == 0xFF9867){merk=3;}//Taste 2
  if (results.value == 0xFFB04F){merk=4;}//Taste 3
  if (results.value == 0xFF30Cf){merk=5;}//Taste 4
  if (results.value == 0xFF18E7){merk=6;}//Taste 5
  if (results.value == 0xFFC23D){merk=7;}//Taste <
  if (results.value == 0xFF22DD){merk=8;}//Taste >
  if (results.value == 0xFFA857){merk=9;}//Taste 8
  if (results.value == 0xFF5AA5){merk=10;}//Taste 9
  if (results.value == 0xFF4AB5){merk=11;}//Taste 0 für Aus
  
    
  if (merk == 1) //TPfeiltaste Hch
{
Was Taste ausführen soll.......
merk=0;

}
}