From 30fc9919e138c6bc1b397753127e27ec40326323 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Fri, 16 Sep 2011 16:36:42 -0400 Subject: [PATCH] added support for TIMER4D used for PWM on Leonardo and Micro D6 --- hardware/arduino/cores/arduino/Arduino.h | 7 ++++--- hardware/arduino/cores/arduino/wiring_analog.c | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/hardware/arduino/cores/arduino/Arduino.h b/hardware/arduino/cores/arduino/Arduino.h index ebdbe9a2f..7f2fc0582 100755 --- a/hardware/arduino/cores/arduino/Arduino.h +++ b/hardware/arduino/cores/arduino/Arduino.h @@ -169,9 +169,10 @@ extern const uint8_t PROGMEM digital_pin_to_timer_PGM[]; #define TIMER4A 11 #define TIMER4B 12 #define TIMER4C 13 -#define TIMER5A 14 -#define TIMER5B 15 -#define TIMER5C 16 +#define TIMER4D 14 +#define TIMER5A 15 +#define TIMER5B 16 +#define TIMER5C 17 #ifdef __cplusplus } // extern "C" diff --git a/hardware/arduino/cores/arduino/wiring_analog.c b/hardware/arduino/cores/arduino/wiring_analog.c index 62b91cff7..2b1f3a0a2 100644 --- a/hardware/arduino/cores/arduino/wiring_analog.c +++ b/hardware/arduino/cores/arduino/wiring_analog.c @@ -225,6 +225,14 @@ void analogWrite(uint8_t pin, int val) OCR4C = val; // set pwm duty break; #endif + + #if defined(TCCR4A) && defined(COM4D1) + case TIMER4D: + // connect pwm to pin on timer 4, channel D + sbi(TCCR4A, COM4D1); + OCR4D = val; // set pwm duty + break; + #endif #if defined(TCCR5A) && defined(COM5A1) case TIMER5A: