Review of last PR
This commit is contained in:
parent
1ed25c0d73
commit
5666bf30a7
@ -312,6 +312,14 @@ static struct tiva_pwm_chan_s g_pwm_chan7 =
|
|||||||
* Private Functions
|
* Private Functions
|
||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: tiva_pwm_gen[n]_interrupt
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Pulse count interrupt handlers for PWM[n]
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_PWM_PULSECOUNT) && defined(CONFIG_TIVA_PWM0_CHAN0)
|
#if defined(CONFIG_PWM_PULSECOUNT) && defined(CONFIG_TIVA_PWM0_CHAN0)
|
||||||
static int tiva_pwm_gen0_interrupt(int irq, FAR void *context)
|
static int tiva_pwm_gen0_interrupt(int irq, FAR void *context)
|
||||||
{
|
{
|
||||||
@ -340,6 +348,14 @@ static int tiva_pwm_gen3_interrupt(int irq, FAR void *context)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: tiva_pwm_interrupt
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Common pulse count interrupt handler.
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_PWM_PULSECOUNT) && \
|
#if defined(CONFIG_PWM_PULSECOUNT) && \
|
||||||
(defined(CONFIG_TIVA_PWM0_CHAN0) || defined(CONFIG_TIVA_PWM0_CHAN2) || \
|
(defined(CONFIG_TIVA_PWM0_CHAN0) || defined(CONFIG_TIVA_PWM0_CHAN2) || \
|
||||||
defined(CONFIG_TIVA_PWM0_CHAN4) || defined(CONFIG_TIVA_PWM0_CHAN6))
|
defined(CONFIG_TIVA_PWM0_CHAN4) || defined(CONFIG_TIVA_PWM0_CHAN6))
|
||||||
@ -356,11 +372,11 @@ static int tiva_pwm_interrupt(struct tiva_pwm_chan_s *chan)
|
|||||||
/* Disable PWM generator and reload current pulse count */
|
/* Disable PWM generator and reload current pulse count */
|
||||||
|
|
||||||
if (chan->cur_count == 0)
|
if (chan->cur_count == 0)
|
||||||
{
|
{
|
||||||
tiva_pwm_putreg(chan, TIVA_PWMn_CTL_OFFSET, CTL_DISABLE << TIVA_PWMn_CTL_ENABLE);
|
tiva_pwm_putreg(chan, TIVA_PWMn_CTL_OFFSET, CTL_DISABLE << TIVA_PWMn_CTL_ENABLE);
|
||||||
chan->cur_count = chan->count;
|
chan->cur_count = chan->count;
|
||||||
pwm_expired(chan->handle);
|
pwm_expired(chan->handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -503,32 +519,32 @@ static int tiva_pwm_start(FAR struct pwm_lowerhalf_s *dev,
|
|||||||
chan->cur_count = info->count;
|
chan->cur_count = info->count;
|
||||||
|
|
||||||
if (!chan->inited)
|
if (!chan->inited)
|
||||||
{
|
{
|
||||||
chan->count++;
|
chan->count++;
|
||||||
chan->cur_count++;
|
chan->cur_count++;
|
||||||
chan->inited = true;
|
chan->inited = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Count 0 means to generate indefinite number of pulses */
|
/* Count 0 means to generate indefinite number of pulses */
|
||||||
|
|
||||||
if (info->count == 0)
|
if (info->count == 0)
|
||||||
{
|
{
|
||||||
pwm_expired(chan->handle);
|
pwm_expired(chan->handle);
|
||||||
|
|
||||||
/* Disable interrupt */
|
/* Disable interrupt */
|
||||||
|
|
||||||
uint32_t enable = getreg32(chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
uint32_t enable = getreg32(chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
||||||
enable &= ~(INT_ENABLE << chan->generator_id);
|
enable &= ~(INT_ENABLE << chan->generator_id);
|
||||||
putreg32(enable, chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
putreg32(enable, chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Enable interrupt */
|
/* Enable interrupt */
|
||||||
|
|
||||||
uint32_t enable = getreg32(chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
uint32_t enable = getreg32(chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
||||||
enable |= (INT_ENABLE << chan->generator_id);
|
enable |= (INT_ENABLE << chan->generator_id);
|
||||||
putreg32(enable, chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
putreg32(enable, chan->controller_base + TIVA_PWM_INTEN_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Start the timer */
|
/* Start the timer */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user