aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/src
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-04-05 18:21:00 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-04-05 18:21:00 +0000
commitad009f46d58f4f555cd412aa2f2a267da01db4e0 (patch)
tree18b4e9fd44f637c664c075b9d611465ed015fc60 /os/hal/src
parentc4fec713d238a4396ee5693c986e3d25a74082e5 (diff)
downloadChibiOS-ad009f46d58f4f555cd412aa2f2a267da01db4e0.tar.gz
ChibiOS-ad009f46d58f4f555cd412aa2f2a267da01db4e0.tar.bz2
ChibiOS-ad009f46d58f4f555cd412aa2f2a267da01db4e0.zip
STM32 PWM driver optimization, changed the behavior of pwmChangePeriod().
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2869 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/src')
-rw-r--r--os/hal/src/pwm.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/os/hal/src/pwm.c b/os/hal/src/pwm.c
index ed80ec24b..e7dd6b64c 100644
--- a/os/hal/src/pwm.c
+++ b/os/hal/src/pwm.c
@@ -124,11 +124,9 @@ void pwmStop(PWMDriver *pwmp) {
* been activated using @p pwmStart().
* @pre The PWM unit must have been activated using @p pwmStart().
* @post The PWM unit period is changed to the new value.
- * @post Any active channel is disabled by this function and must be
- * activated explicitly using @p pwmEnableChannel().
- * @note Depending on the hardware implementation this function has
- * effect starting on the next cycle (recommended implementation)
- * or immediately (fallback implementation).
+ * @note If a period is specified that is shorter than the pulse width
+ * programmed in one of the channels then the behavior is not
+ * guaranteed.
*
* @param[in] pwmp pointer to a @p PWMDriver object
* @param[in] period new cycle time in ticks
@@ -142,8 +140,7 @@ void pwmChangePeriod(PWMDriver *pwmp, pwmcnt_t period) {
chSysLock();
chDbgAssert(pwmp->state == PWM_READY,
"pwmChangePeriod(), #1", "invalid state");
- pwmp->period = period;
- pwm_lld_change_period(pwmp, period);
+ pwmChangePeriodI(pwmp, period);
chSysUnlock();
}