Browse Source

Handle no Timer 3C

Scott Lahteine 5 years ago
parent
commit
6c62732ae1
1 changed files with 25 additions and 14 deletions
  1. 25
    14
      Marlin/src/HAL/HAL_AVR/fast_pwm.cpp

+ 25
- 14
Marlin/src/HAL/HAL_AVR/fast_pwm.cpp View File

@@ -59,8 +59,8 @@ Timer get_pwm_timer(const pin_t pin) {
59 59
       #ifdef TCCR2
60 60
         case TIMER2: {
61 61
           Timer timer = {
62
-            /*TCCRnQ*/  { &TCCR2, nullptr, nullptr},
63
-            /*OCRnQ*/   { (uint16_t*)&OCR2, nullptr, nullptr},
62
+            /*TCCRnQ*/  { &TCCR2, nullptr, nullptr },
63
+            /*OCRnQ*/   { (uint16_t*)&OCR2, nullptr, nullptr },
64 64
             /*ICRn*/      nullptr,
65 65
             /*n, q*/      2, 0
66 66
           };
@@ -70,8 +70,8 @@ Timer get_pwm_timer(const pin_t pin) {
70 70
           case TIMER2A:   break; // protect TIMER2A
71 71
           case TIMER2B: {
72 72
             Timer timer = {
73
-              /*TCCRnQ*/  { &TCCR2A,  &TCCR2B,  nullptr},
74
-              /*OCRnQ*/   { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr},
73
+              /*TCCRnQ*/  { &TCCR2A,  &TCCR2B,  nullptr },
74
+              /*OCRnQ*/   { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr },
75 75
               /*ICRn*/      nullptr,
76 76
               /*n, q*/      2, 1
77 77
             };
@@ -81,8 +81,8 @@ Timer get_pwm_timer(const pin_t pin) {
81 81
           case TIMER2B:   ++q;
82 82
           case TIMER2A: {
83 83
             Timer timer = {
84
-              /*TCCRnQ*/  { &TCCR2A,  &TCCR2B,  nullptr},
85
-              /*OCRnQ*/   { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr},
84
+              /*TCCRnQ*/  { &TCCR2A,  &TCCR2B,  nullptr },
85
+              /*OCRnQ*/   { (uint16_t*)&OCR2A, (uint16_t*)&OCR2B, nullptr },
86 86
               /*ICRn*/      nullptr,
87 87
                             2, q
88 88
             };
@@ -91,13 +91,24 @@ Timer get_pwm_timer(const pin_t pin) {
91 91
         #endif
92 92
       #endif
93 93
     #endif
94
-    #ifdef TCCR3A
94
+    #ifdef OCR3C
95 95
       case TIMER3C:   ++q;
96 96
       case TIMER3B:   ++q;
97 97
       case TIMER3A: {
98 98
         Timer timer = {
99
-          /*TCCRnQ*/  { &TCCR3A,  &TCCR3B,  &TCCR3C},
100
-          /*OCRnQ*/   { &OCR3A,   &OCR3B,   &OCR3C},
99
+          /*TCCRnQ*/  { &TCCR3A,  &TCCR3B,  &TCCR3C },
100
+          /*OCRnQ*/   { &OCR3A,   &OCR3B,   &OCR3C },
101
+          /*ICRn*/      &ICR3,
102
+          /*n, q*/      3, q
103
+        };
104
+        return timer;
105
+      }
106
+    #elif defined(OCR3B)
107
+      case TIMER3B:   ++q;
108
+      case TIMER3A: {
109
+        Timer timer = {
110
+          /*TCCRnQ*/  { &TCCR3A,  &TCCR3B,  nullptr },
111
+          /*OCRnQ*/   { &OCR3A,   &OCR3B,  nullptr },
101 112
           /*ICRn*/      &ICR3,
102 113
           /*n, q*/      3, q
103 114
         };
@@ -109,8 +120,8 @@ Timer get_pwm_timer(const pin_t pin) {
109 120
       case TIMER4B:   ++q;
110 121
       case TIMER4A: {
111 122
         Timer timer = {
112
-          /*TCCRnQ*/  { &TCCR4A,  &TCCR4B,  &TCCR4C},
113
-          /*OCRnQ*/   { &OCR4A,   &OCR4B,   &OCR4C},
123
+          /*TCCRnQ*/  { &TCCR4A,  &TCCR4B,  &TCCR4C },
124
+          /*OCRnQ*/   { &OCR4A,   &OCR4B,   &OCR4C },
114 125
           /*ICRn*/      &ICR4,
115 126
           /*n, q*/      4, q
116 127
         };
@@ -122,7 +133,7 @@ Timer get_pwm_timer(const pin_t pin) {
122 133
       case TIMER5B:   ++q;
123 134
       case TIMER5A: {
124 135
         Timer timer = {
125
-          /*TCCRnQ*/  { &TCCR5A,  &TCCR5B,  &TCCR5C},
136
+          /*TCCRnQ*/  { &TCCR5A,  &TCCR5B,  &TCCR5C },
126 137
           /*OCRnQ*/   { &OCR5A,   &OCR5B,   &OCR5C },
127 138
           /*ICRn*/      &ICR5,
128 139
           /*n, q*/      5, q
@@ -132,8 +143,8 @@ Timer get_pwm_timer(const pin_t pin) {
132 143
     #endif
133 144
   }
134 145
   Timer timer = {
135
-      /*TCCRnQ*/  { nullptr, nullptr, nullptr},
136
-      /*OCRnQ*/   { nullptr, nullptr, nullptr},
146
+      /*TCCRnQ*/  { nullptr, nullptr, nullptr },
147
+      /*OCRnQ*/   { nullptr, nullptr, nullptr },
137 148
       /*ICRn*/      nullptr,
138 149
                     0, 0
139 150
   };

Loading…
Cancel
Save