Subversion Repositories Projects

Rev

Rev 838 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 838 Rev 903
1
/*---------------------------------------------------------------------------------------------------------------------------------------------------
1
/*---------------------------------------------------------------------------------------------------------------------------------------------------
2
 * irmpconfig.h
2
 * irmpconfig.h
3
 *
3
 *
4
 * Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de
4
 * Copyright (c) 2010 Frank Meyer - frank(at)fli4l.de
5
 *
5
 *
6
 * $Id: irmpconfig.h,v 1.43 2010/11/10 08:01:46 fm Exp $
6
 * $Id: irmpconfig.h,v 1.47 2011/01/18 13:02:15 fm Exp $
7
 *
7
 *
8
 * ATMEGA88 @ 8 MHz
8
 * ATMEGA88 @ 8 MHz
9
 *
9
 *
10
 * This program is free software; you can redistribute it and/or modify
10
 * This program is free software; you can redistribute it and/or modify
11
 * it under the terms of the GNU General Public License as published by
11
 * it under the terms of the GNU General Public License as published by
12
 * the Free Software Foundation; either version 2 of the License, or
12
 * the Free Software Foundation; either version 2 of the License, or
13
 * (at your option) any later version.
13
 * (at your option) any later version.
14
 *---------------------------------------------------------------------------------------------------------------------------------------------------
14
 *---------------------------------------------------------------------------------------------------------------------------------------------------
15
 */
15
 */
16
 
16
 
17
#ifndef _IRMPCONFIG_H_
17
#ifndef _IRMPCONFIG_H_
18
#define _IRMPCONFIG_H_
18
#define _IRMPCONFIG_H_
19
 
19
 
20
/*---------------------------------------------------------------------------------------------------------------------------------------------------
20
/*---------------------------------------------------------------------------------------------------------------------------------------------------
21
 * Change F_INTERRUPTS if you change the number of interrupts per second,
21
 * Change F_INTERRUPTS if you change the number of interrupts per second,
22
 * Normally, F_INTERRUPTS should be in the range from 10000 to 15000.
22
 * Normally, F_INTERRUPTS should be in the range from 10000 to 15000.
23
 * A value above 15000 costs additional program space, absolut maximum value is 20000.
23
 * A value above 15000 costs additional program space, absolut maximum value is 20000.
24
 *---------------------------------------------------------------------------------------------------------------------------------------------------
24
 *---------------------------------------------------------------------------------------------------------------------------------------------------
25
 */
25
 */
26
#ifndef F_INTERRUPTS
26
#ifndef F_INTERRUPTS
27
#define F_INTERRUPTS                            20000   // interrupts per second, min: 10000, max: 20000
27
#define F_INTERRUPTS                            20000   // interrupts per second, min: 10000, max: 20000
28
#endif
28
#endif
29
 
29
 
30
/*---------------------------------------------------------------------------------------------------------------------------------------------------
30
/*---------------------------------------------------------------------------------------------------------------------------------------------------
31
 * Change settings from 1 to 0 if you want to disable one or more decoders.
31
 * Change settings from 1 to 0 if you want to disable one or more decoders.
32
 * This saves program space.
32
 * This saves program space.
33
 *
33
 *
34
 * 1 enable  decoder
34
 * 1 enable  decoder
35
 * 0 disable decoder
35
 * 0 disable decoder
36
 *
36
 *
37
 * The standard decoders are enabled per default.
37
 * The standard decoders are enabled per default.
38
 * Some less common protocols are disabled here, you need to enable them manually.
38
 * Some less common protocols are disabled here, you need to enable them manually.
39
 *
39
 *
40
 * If you want to use FDC or RCCAR simultaneous with RC5 protocol, additional program space is required.
40
 * If you want to use FDC or RCCAR simultaneous with RC5 protocol, additional program space is required.
41
 * If you don't need RC5 when using FDC/RCCAR, you should disable RC5.
41
 * If you don't need RC5 when using FDC/RCCAR, you should disable RC5.
42
 *---------------------------------------------------------------------------------------------------------------------------------------------------
42
 *---------------------------------------------------------------------------------------------------------------------------------------------------
43
 */
43
 */
44
 
44
 
