From 5938ffc0d5ee525a5d39249f3da29ac6c065aed0 Mon Sep 17 00:00:00 2001 From: Lisin Dmitriy Date: Wed, 18 Sep 2019 17:54:10 +0300 Subject: IMPR: [tim] Add some ETR config methods --- cm3cpp/timer.cpp | 25 +++++++++++++++++++++++++ cm3cpp/timer.hpp | 11 +++++++++++ 2 files changed, 36 insertions(+) diff --git a/cm3cpp/timer.cpp b/cm3cpp/timer.cpp index e02b54b..49768ec 100644 --- a/cm3cpp/timer.cpp +++ b/cm3cpp/timer.cpp @@ -1698,6 +1698,31 @@ void Timer::set_capture_compare_4_value(uint32_t value) TIM_CCR4(_timer) = value; } +void Timer::enable_etr_clock() +{ + TIM_SMCR(_timer) |= TIM_SMCR_ECE; // set enable bit +} + +void Timer::disable_etr_clock() +{ + TIM_SMCR(_timer) &= ~TIM_SMCR_ECE; // reset enable bit +} + +void Timer::set_etr_filter(ExtTriggerFilter filter) +{ + timer_slave_set_filter(_timer, filter); +} + +void Timer::set_etr_prescaler(ExtTriggerPrescaler prescaler) +{ + timer_slave_set_prescaler(_timer, prescaler); +} + +void Timer::set_etr_polarity(ExtTriggerPolarity polarity) +{ + timer_slave_set_polarity(_timer, polarity); +} + } // namespace tim } // namespace cm3cpp diff --git a/cm3cpp/timer.hpp b/cm3cpp/timer.hpp index 31b78a9..b3fc2de 100644 --- a/cm3cpp/timer.hpp +++ b/cm3cpp/timer.hpp @@ -179,6 +179,9 @@ class Timer }; Timer(uint8_t timer_num) + using ExtTriggerFilter = tim_ic_filter; + using ExtTriggerPrescaler = tim_ic_psc; + using ExtTriggerPolarity = tim_et_pol; { #if defined(STM32F2) || defined(STM32F4) switch (timer_num) { @@ -260,6 +263,14 @@ class Timer Result set_trigger(Trigger trigger); Result enable_master_slave_mode(); Result disable_master_slave_mode(); + + // ETR config (external trigger), TIM 1-8 (F4, F2) + void enable_etr_clock(); //!< Enable CNT after ETR clock enabling + void disable_etr_clock(); + void set_etr_filter(ExtTriggerFilter); + void set_etr_prescaler(ExtTriggerPrescaler); + void set_etr_polarity(ExtTriggerPolarity); + // DIER///////////////////////////////////////////////////// Result enable_update_interrupt(); Result disable_update_interrupt(); -- cgit v1.2.3