Skip to content

Commit 46b4e10

Browse files
committed
Merge pull request Arduino-IRremote#34 from joshuajnoble/master
adding Attiny84 for Arduino Tiny
2 parents 3f70ad2 + e22a691 commit 46b4e10

File tree

1 file changed

+35
-24
lines changed

1 file changed

+35
-24
lines changed

IRremoteInt.h

+35-24
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@
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+
6467
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
6568
#else
6669
//#define IR_USE_TIMER1 // tx = pin 9
@@ -90,46 +93,46 @@
9093
// Pulse parms are *50-100 for the Mark and *50+100 for the space
9194
// First MARK is the one after the long gap
9295
// pulse parameters in usec
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
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
104107
#define SONY_RPT_LENGTH 45000
105108
#define SONY_DOUBLE_SPACE_USECS 500 // usually ssee 713 - not using ticks as get number wrapround
106109

107110
// SA 8650B
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
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
111114
#define SANYO_ZERO_MARK 700 // seen 700
112115
#define SANYO_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround
113116
#define SANYO_RPT_LENGTH 45000
114117

115118
// Mitsubishi RM 75501
116119
// 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
117120

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
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
121124
#define MITSUBISHI_ZERO_MARK 750 // 17*50-100
122125
// #define MITSUBISHI_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround
123126
// #define MITSUBISHI_RPT_LENGTH 45000
124127

125128

126-
#define RC5_T1 889
127-
#define RC5_RPT_LENGTH 46000
129+
#define RC5_T1 889
130+
#define RC5_RPT_LENGTH 46000
128131

129-
#define RC6_HDR_MARK 2666
130-
#define RC6_HDR_SPACE 889
131-
#define RC6_T1 444
132-
#define RC6_RPT_LENGTH 46000
132+
#define RC6_HDR_MARK 2666
133+
#define RC6_HDR_SPACE 889
134+
#define RC6_T1 444
135+
#define RC6_RPT_LENGTH 46000
133136

134137
#define SHARP_BIT_MARK 245
135138
#define SHARP_ONE_SPACE 1805
@@ -271,7 +274,13 @@ extern volatile irparams_t irparams;
271274
#define TIMER_ENABLE_INTR (TIMSK1 = _BV(OCIE1A))
272275
#define TIMER_DISABLE_INTR (TIMSK1 = 0)
273276
#endif
274-
#define TIMER_INTR_NAME TIMER1_COMPA_vect
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+
275284
#define TIMER_CONFIG_KHZ(val) ({ \
276285
const uint16_t pwmval = SYSCLOCK / 2000 / (val); \
277286
TCCR1A = _BV(WGM11); \
@@ -291,6 +300,8 @@ extern volatile irparams_t irparams;
291300
#define TIMER_PWM_PIN 11 /* Arduino Mega */
292301
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__)
293302
#define TIMER_PWM_PIN 13 /* Sanguino */
303+
#elif defined(__AVR_ATtinyX4__)
304+
#define TIMER_PWM_PIN 6 /* ATTiny84 */
294305
#else
295306
#define TIMER_PWM_PIN 9 /* Arduino Duemilanove, Diecimila, LilyPad, etc */
296307
#endif

0 commit comments

Comments
 (0)