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
@@ -209,6 +214,7 @@ extern volatile irparams_t irparams;
209214#define  MIN_RC6_SAMPLES  1
210215#define  PANASONIC_BITS  48
211216#define  JVC_BITS  16
217+ #define  SAMSUNG_BITS  32
212218
213219
214220
@@ -267,13 +273,7 @@ extern volatile irparams_t irparams;
267273  #define  TIMER_ENABLE_INTR     (TIMSK1 = _BV(OCIE1A))
268274  #define  TIMER_DISABLE_INTR    (TIMSK1 = 0)
269275#endif 
270- 
271- #if  defined(__AVR_ATtinyX4__ )
272-   #define  TIMER_INTR_NAME       TIM1_COMPA_vect
273- #else 
274-   #define  TIMER_INTR_NAME       TIMER1_COMPA_vect
275- #endif 
276- 
276+ #define  TIMER_INTR_NAME       TIMER1_COMPA_vect
277277#define  TIMER_CONFIG_KHZ (val ) ({ \
278278  const uint16_t pwmval = SYSCLOCK / 2000 / (val); \
279279  TCCR1A = _BV(WGM11); \
@@ -293,8 +293,6 @@ extern volatile irparams_t irparams;
293293#define  TIMER_PWM_PIN         11  /* Arduino Mega */ 
294294#elif  defined(__AVR_ATmega644P__ ) ||  defined(__AVR_ATmega644__ )
295295#define  TIMER_PWM_PIN         13 /* Sanguino */ 
296- #elif  defined(__AVR_ATtinyX4__ )
297- #define  TIMER_PWM_PIN         6 /* ATTiny84 */ 
298296#else 
299297#define  TIMER_PWM_PIN         9  /* Arduino Duemilanove, Diecimila, LilyPad, etc */ 
300298#endif 
0 commit comments