Can't you use hardware PWM?