Browse Source

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

pull/1409/head
me@me.net 3 years ago
committed by Karl Palsson
parent
commit
d8aa2f17b0
  1. 8
      include/libopencm3/stm32/common/timer_common_all.h
  2. 17
      lib/stm32/common/timer_common_all.c

8
include/libopencm3/stm32/common/timer_common_all.h

@ -1143,6 +1143,12 @@ enum tim_et_pol {
TIM_ET_FALLING, TIM_ET_FALLING,
}; };
/** External clock mode 2 */
enum tim_ecm2_state {
TIM_ECM2_DISABLED,
TIM_ECM2_ENABLED,
};
/* --- TIM function prototypes --------------------------------------------- */ /* --- TIM function prototypes --------------------------------------------- */
BEGIN_DECLS 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_polarity(uint32_t timer, enum tim_et_pol pol);
void timer_slave_set_mode(uint32_t timer, uint8_t mode); 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_trigger(uint32_t timer, uint8_t trigger);
void timer_slave_set_extclockmode2(uint32_t timer_peripheral,
enum tim_ecm2_state state);
END_DECLS END_DECLS

17
lib/stm32/common/timer_common_all.c

@ -1864,6 +1864,23 @@ void timer_slave_set_trigger(uint32_t timer_peripheral, uint8_t trigger)
TIM_SMCR(timer_peripheral) |= 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 */ /* TODO Timer DMA burst */
/**@}*/ /**@}*/

Loading…
Cancel
Save