TCx PWM not working correctly
I'm trying to use pwm() on TC4 (D6 on the Seeduino Xiao), but the duty cycle is being calculated incorrectly in wiring_pwm.cpp line 271:
duty = mapResolution(duty, 10, 16);
For samd51 TCx and TCCx, as well as SAMD21 TCCx, it's using:
duty = map(duty, 0, (1<<PWM_API_RESOLUTION), 0, period);
The result is that the counter (in my case duty period = 2000) is being incorrectly.
I've changed the line to match the others and it works fine for my single use case.
@deanm1278 since this was in your original PR, any idea why TCx is treated differently?
I was looking at this https://github.com/Seeed-Studio/ArduinoCore-samd/pull/23, then saw this issue as well. I was intending to use the PWM to control motor but I noticed that on oscilloscope that duty cycles are inaccurate. Same device, Xiao (SAMD21)