6161#elif  defined(__AVR_ATmega8P__ ) ||  defined(__AVR_ATmega8__ )
6262  #define  IR_USE_TIMER1    // tx = pin 9 
6363
64- #elif  defined( __AVR_ATtinyX4__  )
65-   #define  IR_USE_TIMER1    // tx = pin 6 
66- 
6764// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc 
6865#else 
6966  //#define IR_USE_TIMER1   // tx = pin 9 
9390// Pulse parms are *50-100 for the Mark and *50+100 for the space 
9491// First MARK is the one after the long gap 
9592// 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
107104#define  SONY_RPT_LENGTH  45000
108105#define  SONY_DOUBLE_SPACE_USECS   500  // usually ssee 713 - not using ticks as get number wrapround
109106
110107// 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  
114111#define  SANYO_ZERO_MARK  700 //  seen 700
115112#define  SANYO_DOUBLE_SPACE_USECS   800  // usually ssee 713 - not using ticks as get number wrapround
116113#define  SANYO_RPT_LENGTH  45000
117114
118115// Mitsubishi RM 75501 
119116// 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  
120117
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
124121#define  MITSUBISHI_ZERO_MARK   750 // 17*50-100
125122// #define MITSUBISHI_DOUBLE_SPACE_USECS  800  // usually ssee 713 - not using ticks as get number wrapround 
126123// #define MITSUBISHI_RPT_LENGTH 45000 
127124
128125
129- #define  RC5_T1      889
130- #define  RC5_RPT_LENGTH    46000
126+ #define  RC5_T1 		 889
127+ #define  RC5_RPT_LENGTH 	 46000
131128
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
136133
137134#define  SHARP_BIT_MARK  245
138135#define  SHARP_ONE_SPACE  1805
162159#define  JVC_ZERO_SPACE  550
163160#define  JVC_RPT_LENGTH  60000
164161
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+ 
165170#define  SHARP_BITS  15
166171#define  DISH_BITS  16
167172
175180#define  TICKS_LOW (us ) (int) (((us)*LTOL/USECPERTICK))
176181#define  TICKS_HIGH (us ) (int) (((us)*UTOL/USECPERTICK + 1))
177182
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- 
185183// receiver states 
186184#define  STATE_IDLE      2
187185#define  STATE_MARK      3
@@ -216,6 +214,7 @@ extern volatile irparams_t irparams;
216214#define  MIN_RC6_SAMPLES  1
217215#define  PANASONIC_BITS  48
218216#define  JVC_BITS  16
217+ #define  SAMSUNG_BITS  32
219218
220219
221220
@@ -274,13 +273,7 @@ extern volatile irparams_t irparams;
274273  #define  TIMER_ENABLE_INTR     (TIMSK1 = _BV(OCIE1A))
275274  #define  TIMER_DISABLE_INTR    (TIMSK1 = 0)
276275#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
284277#define  TIMER_CONFIG_KHZ (val ) ({ \
285278  const uint16_t pwmval = SYSCLOCK / 2000 / (val); \
286279  TCCR1A = _BV(WGM11); \
@@ -300,8 +293,6 @@ extern volatile irparams_t irparams;
300293#define  TIMER_PWM_PIN         11  /* Arduino Mega */ 
301294#elif  defined(__AVR_ATmega644P__ ) ||  defined(__AVR_ATmega644__ )
302295#define  TIMER_PWM_PIN         13 /* Sanguino */ 
303- #elif  defined(__AVR_ATtinyX4__ )
304- #define  TIMER_PWM_PIN         6 /* ATTiny84 */ 
305296#else 
306297#define  TIMER_PWM_PIN         9  /* Arduino Duemilanove, Diecimila, LilyPad, etc */ 
307298#endif 
0 commit comments