Datasheet

The biggest members of the SAMD21 family have five TC instances with two 'waveform
output' (WO) channels, and three TCC instances with eight WO channels:
TC[0-4],WO[0-1]
TCC[0-2],WO[0-7]
And those are the ones shown in the datasheet's multiplexer tables.
The SAMD21G used in the Feather M0 only has three TC instances with two output channels,
and three TCC instances with eight output channels:
TC[3-5],WO[0-1]
TCC[0-2],WO[0-7]
Tracing the signals to the pins broken out on the Feather M0, the following pins can't do
PWM at all:
Analog pin A5
The following pins can be configured for PWM without any signal conflicts as long as the SPI,
I2C, and UART pins keep their protocol functions:
Digital pins 5, 6, 9, 10, 11, 12, and 13
Analog pins A3 and A4
If only the SPI pins keep their protocol functions, you can also do PWM on the following pins:
TX and SDA (Digital pins 1 and 20)
analogWrite() PWM range
On AVR, if you set a pin's PWM with analogWrite(pin, 255) it will turn the pin fully HIGH. On the
ARM cortex, it will set it to be 255/256 so there will be very slim but still-existing pulses-to-
0V. If you need the pin to be fully on, add test code that checks if you are trying to
analogWrite(pin, 255) and, instead, does a digitalWrite(pin, HIGH)
Missing header files
there might be code that uses libraries that are not supported by the M0 core. For example if
you have a line with
© Adafruit Industries https://learn.adafruit.com/adafruit-feather-m0-bluefruit-le Page 50 of 238