introduced tasklet to reduce PWM irq runtime