http://www.melabs.com/resources/samples/pbp/hardpwm.bas