diff --git a/os/hal/include/pwm.h b/os/hal/include/pwm.h index ce8e8b29b..a735cfbc2 100644 --- a/os/hal/include/pwm.h +++ b/os/hal/include/pwm.h @@ -211,6 +211,18 @@ typedef void (*pwmcallback_t)(PWMDriver *pwmp); */ #define pwmDisableChannelI(pwmp, channel) \ pwm_lld_disable_channel(pwmp, channel) + +/** + * @brief Returns a PWM channel status. + * @pre The PWM unit must have been activated using @p pwmStart(). + * + * @param[in] pwmp pointer to a @p PWMDriver object + * @param[in] channel PWM channel identifier (0...PWM_CHANNELS-1) + * + * @iclass + */ +#define pwmIsChannelEnabledI(pwmp, channel) \ + pwm_lld_is_channel_enabled(pwmp, channel) /** @} */ /*===========================================================================*/ diff --git a/os/hal/platforms/STM32/pwm_lld.h b/os/hal/platforms/STM32/pwm_lld.h index 94426e28c..8b1761f82 100644 --- a/os/hal/platforms/STM32/pwm_lld.h +++ b/os/hal/platforms/STM32/pwm_lld.h @@ -406,6 +406,19 @@ struct PWMDriver { #define pwm_lld_change_period(pwmp, period) \ ((pwmp)->tim->ARR = (uint16_t)((period) - 1)) +/** + * @brief Returns a PWM channel status. + * @pre The PWM unit must have been activated using @p pwmStart(). + * + * @param[in] pwmp pointer to a @p PWMDriver object + * @param[in] channel PWM channel identifier (0...PWM_CHANNELS-1) + * + * @notapi + */ +#define pwm_lld_is_channel_enabled(pwmp, channel) \ + ((pwmp->tim->CCR[channel] == 0) && \ + ((pwmp->tim->DIER & (2 << channel)) == 0)) + /*===========================================================================*/ /* External declarations. */ /*===========================================================================*/ diff --git a/readme.txt b/readme.txt index 7941d860e..094a83c55 100644 --- a/readme.txt +++ b/readme.txt @@ -138,6 +138,8 @@ (backported to 2.4.3). - FIX: Fixed wrong SPI path in platform_f105_f107.mk (bug 3598151). - FIX: Fixed PHY powerdown issues not fixed (bug 3596911). +- NEW: Added new pwmIsChannelEnabledI() API to the PWM driver, implemented + in the STM32 driver. - NEW: Added support for timers 6, 7, 9, 11, 12, 14 to the STM32 GPT driver. - NEW: Added support for timer 9 to the STM32 PWM driver. - NEW: Relicensed parts of the distribution tree under the Apache 2.0