~~NOTOC~~
====== 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).