45
//      Protocol                                Enable  Remarks                 F_INTERRUPTS            Program Space
45
//      Protocol                                Enable  Remarks                 F_INTERRUPTS            Program Space
46
#define IRMP_SUPPORT_SIRCS_PROTOCOL             1       // Sony SIRCS           >= 10000                 ~100 bytes
46
#define IRMP_SUPPORT_SIRCS_PROTOCOL             1       // Sony SIRCS           >= 10000                 ~100 bytes
47
#define IRMP_SUPPORT_NEC_PROTOCOL               1       // NEC + APPLE          >= 10000                 ~250 bytes
47
#define IRMP_SUPPORT_NEC_PROTOCOL               1       // NEC + APPLE          >= 10000                 ~250 bytes
48
#define IRMP_SUPPORT_SAMSUNG_PROTOCOL           1       // Samsung + Samsung32  >= 10000                 ~250 bytes
48
#define IRMP_SUPPORT_SAMSUNG_PROTOCOL           1       // Samsung + Samsung32  >= 10000                 ~250 bytes
49
#define IRMP_SUPPORT_MATSUSHITA_PROTOCOL        0       // Matsushita           >= 10000                  ~50 bytes
49
#define IRMP_SUPPORT_MATSUSHITA_PROTOCOL        0       // Matsushita           >= 10000                  ~50 bytes
50
#define IRMP_SUPPORT_KASEIKYO_PROTOCOL          1       // Kaseikyo             >= 10000                 ~250 bytes
50
#define IRMP_SUPPORT_KASEIKYO_PROTOCOL          1       // Kaseikyo             >= 10000                 ~250 bytes
51
#define IRMP_SUPPORT_DENON_PROTOCOL             0       // DENON                >= 10000                 ~250 bytes
51
#define IRMP_SUPPORT_DENON_PROTOCOL             0       // DENON, Sharp         >= 10000                 ~250 bytes
52
#define IRMP_SUPPORT_JVC_PROTOCOL               1       // JVC                  >= 10000                 ~250 bytes
52
#define IRMP_SUPPORT_JVC_PROTOCOL               1       // JVC                  >= 10000                 ~250 bytes
53
#define IRMP_SUPPORT_RC5_PROTOCOL               1       // RC5                  >= 10000                 ~250 bytes
53
#define IRMP_SUPPORT_RC5_PROTOCOL               1       // RC5                  >= 10000                 ~250 bytes
54
#define IRMP_SUPPORT_RC6_PROTOCOL               0       // RC6 & RC6A           >= 10000                 ~200 bytes
54
#define IRMP_SUPPORT_RC6_PROTOCOL               0       // RC6 & RC6A           >= 10000                 ~200 bytes
55
#define IRMP_SUPPORT_GRUNDIG_PROTOCOL           1       // Grundig              >= 10000                 ~150 bytes
55
#define IRMP_SUPPORT_GRUNDIG_PROTOCOL           1       // Grundig              >= 10000                 ~150 bytes
56
#define IRMP_SUPPORT_NOKIA_PROTOCOL             1       // Nokia                >= 10000                 ~150 bytes
56
#define IRMP_SUPPORT_NOKIA_PROTOCOL             0       // Nokia                >= 10000                 ~150 bytes
57
#define IRMP_SUPPORT_NUBERT_PROTOCOL            0       // NUBERT               >= 10000                  ~50 bytes
57
#define IRMP_SUPPORT_NUBERT_PROTOCOL            0       // NUBERT               >= 10000                  ~50 bytes
58
#define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL      0       // Bang & Olufsen       >= 10000                 ~200 bytes
58
#define IRMP_SUPPORT_BANG_OLUFSEN_PROTOCOL      0       // Bang & Olufsen       >= 10000                 ~200 bytes
59
#define IRMP_SUPPORT_NIKON_PROTOCOL             1       // NIKON                >= 10000                 ~250 bytes
59
#define IRMP_SUPPORT_NIKON_PROTOCOL             1       // NIKON                >= 10000                 ~250 bytes
60
#define IRMP_SUPPORT_FDC_PROTOCOL               0       // FDC3402 keyboard     >= 10000 (better 15000)   ~50 bytes (~400 in combination with RC5)
60
#define IRMP_SUPPORT_FDC_PROTOCOL               0       // FDC3402 keyboard     >= 10000 (better 15000)   ~50 bytes (~400 in combination with RC5)
61
#define IRMP_SUPPORT_RCCAR_PROTOCOL             0       // RC Car               >= 10000 (better 15000)  ~150 bytes (~500 in combination with RC5)
61
#define IRMP_SUPPORT_RCCAR_PROTOCOL             0       // RC Car               >= 10000 (better 15000)  ~150 bytes (~500 in combination with RC5)
62
#define IRMP_SUPPORT_SIEMENS_PROTOCOL           0       // Siemens Gigaset      >= 15000                 ~150 bytes
62
#define IRMP_SUPPORT_SIEMENS_PROTOCOL           0       // Siemens Gigaset      >= 15000                 ~150 bytes
63
#define IRMP_SUPPORT_RECS80_PROTOCOL            1       // RECS80               >= 20000                  ~50 bytes
63
#define IRMP_SUPPORT_RECS80_PROTOCOL            1       // RECS80               >= 20000                  ~50 bytes
64
#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         1       // RECS80EXT            >= 20000                  ~50 bytes
64
#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         1       // RECS80EXT            >= 20000                  ~50 bytes
65
 
65
 
66
/*---------------------------------------------------------------------------------------------------------------------------------------------------
66
/*---------------------------------------------------------------------------------------------------------------------------------------------------
67
 * Change hardware pin here:
67
 * Change hardware pin here:
68
 *---------------------------------------------------------------------------------------------------------------------------------------------------
68
 *---------------------------------------------------------------------------------------------------------------------------------------------------
69
 */
69
 */
70
#ifdef PIC_CCS_COMPILER                                 // PIC CCS Compiler:
70
#ifdef PIC_CCS_COMPILER                                 // PIC CCS Compiler:
71
 
71
 
