add pwm function