diff --git a/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c index b87dccca2..9e7fd8ce0 100644 --- a/cores/arduino/wiring_analog.c +++ b/cores/arduino/wiring_analog.c @@ -218,23 +218,23 @@ void analogWrite(uint32_t pin, uint32_t value) uint8_t tcChannel = GetTCChannelNumber(pinDesc.ulPWMChannel); static bool tcEnabled[TCC_INST_NUM+TC_INST_NUM]; - if (!tcEnabled[tcNum]) { - tcEnabled[tcNum] = true; - - if (attr & PIN_ATTR_TIMER) { - #if !(ARDUINO_SAMD_VARIANT_COMPLIANCE >= 10603) - // Compatibility for cores based on SAMD core <=1.6.2 - if (pinDesc.ulPinType == PIO_TIMER_ALT) { - pinPeripheral(pin, PIO_TIMER_ALT); - } else - #endif - { - pinPeripheral(pin, PIO_TIMER); - } - } else { - // We suppose that attr has PIN_ATTR_TIMER_ALT bit set... + if (attr & PIN_ATTR_TIMER) { + #if !(ARDUINO_SAMD_VARIANT_COMPLIANCE >= 10603) + // Compatibility for cores based on SAMD core <=1.6.2 + if (pinDesc.ulPinType == PIO_TIMER_ALT) { pinPeripheral(pin, PIO_TIMER_ALT); + } else + #endif + { + pinPeripheral(pin, PIO_TIMER); } + } else { + // We suppose that attr has PIN_ATTR_TIMER_ALT bit set... + pinPeripheral(pin, PIO_TIMER_ALT); + } + + if (!tcEnabled[tcNum]) { + tcEnabled[tcNum] = true; uint16_t GCLK_CLKCTRL_IDs[] = { GCLK_CLKCTRL_ID(GCM_TCC0_TCC1), // TCC0