From d009502eb4c6b467d80a686b9a91f3ddbf0b595c Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sun, 7 Apr 2013 07:57:43 +0000 Subject: Added new pwmIsChannelEnabledI() API to the PWM driver, implemented in the STM32 driver. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5554 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/include/pwm.h | 12 ++++++++++++ os/hal/platforms/STM32/pwm_lld.h | 13 +++++++++++++ 2 files changed, 25 insertions(+) (limited to 'os/hal') 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. */ /*===========================================================================*/ -- cgit v1.2.3