mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 16:50:55 +08:00
Fix the STM32 PWM driver pulse count logic
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4298 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
+4
-1
@@ -322,7 +322,7 @@ static int pwm_start(FAR struct pwm_upperhalf_s *upper, unsigned int oflags)
|
||||
* We do these things before starting the PWM to avoid race conditions.
|
||||
*/
|
||||
|
||||
upper->waiting = (upper->info.count > 0) && ((oflags & O_NONBLOCK) != 0);
|
||||
upper->waiting = (upper->info.count > 0) && ((oflags & O_NONBLOCK) == 0);
|
||||
upper->started = true;
|
||||
|
||||
/* Invoke the bottom half method to start the pulse train */
|
||||
@@ -354,6 +354,7 @@ static int pwm_start(FAR struct pwm_upperhalf_s *upper, unsigned int oflags)
|
||||
{
|
||||
/* Looks like we won't be waiting after all */
|
||||
|
||||
pwmvdbg("start failed: %d\n", ret);
|
||||
upper->started = false;
|
||||
upper->waiting = false;
|
||||
}
|
||||
@@ -649,6 +650,8 @@ void pwm_expired(FAR void *handle)
|
||||
{
|
||||
FAR struct pwm_upperhalf_s *upper = (FAR struct pwm_upperhalf_s *)handle;
|
||||
|
||||
pwmllvdbg("started: %d waiting: %d\n", upper->started, upper->waiting);
|
||||
|
||||
/* Make sure that the PWM is started */
|
||||
|
||||
if (upper->started)
|
||||
|
||||
Reference in New Issue
Block a user