• Damien George's avatar
    stmhal: Add PWM capability for LED(3) and LED(4) on pyboards. · a8a4b01a
    Damien George authored
    USB CDC no longer needs TIM3 (which was originally used for LED(4) PWM)
    and so TIM3 has been freed for general purpose use by the user.  Hence
    LED(4) lost its PWM capabilities.
    This patch reinstates the PWM capabilities using a semi-generic piece
    of code which allows to configure a timer and PWM channel to use for any
    LED.  But the PWM capability is only configured if the LED is set to an
    intensity between 1 and 254 (ie only when needed).  In that case the
    relevant timer is configured for PWM.  It's up to the user to make sure
    the timers are not used if PWM is active.
    This patch also makes sure that PWM LEDs are turned off using standard
    GPIO when calling led.off() or led.intensity(0), instead of just setting
    the PWM counter to zero.