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
+
64
67
// Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, etc
65
68
#else
66
69
//#define IR_USE_TIMER1 // tx = pin 9
90
93
// Pulse parms are *50-100 for the Mark and *50+100 for the space
91
94
// First MARK is the one after the long gap
92
95
// 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
104
107
#define SONY_RPT_LENGTH 45000
105
108
#define SONY_DOUBLE_SPACE_USECS 500 // usually ssee 713 - not using ticks as get number wrapround
106
109
107
110
// 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
111
114
#define SANYO_ZERO_MARK 700 // seen 700
112
115
#define SANYO_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround
113
116
#define SANYO_RPT_LENGTH 45000
114
117
115
118
// Mitsubishi RM 75501
116
119
// 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
117
120
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
121
124
#define MITSUBISHI_ZERO_MARK 750 // 17*50-100
122
125
// #define MITSUBISHI_DOUBLE_SPACE_USECS 800 // usually ssee 713 - not using ticks as get number wrapround
123
126
// #define MITSUBISHI_RPT_LENGTH 45000
124
127
125
128
126
- #define RC5_T1 889
127
- #define RC5_RPT_LENGTH 46000
129
+ #define RC5_T1 889
130
+ #define RC5_RPT_LENGTH 46000
128
131
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
133
136
134
137
#define SHARP_BIT_MARK 245
135
138
#define SHARP_ONE_SPACE 1805
@@ -271,7 +274,13 @@ extern volatile irparams_t irparams;
271
274
#define TIMER_ENABLE_INTR (TIMSK1 = _BV(OCIE1A))
272
275
#define TIMER_DISABLE_INTR (TIMSK1 = 0)
273
276
#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
+
275
284
#define TIMER_CONFIG_KHZ (val ) ({ \
276
285
const uint16_t pwmval = SYSCLOCK / 2000 / (val); \
277
286
TCCR1A = _BV(WGM11); \
@@ -291,6 +300,8 @@ extern volatile irparams_t irparams;
291
300
#define TIMER_PWM_PIN 11 /* Arduino Mega */
292
301
#elif defined(__AVR_ATmega644P__ ) || defined(__AVR_ATmega644__ )
293
302
#define TIMER_PWM_PIN 13 /* Sanguino */
303
+ #elif defined(__AVR_ATtinyX4__ )
304
+ #define TIMER_PWM_PIN 6 /* ATTiny84 */
294
305
#else
295
306
#define TIMER_PWM_PIN 9 /* Arduino Duemilanove, Diecimila, LilyPad, etc */
296
307
#endif
0 commit comments