aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino
diff options
context:
space:
mode:
authorZach Eveland <zeveland@blacklabel-development.com>2011-09-16 16:36:42 -0400
committerZach Eveland <zeveland@blacklabel-development.com>2011-09-16 16:36:42 -0400
commit5bbe2a63e48ec3057322167a3a6745a66f0c8941 (patch)
tree89b3476bd48922f7c727ed4de4121bbb0c8160ad /cores/arduino
parentd3a8346007edfce585b8daf146a319e6a0d2bbee (diff)
added support for TIMER4D used for PWM on Leonardo and Micro D6
Diffstat (limited to 'cores/arduino')
-rwxr-xr-xcores/arduino/Arduino.h7
-rw-r--r--cores/arduino/wiring_analog.c8
2 files changed, 12 insertions, 3 deletions
diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h
index ebdbe9a..7f2fc05 100755
--- a/cores/arduino/Arduino.h
+++ b/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/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c
index 62b91cf..2b1f3a0 100644
--- a/cores/arduino/wiring_analog.c
+++ b/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: