diff options
author | MrDimLis <mrlisdim@gmail.com> | 2019-09-18 18:14:38 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-18 18:14:38 +0300 |
commit | f6c27b21519554659f5d514fbdb31f125684f24a (patch) | |
tree | 0ef3d9de72a5bcd660e2935eeec89ff5b66e56e3 | |
parent | 1975714175bd790811fb77fff0f327154e082d67 (diff) | |
parent | bfcf79cbe22e93edab3d6d4e40199c33b6245498 (diff) |
Merge pull request #9 from thirdpin/feature/tim_minor_refactoring
Timer class minor refactoring
-rw-r--r-- | cm3cpp/timer.cpp | 18 | ||||
-rw-r--r-- | cm3cpp/timer.hpp | 29 |
2 files changed, 28 insertions, 19 deletions
diff --git a/cm3cpp/timer.cpp b/cm3cpp/timer.cpp index 49768ec..e2711e9 100644 --- a/cm3cpp/timer.cpp +++ b/cm3cpp/timer.cpp @@ -395,7 +395,7 @@ auto Timer::disable_trigger_interrupt() -> Result } // 9,12 -bool Timer::get_flag_status(Flag flag) +bool Timer::get_flag_status(Flag flag) const { bool status = false; @@ -1611,12 +1611,12 @@ auto Timer::set_capture_compare_4_com_polarity(Polarity polarity) -> Result } // 9,12 -uint16_t Timer::get_counter_value() +uint16_t Timer::get_counter_value() const { return TIM_CNT(_timer); } -uint32_t Timer::get_counter_value32() +uint32_t Timer::get_counter_value32() const { return TIM_CNT(_timer); } @@ -1628,7 +1628,7 @@ void Timer::set_counter_value(uint16_t value) } // 9,12 -uint16_t Timer::get_prescaler_value() +uint16_t Timer::get_prescaler_value() const { return TIM_PSC(_timer); } @@ -1640,7 +1640,7 @@ void Timer::set_prescaler_value(uint32_t value) } // 9,12 -uint16_t Timer::get_autoreload_value() +uint16_t Timer::get_autoreload_value() const { return TIM_ARR(_timer); } @@ -1652,7 +1652,7 @@ void Timer::set_autoreload_value(uint32_t value) } // 9,12 -uint16_t Timer::get_capture_compare_1_value() +uint16_t Timer::get_capture_compare_1_value() const { return TIM_CCR1(_timer); } @@ -1664,7 +1664,7 @@ void Timer::set_capture_compare_1_value(uint32_t value) } // 9,12 -uint16_t Timer::get_capture_compare_2_value() +uint16_t Timer::get_capture_compare_2_value() const { return TIM_CCR2(_timer); } @@ -1675,7 +1675,7 @@ void Timer::set_capture_compare_2_value(uint32_t value) TIM_CCR2(_timer) = value; } -uint16_t Timer::get_capture_compare_3_value() +uint16_t Timer::get_capture_compare_3_value() const { return TIM_CCR3(_timer); } @@ -1687,7 +1687,7 @@ void Timer::set_capture_compare_3_value(uint32_t value) } // 9,12 -uint16_t Timer::get_capture_compare_4_value() +uint16_t Timer::get_capture_compare_4_value() const { return TIM_CCR4(_timer); } diff --git a/cm3cpp/timer.hpp b/cm3cpp/timer.hpp index b3fc2de..2fe079b 100644 --- a/cm3cpp/timer.hpp +++ b/cm3cpp/timer.hpp @@ -26,6 +26,8 @@ TIM C++ Wrapper of libopencm3 library for STM32F2, STM32F4 #ifndef CM3CPP_TIMER_H_ #define CM3CPP_TIMER_H_ +#include <cassert> + #include <libopencm3/stm32/rcc.h> #include <libopencm3/stm32/timer.h> @@ -178,10 +180,13 @@ class Timer HI_RISING_EDGE }; - Timer(uint8_t timer_num) using ExtTriggerFilter = tim_ic_filter; using ExtTriggerPrescaler = tim_ic_psc; using ExtTriggerPolarity = tim_et_pol; + + using TimerNumber = uint8_t; + + Timer(TimerNumber timer_num) { #if defined(STM32F2) || defined(STM32F4) switch (timer_num) { @@ -241,6 +246,8 @@ class Timer _timer = TIM14; rcc_periph_reset_pulse(RST_TIM14); break; + default: + assert(false); } #endif } @@ -285,7 +292,7 @@ class Timer Result enable_trigger_interrupt(); Result disable_trigger_interrupt(); // SR/////////////////////////////////////////////////////// - bool get_flag_status(Flag flag); + bool get_flag_status(Flag flag) const; Result clear_flag_status(Flag flag); // EGR////////////////////////////////////////////////////// void update_generation(); @@ -340,28 +347,30 @@ class Timer Result set_capture_compare_4_polarity(Polarity polarity); Result set_capture_compare_4_com_polarity(Polarity polarity); // CNT////////////////////////////////////////////////////// - uint16_t get_counter_value(); - uint32_t get_counter_value32(); + uint16_t get_counter_value() const; + uint32_t get_counter_value32() const; void set_counter_value(uint16_t value); // PSC////////////////////////////////////////////////////// - uint16_t get_prescaler_value(); + uint16_t get_prescaler_value() const; void set_prescaler_value(uint32_t value); // ARR////////////////////////////////////////////////////// - uint16_t get_autoreload_value(); + uint16_t get_autoreload_value() const; void set_autoreload_value(uint32_t value); // CCR1///////////////////////////////////////////////////// - uint16_t get_capture_compare_1_value(); + uint16_t get_capture_compare_1_value() const; void set_capture_compare_1_value(uint32_t value); // CCR2///////////////////////////////////////////////////// - uint16_t get_capture_compare_2_value(); + uint16_t get_capture_compare_2_value() const; void set_capture_compare_2_value(uint32_t value); // CCR3///////////////////////////////////////////////////// - uint16_t get_capture_compare_3_value(); + uint16_t get_capture_compare_3_value() const; void set_capture_compare_3_value(uint32_t value); // CCR4///////////////////////////////////////////////////// - uint16_t get_capture_compare_4_value(); + uint16_t get_capture_compare_4_value() const; void set_capture_compare_4_value(uint32_t value); + uint32_t periph_address() const { return _timer; } + private: uint32_t _timer; }; |