From 6c62732ae1db88734d23c3fd6ccfb7b3663790ab Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Sun, 22 Sep 2019 19:32:42 -0500
Subject: [PATCH] Handle no Timer 3C
---
Marlin/src/HAL/HAL_AVR/fast_pwm.cpp | 39 ++++++++++++++++++-----------
1 file changed, 25 insertions(+), 14 deletions(-)
diff --git a/Marlin/src/HAL/HAL_AVR/fast_pwm.cpp b/Marlin/src/HAL/HAL_AVR/fast_pwm.cpp
index 55ca669a87..282b70de71 100644
--- a/Marlin/src/HAL/HAL_AVR/fast_pwm.cpp
+++ b/Marlin/src/HAL/HAL_AVR/fast_pwm.cpp
@@ -59,8 +59,8 @@ Timer get_pwm_timer(const pin_t pin) {
#ifdef TCCR2
case TIMER2: {
Timer timer = {
- /*TCCRnQ*/ { &TCCR2, nullptr, nullptr},
- /*OCRnQ*/ { (uint16_t*)&OCR2, nullptr, nullptr},
+ /*TCCRnQ*/ { &TCCR2, nullptr, nullptr },
+ /*OCRnQ*/ { (uint16_t*)&OCR2, nullptr, nullptr },
/*ICRn*/ nullptr,
/*n, q*/ 2, 0
};
@@ -70,8 +70,8 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER2A: break; // protect TIMER2A
case TIMER2B: {
Timer timer = {
- /*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr},
- /*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr},
+ /*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr },
+ /*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr },
/*ICRn*/ nullptr,
/*n, q*/ 2, 1
};
@@ -81,8 +81,8 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER2B: ++q;
case TIMER2A: {
Timer timer = {
- /*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr},
- /*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr},
+ /*TCCRnQ*/ { &TCCR2A, &TCCR2B, nullptr },
+ /*OCRnQ*/ { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr },
/*ICRn*/ nullptr,
2, q
};
@@ -91,13 +91,24 @@ Timer get_pwm_timer(const pin_t pin) {
#endif
#endif
#endif
- #ifdef TCCR3A
+ #ifdef OCR3C
case TIMER3C: ++q;
case TIMER3B: ++q;
case TIMER3A: {
Timer timer = {
- /*TCCRnQ*/ { &TCCR3A, &TCCR3B, &TCCR3C},
- /*OCRnQ*/ { &OCR3A, &OCR3B, &OCR3C},
+ /*TCCRnQ*/ { &TCCR3A, &TCCR3B, &TCCR3C },
+ /*OCRnQ*/ { &OCR3A, &OCR3B, &OCR3C },
+ /*ICRn*/ &ICR3,
+ /*n, q*/ 3, q
+ };
+ return timer;
+ }
+ #elif defined(OCR3B)
+ case TIMER3B: ++q;
+ case TIMER3A: {
+ Timer timer = {
+ /*TCCRnQ*/ { &TCCR3A, &TCCR3B, nullptr },
+ /*OCRnQ*/ { &OCR3A, &OCR3B, nullptr },
/*ICRn*/ &ICR3,
/*n, q*/ 3, q
};
@@ -109,8 +120,8 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER4B: ++q;
case TIMER4A: {
Timer timer = {
- /*TCCRnQ*/ { &TCCR4A, &TCCR4B, &TCCR4C},
- /*OCRnQ*/ { &OCR4A, &OCR4B, &OCR4C},
+ /*TCCRnQ*/ { &TCCR4A, &TCCR4B, &TCCR4C },
+ /*OCRnQ*/ { &OCR4A, &OCR4B, &OCR4C },
/*ICRn*/ &ICR4,
/*n, q*/ 4, q
};
@@ -122,7 +133,7 @@ Timer get_pwm_timer(const pin_t pin) {
case TIMER5B: ++q;
case TIMER5A: {
Timer timer = {
- /*TCCRnQ*/ { &TCCR5A, &TCCR5B, &TCCR5C},
+ /*TCCRnQ*/ { &TCCR5A, &TCCR5B, &TCCR5C },
/*OCRnQ*/ { &OCR5A, &OCR5B, &OCR5C },
/*ICRn*/ &ICR5,
/*n, q*/ 5, q
@@ -132,8 +143,8 @@ Timer get_pwm_timer(const pin_t pin) {
#endif
}
Timer timer = {
- /*TCCRnQ*/ { nullptr, nullptr, nullptr},
- /*OCRnQ*/ { nullptr, nullptr, nullptr},
+ /*TCCRnQ*/ { nullptr, nullptr, nullptr },
+ /*OCRnQ*/ { nullptr, nullptr, nullptr },
/*ICRn*/ nullptr,
0, 0
};
--
GitLab