IRMP
Menuconfig
│ │ Load a Default Configuration ---> │ │ General Setup ---> │ │ [*] Status LEDs ---> │ │ [*] Status LED (Received) │ │ [-] RFM12 RX │ │ [ ] ZBUS RX │ │ [*] IRMP RX │ │ I/O ---> │ │ [*] IR Receivers ---> │ │ [*] IRMP IR ---> │ │ [*] Receive IR-codes │ │ [*] Send IR-codes │ │ [*] IRMP ecmd │ │ --- Protocols │ │ [ ] SIRCS │ │ [ ] NEC │ │ [ ] JVC │ │ [ ] SAMSUNG │ │ [ ] MATSUSHITA │ │ [ ] KASEIKYO │ │ [*] DENON │ │ [ ] RECS80 │ │ [ ] RECS80EXT │ │ [*] RC5(X) │ │ [ ] RC6 │ │ [ ] NUBERT │ │ [ ] BANG&OLUFSEN │ │ [*] GRUNDIG │ │ [ ] NOKIA │ │ [ ] SIEMENS │ │ [ ] FDC │ │ [ ] RCCAR │ │ [ ] NIKON │ │ --- Debugging Flags │ │ [ ] IRMP Debug
Infos
Testcpu: m644
Board: etherrape
(vorsicht, protokoll ist dezimal, adresse hexadezimal in der ausgabe)
Modifikationen
Datei: pinning/hardware/etherrape.m4
ifdef(`conf_IRMP', `dnl
pin(IRMP_RX, PD2)
#define IRMP_USE_TIMER2
#define IRMP_RX_LOW_ACTIVE
#undef IRMP_RX_LED_LOW_ACTIVE
pin(IRMP_TX, PD7) dnl OC2/OC2A
#undef IRMP_TX_LED_LOW_ACTIVE
')
Control6 Scripte
Funktion: Via IR tasten die stella kanäle steuern. anfang 0 bis 255, kein überlauf wenn 255 erreicht. –> http://paste2.org/p/1181590
oder
C6_HEADER(`/* This will be in control6.h */')
CONTROL_START
THREAD(blink)
ON IRMP_READ > 0 DO
if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0268)
{
PIN_SET(LED1);
break;
}
if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0068)
{
PIN_CLEAR(LED1);
break;
}
END
THREAD_END(blink)
THREAD_START(blink)
CONTROL_END
oder
C6_HEADER(`/* This will be in control6.h */') CONTROL_START THREAD(blink) ON IRMP_READ > 0 DO if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0268) ESEND(192.168.123.51, "channel 0 255 f\n"); if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002 && IRMP_COMMAND==0x0068) ESEND(192.168.123.51, "channel 0 0 f\n"); END THREAD_END(blink) THREAD_START(blink) CONTROL_END
oder (nicht getestet)
ON IRMP_READ>0 DO
if(IRMP_PROTOCOL==meinprotokoll && IRMP_ADDRESS==0xmeineadresse) switch(IRMP_COMMAND)
{
case 0x268:
PIN_TOGGLE(pin_irgendwas);
break;
}
END
Steuern von Stella/Pins durch IR-Zeichen
C6_HEADER(`/* This will be in control6.h */')
#include "services/stella/stella.h"
CONTROL_START
THREAD(control_stella)
ON IRMP_READ > 0 DO
if(IRMP_PROTOCOL==8 && IRMP_ADDRESS==0x0002)
{
switch(IRMP_COMMAND)
{
case 0x0268:
stella_setValue(STELLA_SET_IMMEDIATELY, 0, 255);
break;
case 0x0068:
stella_setValue(STELLA_SET_IMMEDIATELY, 0, 0);
break;
}
}
END
THREAD_END(control_stella)
ON STARTUP DO
THREAD_START(control_stella);
END
CONTROL_END
Das Script schaltet den Stella Channel 0 auf 255 oder auf 0, die Fernbedienung ist hier eine Denon (Protocol 8). Mit include wurde dem Script der Zugriff auf die Stellasourcen gestattet.
Statt „stella_setValue(STELLA_SET_IMMEDIATELY, 0, 255);“ kann auch „PIN_SET(LED)“ und „PIN_CLEAR(LED)“ verwendet werden (Named_PIN|Named PIN).