72
#define IRMP_PIN                                PIN_B4  // use PB4 as IR input on PIC
72
#define IRMP_PIN                                PIN_B4  // use PB4 as IR input on PIC
73
 
73
 
74
#else                                                   // AVR:
74
#else                                                   // AVR:
75
 
75
 
76
#define IRMP_PORT                               PORTD
76
#define IRMP_PORT                               PORTD
77
#define IRMP_DDR                                DDRD
77
#define IRMP_DDR                                DDRD
78
#define IRMP_PIN                                PIND
78
#define IRMP_PIN                                PIND
79
#define IRMP_BIT                                6       // use PD6 as IR input on AVR
79
#define IRMP_BIT                                6       // use PD6 as IR input on AVR
80
 
80
 
81
#define input(x)                                ((x) & (1 << IRMP_BIT))
81
#define input(x)                                ((x) & (1 << IRMP_BIT))
82
#endif
82
#endif
83
 
83
 
84
/*---------------------------------------------------------------------------------------------------------------------------------------------------
84
/*---------------------------------------------------------------------------------------------------------------------------------------------------
85
 * Set IRMP_LOGGING to 1 if want to log data to UART with 9600Bd
85
 * Set IRMP_LOGGING to 1 if want to log data to UART with 9600Bd
86
 *---------------------------------------------------------------------------------------------------------------------------------------------------
86
 *---------------------------------------------------------------------------------------------------------------------------------------------------
87
 */
87
 */
88
#ifndef IRMP_LOGGING
88
#ifndef IRMP_LOGGING
89
#define IRMP_LOGGING                            0       // 1: log IR signal (scan), 0: do not (default)
89
#define IRMP_LOGGING                            0       // 1: log IR signal (scan), 0: do not (default)
90
#endif
90
#endif
91
 
91
 
92
#if IRMP_SUPPORT_SIEMENS_PROTOCOL == 1 && F_INTERRUPTS < 15000
92
#if IRMP_SUPPORT_SIEMENS_PROTOCOL == 1 && F_INTERRUPTS < 15000
93
#warning F_INTERRUPTS too low, SIEMENS protocol disabled (should be at least 15000)
93
#warning F_INTERRUPTS too low, SIEMENS protocol disabled (should be at least 15000)
94
#undef IRMP_SUPPORT_SIEMENS_PROTOCOL
94
#undef IRMP_SUPPORT_SIEMENS_PROTOCOL
95
#define IRMP_SUPPORT_SIEMENS_PROTOCOL           0
95
#define IRMP_SUPPORT_SIEMENS_PROTOCOL           0
96
#endif
96
#endif
97
 
97
 
98
#if IRMP_SUPPORT_RECS80_PROTOCOL == 1 && F_INTERRUPTS < 20000
98
#if IRMP_SUPPORT_RECS80_PROTOCOL == 1 && F_INTERRUPTS < 20000
99
#warning F_INTERRUPTS too low, RECS80 protocol disabled (should be at least 20000)
99
#warning F_INTERRUPTS too low, RECS80 protocol disabled (should be at least 20000)
100
#undef IRMP_SUPPORT_RECS80_PROTOCOL
100
#undef IRMP_SUPPORT_RECS80_PROTOCOL
101
#define IRMP_SUPPORT_RECS80_PROTOCOL            0
101
#define IRMP_SUPPORT_RECS80_PROTOCOL            0
102
#endif
102
#endif
103
 
103
 
104
#if IRMP_SUPPORT_RECS80EXT_PROTOCOL == 1 && F_INTERRUPTS < 20000
104
#if IRMP_SUPPORT_RECS80EXT_PROTOCOL == 1 && F_INTERRUPTS < 20000
105
#warning F_INTERRUPTS too low, RECS80EXT protocol disabled (should be at least 20000)
105
#warning F_INTERRUPTS too low, RECS80EXT protocol disabled (should be at least 20000)
106
#undef IRMP_SUPPORT_RECS80EXT_PROTOCOL
106
#undef IRMP_SUPPORT_RECS80EXT_PROTOCOL
107
#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         0
107
#define IRMP_SUPPORT_RECS80EXT_PROTOCOL         0
108
#endif
108
#endif
109
 
109
 
110
#if IRMP_SUPPORT_JVC_PROTOCOL == 1 && IRMP_SUPPORT_NEC_PROTOCOL == 0
110
#if IRMP_SUPPORT_JVC_PROTOCOL == 1 && IRMP_SUPPORT_NEC_PROTOCOL == 0
111
#warning JVC protocol needs also NEC protocol, NEC protocol enabled
111
#warning JVC protocol needs also NEC protocol, NEC protocol enabled
112
#undef IRMP_SUPPORT_NEC_PROTOCOL
112
#undef IRMP_SUPPORT_NEC_PROTOCOL
113
#define IRMP_SUPPORT_NEC_PROTOCOL               1
113
#define IRMP_SUPPORT_NEC_PROTOCOL               1
114
#endif
114
#endif
115
 
115
 
116
#endif /* _WC_IRMPCONFIG_H_ */
116
#endif /* _WC_IRMPCONFIG_H_ */
117
 
117