Ich reagiere auf Code der Fernbedienung. Das funktioniert auch gut.
Wenn ich mit
undCode:uint8_t getTaste(void) { uint8_t FB_TASTE = 0; irco_update(); gfx_move(0,0); gfx_print_text("RC5: "); uint8_t REMOTE_CODE = LOBYTE(irco_rc5_cmd); gfx_move(30,0); print_hex(HIBYTE(irco_rc5_cmd)); //erster Druck: 0x38 zweiter Druck: 0x30 (für zweistellige Zahlen) print_hex(REMOTE_CODE); // Fernbedienung Einstellung: TV1, 023 switch(REMOTE_CODE) { case 0x01: //1 (Ziffernblock der Fernbedienung) FB_TASTE = 1; break; case 0x02: //2 FB_TASTE = 2; break; case 0x03: //3 FB_TASTE = 3; break; case 0x04: //4 FB_TASTE = 4; break; case 0x05: //5 FB_TASTE = 5; break; case 0x06: //6 FB_TASTE = 6; break; case 0x07: //7 FB_TASTE = 7; break; case 0x08: //8 FB_TASTE = 8; break; case 0x09: //9 FB_TASTE = 9; break; case 0x00: //0 FB_TASTE = 0; break; case 0x20: //CH+ (Sonstige Tasten der Fernbedienung) FB_TASTE = 10; break; case 0x21: //CH- FB_TASTE = 11; break; case 0x10: //VOL+ FB_TASTE = 12; break; case 0x11: //VOL- FB_TASTE = 13; break; case 0x0d: //LOUDSPEAKER OFF (green) FB_TASTE = 14; break; case 0x0c: //ON/OFF (red) FB_TASTE = 15; break; case 0x29: //PAUSE FB_TASTE = 16; break; case 0x36: //STOP FB_TASTE = 17; break; case 0x32: //RECORD (red point) FB_TASTE = 18; break; case 0x3c: //REWIND (red) FB_TASTE = 19; break; case 0x3f: //PLAY (yellow) FB_TASTE = 20; break; case 0x2b: //FAST-FORWARD (blue) FB_TASTE = 21; break; case 0x0b: //OK (green) FB_TASTE = 22; break; case 0x37: //SCREEN2 FB_TASTE = 23; break; case 0x34: //SCREEN4 FB_TASTE = 24; break; } return FB_TASTE; }
in einer Endlos-while(1)-Schleife auf einen Tastendruck reagiere, wie kann ich das Signal/den RC5-Code auf einen Wert ohne Funktion zurücksetzen, damit es nicht bis zum Extremwert durchläuft? Geht das überhaupt?Code:// Fernbedienung abfragen FB_TASTE = getTaste(); textout(20,56," ",0); gfx_move(20,56); print_hex(FB_TASTE); // Reaktion auf Taste switch(FB_TASTE) { case 12: //VOL+ SPEEDFACTOR++; if(SPEEDFACTOR>MAXSPEEDFACTOR) SPEEDFACTOR = MAXSPEEDFACTOR; break; case 13: //VOL- if(SPEEDFACTOR>0) SPEEDFACTOR--; break; }







Zitieren
Lesezeichen