diff --git a/embassy-stm32/src/timer/mod.rs b/embassy-stm32/src/timer/mod.rs index 1d642ed3..9b79f9b4 100644 --- a/embassy-stm32/src/timer/mod.rs +++ b/embassy-stm32/src/timer/mod.rs @@ -49,6 +49,10 @@ pub(crate) mod sealed { fn regs_gp32() -> crate::pac::timer::TimGp32; fn set_frequency(&mut self, frequency: Hertz); + + fn set_count_direction(&mut self, direction: vals::Dir); + + fn set_clock_division(&mut self, ckd: vals::Ckd); } pub trait AdvancedControlInstance: GeneralPurpose16bitInstance { @@ -317,6 +321,14 @@ macro_rules! impl_32bit_timer { crate::pac::$inst } + fn set_count_direction(&mut self, direction: vals::Dir) { + Self::regs_gp32().cr1().modify(|r| r.set_dir(direction)); + } + + fn set_clock_division(&mut self, ckd: vals::Ckd) { + Self::regs_gp32().cr1().modify(|r| r.set_ckd(ckd)); + } + fn set_frequency(&mut self, frequency: Hertz) { use core::convert::TryInto; let f = frequency.0;