Changes in this commit:
- Change ticks overhead value for SAMD51. The value was too large and thus
timing was quite bad. At 120Mhz it's now within +/- 30ns.
- Set the pin to output mode. That way, all Pin identifiers are accepted
as argument, not only Pin objects.
Tested with ItsyBitsy M4 and M0 boards.
Signed-off-by: robert-hh <robert@hammelrath.com>
The SAMD21 implementation is an adaption of @jimmo's code for STM32Lxx.
The only changes are the addresses and names of the port registers and the
timing parameters.
SAMD21: The precision is about +/-25ns at 48MHz clock frequency. The first
two cycles are about 40-60 ns longer than set. But still good enough to
drive a neopixel device.
SAMD51: The precision is about +/-30ns at 120MHz clock frequency. Good
enough to drive a neopixel device.