Hi Leapo,
First off, thanks for taking the time to write this python library!
I was playing around with it on my Rock64 SBC and noticed the following:
- The
GPIO.PWM.stop() method does not work as intended.
The PWM.stop method uses the multiprocessing.Process.terminate.
This approach stops the process, but does not respect the pwm_process static method try/except clauses, as such when calling the stop method the var_gpio_filepath file is written with the last value that was set by the pwm_process before calling it.
As a result, when calling PWM.stop the output GPIO PIN is set erroneously to 1 part of the time.
I have addressed this issue here.
pwm_busywait method proves too CPU intensive, constantly taking up 100% CPU time.
I have set the default 'pwm_precission' arg to 'LOW', as the linux kernel is able to achieve a acceptable error margin on its own using time.sleep,
Hi Leapo,
First off, thanks for taking the time to write this python library!
I was playing around with it on my Rock64 SBC and noticed the following:
GPIO.PWM.stop()method does not work as intended.The
PWM.stopmethod uses themultiprocessing.Process.terminate.This approach stops the process, but does not respect the
pwm_processstatic method try/except clauses, as such when calling thestopmethod thevar_gpio_filepathfile is written with the last value that was set by thepwm_processbefore calling it.As a result, when calling
PWM.stopthe output GPIO PIN is set erroneously to 1 part of the time.I have addressed this issue here.
pwm_busywaitmethod proves too CPU intensive, constantly taking up 100% CPU time.I have set the default 'pwm_precission' arg to 'LOW', as the linux kernel is able to achieve a acceptable error margin on its own using
time.sleep,