|
252 | 252 | # define TIMER_PWM_PIN CORE_OC1A_PIN // Teensy |
253 | 253 | #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) |
254 | 254 | # define TIMER_PWM_PIN 11 // Arduino Mega |
255 | | -#elif |
256 | 255 | #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) \ |
257 | 256 | || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) \ |
258 | 257 | || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) \ |
|
261 | 260 | || defined(__AVR_ATmega16__) || defined(__AVR_ATmega8535__) \ |
262 | 261 | || defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__) |
263 | 262 | # define TIMER_PWM_PIN 13 // MightyCore, // MegaCore |
264 | | -#elif defined(__AVR_ATtiny84__) || |
| 263 | +#elif defined(__AVR_ATtiny84__) |
265 | 264 | # define TIMER_PWM_PIN 6 |
266 | 265 | #else |
267 | 266 | # define TIMER_PWM_PIN 9 // Arduino Duemilanove, Diecimila, LilyPad, Sparkfun Pro Micro etc |
|
311 | 310 | #elif defined(IR_USE_TIMER4_HS) |
312 | 311 |
|
313 | 312 | #define TIMER_RESET |
314 | | -#define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) |
315 | | -#define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) |
| 313 | + |
| 314 | +#if defined(ARDUINO_AVR_PROMICRO) // Sparkfun Pro Micro |
| 315 | + #define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A0)) // Use complimentary O̅C̅4̅A̅ output on pin 5 |
| 316 | + #define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A0))) // (Pro Micro does not map PC7 (32/ICP3/CLK0/OC4A) |
| 317 | + // of ATmega32U4 ) |
| 318 | +#else |
| 319 | + #define TIMER_ENABLE_PWM (TCCR4A |= _BV(COM4A1)) |
| 320 | + #define TIMER_DISABLE_PWM (TCCR4A &= ~(_BV(COM4A1))) |
| 321 | +#endif |
| 322 | + |
316 | 323 | #define TIMER_ENABLE_INTR (TIMSK4 = _BV(TOIE4)) |
317 | 324 | #define TIMER_DISABLE_INTR (TIMSK4 = 0) |
318 | 325 | #define TIMER_INTR_NAME TIMER4_OVF_vect |
319 | 326 |
|
| 327 | + |
320 | 328 | #define TIMER_CONFIG_KHZ(val) ({ \ |
321 | 329 | const uint16_t pwmval = SYSCLOCK / 2000 / (val); \ |
322 | 330 | TCCR4A = (1<<PWM4A); \ |
|
0 commit comments