61
61
#elif defined(__AVR_ATmega8P__ ) || defined(__AVR_ATmega8__ )
62
62
#define IR_USE_TIMER1 // tx = pin 9
63
63
64
- #elif defined( __AVR_ATtinyX4__ )
65
- #define IR_USE_TIMER1 // tx = pin 6
66
-
67
64
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
68
65
#else
69
66
//#define IR_USE_TIMER1 // tx = pin 9
93
90
// Pulse parms are *50-100 for the Mark and *50+100 for the space
94
91
// First MARK is the one after the long gap
95
92
// pulse parameters in usec
96
- #define NEC_HDR_MARK 9000
97
- #define NEC_HDR_SPACE 4500
98
- #define NEC_BIT_MARK 560
99
- #define NEC_ONE_SPACE 1600
100
- #define NEC_ZERO_SPACE 560
101
- #define NEC_RPT_SPACE 2250
102
-
103
- #define SONY_HDR_MARK 2400
104
- #define SONY_HDR_SPACE 600
105
- #define SONY_ONE_MARK 1200
106
- #define SONY_ZERO_MARK 600
93
+ #define NEC_HDR_MARK 9000
94
+ #define NEC_HDR_SPACE 4500
95
+ #define NEC_BIT_MARK 560
96
+ #define NEC_ONE_SPACE 1600
97
+ #define NEC_ZERO_SPACE 560
98
+ #define NEC_RPT_SPACE 2250
99
+
100
+ #define SONY_HDR_MARK 2400
101
+ #define SONY_HDR_SPACE 600
102
+ #define SONY_ONE_MARK 1200
103
+ #define SONY_ZERO_MARK 600
107
104
#define SONY_RPT_LENGTH 45000
108
105
#define SONY_DOUBLE_SPACE_USECS 500 // usually ssee 713 - not using ticks as get number wrapround
109
106
110
107
// SA 8650B
111
- #define SANYO_HDR_MARK 3500 // seen range 3500
112
- #define SANYO_HDR_SPACE 950 // seen 950
113
- #define SANYO_ONE_MARK 2400 // seen 2400
108
+ #define SANYO_HDR_MARK 3500 // seen range 3500
109
+ #define SANYO_HDR_SPACE 950 // seen 950
110
+ #define SANYO_ONE_MARK 2400 // seen 2400
114
111
#define SANYO_ZERO_MARK 700 // seen 700
115
112
#define SANYO_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround
116
113
#define SANYO_RPT_LENGTH 45000
117
114
118
115
// Mitsubishi RM 75501
119
116
// 14200 7 41 7 42 7 42 7 17 7 17 7 18 7 41 7 18 7 17 7 17 7 18 7 41 8 17 7 17 7 18 7 17 7
120
117
121
- // #define MITSUBISHI_HDR_MARK 250 // seen range 3500
122
- #define MITSUBISHI_HDR_SPACE 350 // 7*50+100
123
- #define MITSUBISHI_ONE_MARK 1950 // 41*50-100
118
+ // #define MITSUBISHI_HDR_MARK 250 // seen range 3500
119
+ #define MITSUBISHI_HDR_SPACE 350 // 7*50+100
120
+ #define MITSUBISHI_ONE_MARK 1950 // 41*50-100
124
121
#define MITSUBISHI_ZERO_MARK 750 // 17*50-100
125
122
// #define MITSUBISHI_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround
126
123
// #define MITSUBISHI_RPT_LENGTH 45000
127
124
128
125
129
- #define RC5_T1 889
130
- #define RC5_RPT_LENGTH 46000
126
+ #define RC5_T1 889
127
+ #define RC5_RPT_LENGTH 46000
131
128
132
- #define RC6_HDR_MARK 2666
133
- #define RC6_HDR_SPACE 889
134
- #define RC6_T1 444
135
- #define RC6_RPT_LENGTH 46000
129
+ #define RC6_HDR_MARK 2666
130
+ #define RC6_HDR_SPACE 889
131
+ #define RC6_T1 444
132
+ #define RC6_RPT_LENGTH 46000
136
133
137
134
#define SHARP_BIT_MARK 245
138
135
#define SHARP_ONE_SPACE 1805
162
159
#define JVC_ZERO_SPACE 550
163
160
#define JVC_RPT_LENGTH 60000
164
161
162
+ #define SAMSUNG_HDR_MARK 5000
163
+ #define SAMSUNG_HDR_SPACE 5000
164
+ #define SAMSUNG_BIT_MARK 560
165
+ #define SAMSUNG_ONE_SPACE 1600
166
+ #define SAMSUNG_ZERO_SPACE 560
167
+ #define SAMSUNG_RPT_SPACE 2250
168
+
169
+
165
170
#define SHARP_BITS 15
166
171
#define DISH_BITS 16
167
172
175
180
#define TICKS_LOW (us ) (int) (((us)*LTOL/USECPERTICK))
176
181
#define TICKS_HIGH (us ) (int) (((us)*UTOL/USECPERTICK + 1))
177
182
178
- #ifndef DEBUG
179
- int MATCH (int measured , int desired ) {return measured >= TICKS_LOW (desired ) && measured <= TICKS_HIGH (desired );}
180
- int MATCH_MARK (int measured_ticks , int desired_us ) {return MATCH (measured_ticks , (desired_us + MARK_EXCESS ));}
181
- int MATCH_SPACE (int measured_ticks , int desired_us ) {return MATCH (measured_ticks , (desired_us - MARK_EXCESS ));}
182
- // Debugging versions are in IRremote.cpp
183
- #endif
184
-
185
183
// receiver states
186
184
#define STATE_IDLE 2
187
185
#define STATE_MARK 3
@@ -216,6 +214,7 @@ extern volatile irparams_t irparams;
216
214
#define MIN_RC6_SAMPLES 1
217
215
#define PANASONIC_BITS 48
218
216
#define JVC_BITS 16
217
+ #define SAMSUNG_BITS 32
219
218
220
219
221
220
@@ -274,13 +273,7 @@ extern volatile irparams_t irparams;
274
273
#define TIMER_ENABLE_INTR (TIMSK1 = _BV(OCIE1A))
275
274
#define TIMER_DISABLE_INTR (TIMSK1 = 0)
276
275
#endif
277
-
278
- #if defined(__AVR_ATtinyX4__ )
279
- #define TIMER_INTR_NAME TIM1_COMPA_vect
280
- #else
281
- #define TIMER_INTR_NAME TIMER1_COMPA_vect
282
- #endif
283
-
276
+ #define TIMER_INTR_NAME TIMER1_COMPA_vect
284
277
#define TIMER_CONFIG_KHZ (val ) ({ \
285
278
const uint16_t pwmval = SYSCLOCK / 2000 / (val); \
286
279
TCCR1A = _BV(WGM11); \
@@ -300,8 +293,6 @@ extern volatile irparams_t irparams;
300
293
#define TIMER_PWM_PIN 11 /* Arduino Mega */
301
294
#elif defined(__AVR_ATmega644P__ ) || defined(__AVR_ATmega644__ )
302
295
#define TIMER_PWM_PIN 13 /* Sanguino */
303
- #elif defined(__AVR_ATtinyX4__ )
304
- #define TIMER_PWM_PIN 6 /* ATTiny84 */
305
296
#else
306
297
#define TIMER_PWM_PIN 9 /* Arduino Duemilanove, Diecimila, LilyPad, etc */
307
298
#endif
0 commit comments