aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2025-10-29 07:47:37 +0000
committerGitHub <[email protected]>2025-10-29 07:47:37 +0000
commit0b780871a31c7cb933bcbe11963c693001e84946 (patch)
treeed7b8135a77e8a01d170d4ce4b509d9b0c8569e2
parentabcb6e607c4f13bf99c406fbb92480c32ebd0d4a (diff)
parenta3ca44b2b4a41ef872f72477dd1f90aeb855a30d (diff)
Merge pull request #4798 from xoviat/timer-config
timer: add ability to set master mode to low level timers
-rw-r--r--embassy-stm32/CHANGELOG.md1
-rw-r--r--embassy-stm32/src/timer/low_level.rs7
2 files changed, 7 insertions, 1 deletions
diff --git a/embassy-stm32/CHANGELOG.md b/embassy-stm32/CHANGELOG.md
index 000d215b7..0c1c97665 100644
--- a/embassy-stm32/CHANGELOG.md
+++ b/embassy-stm32/CHANGELOG.md
@@ -36,6 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
36- feat: stm32/usart: add `de_assertion_time` and `de_deassertion_time` config options 36- feat: stm32/usart: add `de_assertion_time` and `de_deassertion_time` config options
37- change: stm32/uart: BufferedUartRx now returns all available bytes from the internal buffer 37- change: stm32/uart: BufferedUartRx now returns all available bytes from the internal buffer
38- change: timer: added output compare values 38- change: timer: added output compare values
39- feat: timer: add ability to set master mode
39 40
40## 0.4.0 - 2025-08-26 41## 0.4.0 - 2025-08-26
41 42
diff --git a/embassy-stm32/src/timer/low_level.rs b/embassy-stm32/src/timer/low_level.rs
index 7c02e7e62..82645887e 100644
--- a/embassy-stm32/src/timer/low_level.rs
+++ b/embassy-stm32/src/timer/low_level.rs
@@ -10,7 +10,7 @@ use core::mem::ManuallyDrop;
10 10
11use embassy_hal_internal::Peri; 11use embassy_hal_internal::Peri;
12// Re-export useful enums 12// Re-export useful enums
13pub use stm32_metapac::timer::vals::{FilterValue, Sms as SlaveMode, Ts as TriggerSource}; 13pub use stm32_metapac::timer::vals::{FilterValue, Mms as MasterMode, Sms as SlaveMode, Ts as TriggerSource};
14 14
15use super::*; 15use super::*;
16use crate::pac::timer::vals; 16use crate::pac::timer::vals;
@@ -689,6 +689,11 @@ impl<'d, T: GeneralInstance4Channel> Timer<'d, T> {
689 self.regs_gp16().dier().modify(|w| w.set_ccde(channel.index(), ccde)) 689 self.regs_gp16().dier().modify(|w| w.set_ccde(channel.index(), ccde))
690 } 690 }
691 691
692 /// Set Timer Master Mode
693 pub fn set_master_mode(&self, mms: MasterMode) {
694 self.regs_gp16().cr2().modify(|w| w.set_mms(mms));
695 }
696
692 /// Set Timer Slave Mode 697 /// Set Timer Slave Mode
693 pub fn set_slave_mode(&self, sms: SlaveMode) { 698 pub fn set_slave_mode(&self, sms: SlaveMode) {
694 self.regs_gp16().smcr().modify(|r| r.set_sms(sms)); 699 self.regs_gp16().smcr().modify(|r| r.set_sms(sms));