Skip to content

Commit cb38aaa

Browse files
committed
additional check for turnOffPWM
1 parent c8a1dd9 commit cb38aaa

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

Diff for: cores/arduino/wiring_digital.c

+12
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ static void turnOffPWM(uint8_t pin)
103103

104104
/* TCA0 */
105105
case TIMERA0:
106+
// check, if TCA is set to Port B (default megaavr-PWM ports)
107+
// see variants/nona4809/variant.c line 13
108+
if (!(PORTMUX_TCAROUTEA == PORTMUX_TCA0_PORTB_gc))
109+
return;
106110
/* Bit position will give output channel */
107111
bit_pos = digitalPinToBitPosition(pin);
108112

@@ -113,7 +117,15 @@ static void turnOffPWM(uint8_t pin)
113117

114118
/* TCB - only one output */
115119
case TIMERB0:
120+
// check, if TCB0 is set to alternate mode PF4 (Pin D6) (default megaavr-PWM)
121+
// see variants/nona4809/variant.c line 31
122+
if ((pin == 6) && ((PORTMUX_TCBROUTEA & PORTMUX_TCB0_bm) != PORTMUX_TCB0_bm))
123+
return;
116124
case TIMERB1:
125+
// check, if TCB1 is set to alternate mode PF5 (Pin D3) (default megaavr-PWM)
126+
// see variants/nona4809/variant.c line 36
127+
if ((pin == 3) && ((PORTMUX_TCBROUTEA & PORTMUX_TCB1_bm) != PORTMUX_TCB1_bm))
128+
return;
117129
case TIMERB2:
118130
case TIMERB3:
119131

0 commit comments

Comments
 (0)