stm32: timer: Add API to set external clock mode 2

This commit is contained in:
me@me.net
2022-04-27 14:37:27 +02:00
committed by Karl Palsson
parent 664701d7a7
commit d8aa2f17b0
2 changed files with 25 additions and 0 deletions

View File

@@ -1143,6 +1143,12 @@ enum tim_et_pol {
TIM_ET_FALLING,
};
/** External clock mode 2 */
enum tim_ecm2_state {
TIM_ECM2_DISABLED,
TIM_ECM2_ENABLED,
};
/* --- TIM function prototypes --------------------------------------------- */
BEGIN_DECLS
@@ -1233,6 +1239,8 @@ void timer_slave_set_prescaler(uint32_t timer, enum tim_ic_psc psc);
void timer_slave_set_polarity(uint32_t timer, enum tim_et_pol pol);
void timer_slave_set_mode(uint32_t timer, uint8_t mode);
void timer_slave_set_trigger(uint32_t timer, uint8_t trigger);
void timer_slave_set_extclockmode2(uint32_t timer_peripheral,
enum tim_ecm2_state state);
END_DECLS

View File

@@ -1864,6 +1864,23 @@ void timer_slave_set_trigger(uint32_t timer_peripheral, uint8_t trigger)
TIM_SMCR(timer_peripheral) |= trigger;
}
/*---------------------------------------------------------------------------*/
/** @brief Set External Clock Mode 2
@param[in] timer_peripheral Unsigned int32. Timer register address base
@param[in] state ::tim_ecm2_state. External Clock Mode 2 state
*/
void timer_slave_set_extclockmode2(uint32_t timer_peripheral,
enum tim_ecm2_state state)
{
if (state) {
TIM_SMCR(timer_peripheral) |= TIM_SMCR_ECE;
} else {
TIM_SMCR(timer_peripheral) &= ~TIM_SMCR_ECE;
}
}
/* TODO Timer DMA burst */
/**@}*/