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?
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;
}
}