02a0939d2e
There were two main issues with the PWM support. The first is they would fail to work properly if the board goes into low power mode, when you do things like: time.sleep(0.25) Can make partially work with this by turning on the proper flags in each of the FlexPWMTimer Timers/sub-timers, but this did not appear to work if for example you have both A and B channels enabled. Second main problem is that the code did not work with the X channel of each timer/sub-timer. It looks like someone had earlier started support for this, But was not sufficient. Needed to bypass the SDK code and get it closer to the PJRC code. That is we set the PWM_CTRL_FULL_MASK, which then uses base->SM[submodule].VAL1 to control when the timer is reset, so it sets up your cycle/frequency. But then this implies that X channel which uses 0, 1 has to be handled specially. So for the different channels: A - Uses VAL2 to turn on (0) and VAL3=duty to turn off B - Uses VAL4 to turn on (0) and VAL5 to turn off X - As mentioned above VAL1 turns off, but its set to the timing for freqency. so VAL0 turns on, so we set it to VAL1 - duty |
||
---|---|---|
.. | ||
atmel-samd | ||
broadcom | ||
cxd56 | ||
espressif | ||
litex | ||
mimxrt10xx | ||
nrf | ||
raspberrypi | ||
stm | ||
unix |