From 494cd0f0953d131bb31dcda508abfbd4eaef9899 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Wed, 16 Dec 2009 15:48:50 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1425 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/src/pwm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'os/hal/src') diff --git a/os/hal/src/pwm.c b/os/hal/src/pwm.c index ddae89d45..ad3c15728 100644 --- a/os/hal/src/pwm.c +++ b/os/hal/src/pwm.c @@ -88,6 +88,9 @@ void pwmStop(PWMDriver *pwmp) { /** * @brief Setups a PWM channel. + * @details Associates a configuration to a PWM channel, this operation is + * required before a channel can be enabled using + * @p pwmEnableChannel(). * * @param[in] pwmp pointer to a @p PWMDriver object * @param[in] channel PWM channel identifier @@ -123,7 +126,8 @@ void pwmEnableChannel(PWMDriver *pwmp, "pwmEnableChannel"); chSysLock(); - chDbgAssert(pwmp->pd_state == PWM_READY, + chDbgAssert((pwmp->pd_state == PWM_READY) && + (pwmp->pd_channel_configs[channel] != NULL), "pwmEnableChannel(), #1", "invalid state"); pwm_lld_enable_channel(pwmp, channel, width); chSysUnlock(); @@ -143,7 +147,8 @@ void pwmDisableChannel(PWMDriver *pwmp, pwmchannel_t channel) { "pwmEnableChannel"); chSysLock(); - chDbgAssert(pwmp->pd_state == PWM_READY, + chDbgAssert((pwmp->pd_state == PWM_READY) && + (pwmp->pd_channel_configs[channel] != NULL), "pwmDisableChannel(), #1", "invalid state"); pwm_lld_disable_channel(pwmp, channel); chSysUnlock(); -- cgit v1.2.3