First release of porting 'Infrared Multiprotocol' library from mikrocontroller.net

Dependents:   IRMP_Receiver

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers irmpconfig.h Source File

irmpconfig.h

00001 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00002  * irmpconfig.h
00003  *
00004  * DO NOT INCLUDE THIS FILE, WILL BE INCLUDED BY IRMP.H!
00005  *
00006  * Copyright (c) 2009-2015 Frank Meyer - frank(at)fli4l.de
00007  * Extensions for PIC 12F1820 W.Strobl 2014-07-20
00008  *
00009  * $Id: irmpconfig.h,v 1.145 2015/11/18 08:27:50 fm Exp $
00010  *
00011  * This program is free software; you can redistribute it and/or modify
00012  * it under the terms of the GNU General Public License as published by
00013  * the Free Software Foundation; either version 2 of the License, or
00014  * (at your option) any later version.
00015  *---------------------------------------------------------------------------------------------------------------------------------------------------
00016  */
00017 
00018 #ifndef _IRMPCONFIG_H_
00019 #define _IRMPCONFIG_H_
00020 
00021 #ifndef _IRMP_H_
00022 #  error please include only irmp.h, not irmpconfig.h
00023 #endif
00024 
00025 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00026  * Change F_INTERRUPTS if you change the number of interrupts per second,
00027  * Normally, F_INTERRUPTS should be in the range from 10000 to 15000, typical is 15000
00028  * A value above 15000 costs additional program space, absolute maximum value is 20000.
00029  * On PIC with XC8/C18 Compiler, use 15151 as the correct value.
00030  *---------------------------------------------------------------------------------------------------------------------------------------------------
00031  */
00032 #ifndef F_INTERRUPTS
00033 #  define F_INTERRUPTS                          15000   // interrupts per second, min: 10000, max: 20000, typ: 15000
00034 #endif
00035 
00036 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00037  * Change settings from 1 to 0 if you want to disable one or more decoders.
00038  * This saves program space.
00039  *
00040  * 1 enable  decoder
00041  * 0 disable decoder
00042  *
00043  * The standard decoders are enabled per default.
00044  * Less common protocols are disabled here, you need to enable them manually.
00045  *
00046  * If you want to use FDC or RCCAR simultaneous with RC5 protocol, additional program space is required.
00047  * If you don't need RC5 when using FDC/RCCAR, you should disable RC5.
00048  * You cannot enable both DENON and RUWIDO, only enable one of them.
00049  *---------------------------------------------------------------------------------------------------------------------------------------------------
00050  */
00051 
00052 // typical protocols, disable here!             Enable  Remarks                 F_INTERRUPTS            Program Space
00053 #define IRMP_SUPPORT_SIRCS_PROTOCOL             1       // Sony SIRCS           >= 10000                 ~150 bytes
00054 #define IRMP_SUPPORT_NEC_PROTOCOL               1       // NEC + APPLE          >= 10000                 ~300 bytes
00055 #define IRMP_SUPPORT_SAMSUNG_PROTOCOL           1       // Samsung + Samsg32    >= 10000                 ~300 bytes
00056 #define IRMP_SUPPORT_KASEIKYO_PROTOCOL          1       // Kaseikyo             >= 10000                 ~250 bytes
00057 
00058 // more protocols, enable here!                 Enable  Remarks                 F_INTERRUPTS            Program Space
00059 #define IRMP_SUPPORT_JVC_PROTOCOL               0       // JVC                  >= 10000                 ~150 bytes
00060 #define IRMP_SUPPORT_NEC16_PROTOCOL             0       // NEC16                >= 10000                 ~100 bytes
00061 #define IRMP_SUPPORT_NEC42_PROTOCOL             0       // NEC42                >= 10000                 ~300 bytes
00062 #define IRMP_SUPPORT_MATSUSHITA_PROTOCOL        0       // Matsushita           >= 10000                  ~50 bytes
00063 #define IRMP_SUPPORT_DENON_PROTOCOL             0       // DENON, Sharp         >= 10000                 ~250 bytes
00064 #define IRMP_SUPPORT_RC5_PROTOCOL               1       // RC5                  >= 10000                 ~250 bytes
00065 #define IRMP_SUPPORT_RC6_PROTOCOL               1       // RC6 & RC6A           >= 10000                 ~250 bytes
00066 #define IRMP_SUPPORT_IR60_PROTOCOL              0       // IR60 (SDA2008)       >= 10000                 ~300 bytes
00067 #define IRMP_SUPPORT_GRUNDIG_PROTOCOL           0       // Grundig              >= 10000                 ~300 bytes
00068 #define IRMP_SUPPORT_SIEMENS_PROTOCOL           0       // Siemens Gigaset      >= 15000                 ~550 bytes
00069 #define IRMP_SUPPORT_NOKIA_PROTOCOL             0       // Nokia                >= 10000                 ~300 bytes
00070 
00071 // exotic protocols, enable here!               Enable  Remarks                 F_INTERRUPTS            Program Space
00072 #define IRMP_SUPPORT_BOSE_PROTOCOL              0       // BOSE                 >= 10000                 ~150 bytes
00073 #define IRMP_SUPPORT_KATHREIN_PROTOCOL          0       // Kathrein             >= 10000                 ~200 bytes
00074 #define IRMP_SUPPORT_NUBERT_PROTOCOL            0       // NUBERT               >= 10000                  ~50 bytes
00075 #define IRMP_SUPPORT_FAN_PROTOCOL               0       // FAN (ventilator)     >= 10000                  ~50 bytes
00076 #define IRMP_SUPPORT_SPEAKER_PROTOCOL           0       // SPEAKER (~NUBERT)    >= 10000                  ~50 bytes
00077 #define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL      0       // Bang & Olufsen       >= 10000                 ~200 bytes
00078 #define IRMP_SUPPORT_RECS80_PROTOCOL            0       // RECS80 (SAA3004)     >= 15000                  ~50 bytes
00079 #define IRMP_SUPPORT_RECS80EXT_PROTOCOL         0       // RECS80EXT (SAA3008)  >= 15000                  ~50 bytes
00080 #define IRMP_SUPPORT_THOMSON_PROTOCOL           0       // Thomson              >= 10000                 ~250 bytes
00081 #define IRMP_SUPPORT_NIKON_PROTOCOL             0       // NIKON camera         >= 10000                 ~250 bytes
00082 #define IRMP_SUPPORT_NETBOX_PROTOCOL            0       // Netbox keyboard      >= 10000                 ~400 bytes (PROTOTYPE!)
00083 #define IRMP_SUPPORT_ORTEK_PROTOCOL             0       // ORTEK (Hama)         >= 10000                 ~150 bytes
00084 #define IRMP_SUPPORT_TELEFUNKEN_PROTOCOL        0       // Telefunken 1560      >= 10000                 ~150 bytes
00085 #define IRMP_SUPPORT_FDC_PROTOCOL               0       // FDC3402 keyboard     >= 10000 (better 15000)  ~150 bytes (~400 in combination with RC5)
00086 #define IRMP_SUPPORT_RCCAR_PROTOCOL             0       // RC Car               >= 10000 (better 15000)  ~150 bytes (~500 in combination with RC5)
00087 #define IRMP_SUPPORT_ROOMBA_PROTOCOL            0       // iRobot Roomba        >= 10000                 ~150 bytes
00088 #define IRMP_SUPPORT_RUWIDO_PROTOCOL            0       // RUWIDO, T-Home       >= 15000                 ~550 bytes
00089 #define IRMP_SUPPORT_A1TVBOX_PROTOCOL           0       // A1 TV BOX            >= 15000 (better 20000)  ~300 bytes
00090 #define IRMP_SUPPORT_LEGO_PROTOCOL              0       // LEGO Power RC        >= 20000                 ~150 bytes
00091 #define IRMP_SUPPORT_RCMM_PROTOCOL              0       // RCMM 12,24, or 32    >= 20000                 ~150 bytes
00092 #define IRMP_SUPPORT_LGAIR_PROTOCOL             0       // LG Air Condition     >= 10000                 ~300 bytes
00093 #define IRMP_SUPPORT_SAMSUNG48_PROTOCOL         0       // Samsung48            >= 10000                 ~100 bytes (SAMSUNG must be enabled!)
00094 #define IRMP_SUPPORT_MERLIN_PROTOCOL            0       // Merlin               >= 15000 (better 20000)  ~300 bytes
00095 #define IRMP_SUPPORT_PENTAX_PROTOCOL            0       // Pentax               >= 10000                 ~150 bytes
00096 #define IRMP_SUPPORT_S100_PROTOCOL              0       // S100                 >= 10000                 ~250 bytes
00097 #define IRMP_SUPPORT_ACP24_PROTOCOL             0       // ACP24                >= 10000                 ~250 bytes
00098 #define IRMP_SUPPORT_TECHNICS_PROTOCOL          0       // TECHNICS             >= 10000                 ~250 bytes
00099 #define IRMP_SUPPORT_PANASONIC_PROTOCOL         0       // PANASONIC Beamer     >= 10000                 ~250 bytes
00100 #define IRMP_SUPPORT_RADIO1_PROTOCOL            0       // RADIO, e.g. TEVION   >= 10000                 ~250 bytes (experimental)
00101 
00102 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00103  * Change hardware pin here for ATMEL ATMega/ATTiny/XMega
00104  *---------------------------------------------------------------------------------------------------------------------------------------------------
00105  */
00106 #if defined (ATMEL_AVR) || defined (__AVR_XMEGA__)                      // use PB6 as IR input on AVR
00107 #  define IRMP_PORT_LETTER                      B
00108 #  define IRMP_BIT_NUMBER                       6
00109 
00110 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00111  * Change hardware pin here for PIC C18 or XC8 compiler
00112  *---------------------------------------------------------------------------------------------------------------------------------------------------
00113  */
00114 #elif defined (PIC_C18)                                                 // use RB4 as IR input on PIC (C18 or XC8 compiler)
00115 #  if defined(__12F1840)
00116 #    define IRMP_PIN                            RA5                     // on 12F1840 with XC8 compiler
00117 #  else
00118 #    define IRMP_PIN                            PORTBbits.RB4           // PIC C18
00119 #  endif
00120 
00121 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00122  * Change hardware pin here for PIC CCS compiler
00123  *---------------------------------------------------------------------------------------------------------------------------------------------------
00124  */
00125 #elif defined (PIC_CCS)
00126 #  define IRMP_PIN                              PIN_B4                  // use PB4 as IR input on PIC (CCS compiler)
00127 
00128 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00129  * Change hardware pin here for ARM STM32
00130  *---------------------------------------------------------------------------------------------------------------------------------------------------
00131  */
00132 #elif defined (ARM_STM32)                                               // use C13 as IR input on STM32
00133 #  define IRMP_PORT_LETTER                      C
00134 #  define IRMP_BIT_NUMBER                       13
00135 
00136 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00137  * Change hardware pin here for Stellaris ARM Cortex M4
00138  *---------------------------------------------------------------------------------------------------------------------------------------------------
00139  */
00140 #elif defined (STELLARIS_ARM_CORTEX_M4)                                 // use B4 as IR input on Stellaris LM4F
00141 #  define IRMP_PORT_LETTER                      B
00142 #  define IRMP_BIT_NUMBER                       4
00143 
00144 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00145  * Change hardware pin here for STM8
00146  *---------------------------------------------------------------------------------------------------------------------------------------------------
00147  */
00148 #elif defined (SDCC_STM8)                                               // use PA1 as IR input on STM8
00149 #  define IRMP_PORT_LETTER                      A
00150 #  define IRMP_BIT_NUMBER                       1
00151 
00152 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00153  * Change hardware pin here for ESP8266
00154  *---------------------------------------------------------------------------------------------------------------------------------------------------
00155  */
00156 #elif defined (__xtensa__) 
00157 #  define IRMP_BIT_NUMBER                       12                      // use GPIO12 (Pin 7 UEXT) on ESP8266-EVB evaluation board
00158 
00159 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00160  * Change hardware pin here for Teensy 3.x with teensyduino gcc compiler
00161  *---------------------------------------------------------------------------------------------------------------------------------------------------
00162  */
00163 #elif defined (TEENSY_ARM_CORTEX_M4)
00164 #  define IRMP_PIN                              1                       // use Digital pin 1 as IR input on Teensy
00165 
00166 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00167  * Handling of unknown target system: DON'T CHANGE
00168  *---------------------------------------------------------------------------------------------------------------------------------------------------
00169  */
00170 #elif defined(__MBED__)
00171 #  define IRMP_PIN                              P0_22                       // use P1_27 on LPC1347
00172 #  define IRMP_PINMODE                          PullUp                      // hardware dependet
00173 #elif !defined (UNIX_OR_WINDOWS)
00174 #  error target system not defined.
00175 #endif
00176 
00177 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00178  * Set IRMP_LOGGING to 1 if want to log data to UART with 9600Bd
00179  *---------------------------------------------------------------------------------------------------------------------------------------------------
00180  */
00181 #ifndef IRMP_LOGGING
00182 #  define IRMP_LOGGING                          0       // 1: log IR signal (scan), 0: do not. default is 0
00183 #endif
00184 
00185 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00186  * Use external logging routines
00187  * If you enable external logging, you have also to enable IRMP_LOGGING above
00188  *---------------------------------------------------------------------------------------------------------------------------------------------------
00189  */
00190 #ifndef IRMP_EXT_LOGGING
00191 #  define IRMP_EXT_LOGGING                      0       // 1: use external logging, 0: do not. default is 0
00192 #endif
00193 
00194 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00195  * Set IRMP_PROTOCOL_NAMES to 1 if want to access protocol names (for logging etc), costs ~300 bytes RAM!
00196  *---------------------------------------------------------------------------------------------------------------------------------------------------
00197  */
00198 #ifndef IRMP_PROTOCOL_NAMES
00199 #  define IRMP_PROTOCOL_NAMES                   1       // 1: access protocol names, 0: do not. default is 0
00200 #endif
00201 
00202 /*---------------------------------------------------------------------------------------------------------------------------------------------------
00203  * Use Callbacks to indicate input signal
00204  *---------------------------------------------------------------------------------------------------------------------------------------------------
00205  */
00206 #ifndef IRMP_USE_CALLBACK
00207 #  define IRMP_USE_CALLBACK                     0       // 1: use callbacks. 0: do not. default is 0
00208 #endif
00209 
00210 #endif // _IRMPCONFIG_H_