We want to use the timer as a clock source to external hardware.
The output would be a square wave at a variable frequency, and able to be enabled and disabled.
The output would complete the half-cycle at the old frequency, then the new half-cycle would be at the new frequency.
An API supporting period instead of frequency is also suitable.
An attempt to use the PWM outputs using other libraries was unsuccessful, in that upon change of frequency, the PWM output is often disabled, resulting in glitches in the clock to the external hardware.
An alternative, using an ARM micro, connected serially, and using the ARM micro timer output, works fine, but since the BBB has its own timers, it seems a waste to leave it unused.
When you use the PWM output generated by libpruio on a CAP module in a PWMSS sub system, then the current period will finish before the new frequency gets set. You can generate up to two PWM signals that way on pins P9_28 and P9_42. Just check out the example pwm_adc to watch the switching behaviour.
You also can customize the PWM output generated by PWM modules to get this behaviour by adapting some registers (experts only, configure the time-base submodule). That way you also could add six more output channels on pins P8_13, P8_19, P8_34, P8_36, P8_45, P8_46, P9_14, P9_16, P9_21, P9_22, P9_29 and P9_31, while two of them are fixed to the same frequncy (A + B channel)