http://www.zfixing.eu.org/2021/12/pic-microcontroller-and-pwm-generation.html