stm32/timer: Moved the OC2 mode logic into its own function
This commit is contained in:
committed by
Piotr Esden-Tempski
parent
f2a1f2b6ae
commit
a058f77434
@@ -864,6 +864,40 @@ void timer_set_oc1_mode(uint32_t timer_peripheral, enum tim_oc_mode oc_mode)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void timer_set_oc2_mode(uint32_t timer_peripheral, enum tim_oc_mode oc_mode)
|
||||||
|
{
|
||||||
|
TIM_CCMR1(timer_peripheral) &= ~TIM_CCMR1_CC2S_MASK;
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_CC2S_OUT;
|
||||||
|
TIM_CCMR1(timer_peripheral) &= ~TIM_CCMR1_OC2M_MASK;
|
||||||
|
switch (oc_mode) {
|
||||||
|
case TIM_OCM_FROZEN:
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_FROZEN;
|
||||||
|
break;
|
||||||
|
case TIM_OCM_ACTIVE:
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_ACTIVE;
|
||||||
|
break;
|
||||||
|
case TIM_OCM_INACTIVE:
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_INACTIVE;
|
||||||
|
break;
|
||||||
|
case TIM_OCM_TOGGLE:
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_TOGGLE;
|
||||||
|
break;
|
||||||
|
case TIM_OCM_FORCE_LOW:
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_FORCE_LOW;
|
||||||
|
break;
|
||||||
|
case TIM_OCM_FORCE_HIGH:
|
||||||
|
TIM_CCMR1(timer_peripheral) |=
|
||||||
|
TIM_CCMR1_OC2M_FORCE_HIGH;
|
||||||
|
break;
|
||||||
|
case TIM_OCM_PWM1:
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_PWM1;
|
||||||
|
break;
|
||||||
|
case TIM_OCM_PWM2:
|
||||||
|
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_PWM2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
/** @brief Timer Set Output Compare Mode
|
/** @brief Timer Set Output Compare Mode
|
||||||
|
|
||||||
@@ -899,36 +933,7 @@ void timer_set_oc_mode(uint32_t timer_peripheral, enum tim_oc_id oc_id,
|
|||||||
timer_set_oc1_mode(timer_peripheral, oc_mode);
|
timer_set_oc1_mode(timer_peripheral, oc_mode);
|
||||||
break;
|
break;
|
||||||
case TIM_OC2:
|
case TIM_OC2:
|
||||||
TIM_CCMR1(timer_peripheral) &= ~TIM_CCMR1_CC2S_MASK;
|
timer_set_oc2_mode(timer_peripheral, oc_mode);
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_CC2S_OUT;
|
|
||||||
TIM_CCMR1(timer_peripheral) &= ~TIM_CCMR1_OC2M_MASK;
|
|
||||||
switch (oc_mode) {
|
|
||||||
case TIM_OCM_FROZEN:
|
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_FROZEN;
|
|
||||||
break;
|
|
||||||
case TIM_OCM_ACTIVE:
|
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_ACTIVE;
|
|
||||||
break;
|
|
||||||
case TIM_OCM_INACTIVE:
|
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_INACTIVE;
|
|
||||||
break;
|
|
||||||
case TIM_OCM_TOGGLE:
|
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_TOGGLE;
|
|
||||||
break;
|
|
||||||
case TIM_OCM_FORCE_LOW:
|
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_FORCE_LOW;
|
|
||||||
break;
|
|
||||||
case TIM_OCM_FORCE_HIGH:
|
|
||||||
TIM_CCMR1(timer_peripheral) |=
|
|
||||||
TIM_CCMR1_OC2M_FORCE_HIGH;
|
|
||||||
break;
|
|
||||||
case TIM_OCM_PWM1:
|
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_PWM1;
|
|
||||||
break;
|
|
||||||
case TIM_OCM_PWM2:
|
|
||||||
TIM_CCMR1(timer_peripheral) |= TIM_CCMR1_OC2M_PWM2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case TIM_OC3:
|
case TIM_OC3:
|
||||||
TIM_CCMR2(timer_peripheral) &= ~TIM_CCMR2_CC3S_MASK;
|
TIM_CCMR2(timer_peripheral) &= ~TIM_CCMR2_CC3S_MASK;
|
||||||
|
|||||||
Reference in New Issue
Block a user