aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32
diff options
context:
space:
mode:
authorchemicstry <[email protected]>2022-07-12 15:06:16 +0300
committerchemicstry <[email protected]>2022-07-12 15:11:57 +0300
commit2df665da8ac601e043404e1ca6bd87a4fb01013f (patch)
tree5514b52194332c0a319c813dd5de5468d70b803b /embassy-stm32
parent2adee4af3878cb0e8027752c9d29a6ce236f4ab3 (diff)
Revert "Make advanced timer trait not require general purpose timer trait as the timers are too different."
This reverts commit 4988dfe98175f5d92d896edd2b9ee774a91b28d5.
Diffstat (limited to 'embassy-stm32')
-rw-r--r--embassy-stm32/src/pwm/mod.rs4
-rw-r--r--embassy-stm32/src/timer/mod.rs12
2 files changed, 13 insertions, 3 deletions
diff --git a/embassy-stm32/src/pwm/mod.rs b/embassy-stm32/src/pwm/mod.rs
index 674740cc5..d3713391c 100644
--- a/embassy-stm32/src/pwm/mod.rs
+++ b/embassy-stm32/src/pwm/mod.rs
@@ -54,7 +54,7 @@ impl From<OutputCompareMode> for stm32_metapac::timer::vals::Ocm {
54pub(crate) mod sealed { 54pub(crate) mod sealed {
55 use super::*; 55 use super::*;
56 56
57 pub trait CaptureCompare16bitInstance: crate::timer::sealed::Basic16bitInstance { 57 pub trait CaptureCompare16bitInstance: crate::timer::sealed::GeneralPurpose16bitInstance {
58 /// Global output enable. Does not do anything on non-advanced timers. 58 /// Global output enable. Does not do anything on non-advanced timers.
59 unsafe fn enable_outputs(&mut self, enable: bool); 59 unsafe fn enable_outputs(&mut self, enable: bool);
60 60
@@ -79,7 +79,7 @@ pub(crate) mod sealed {
79} 79}
80 80
81pub trait CaptureCompare16bitInstance: 81pub trait CaptureCompare16bitInstance:
82 sealed::CaptureCompare16bitInstance + crate::timer::Basic16bitInstance + 'static 82 sealed::CaptureCompare16bitInstance + crate::timer::GeneralPurpose16bitInstance + 'static
83{ 83{
84} 84}
85pub trait CaptureCompare32bitInstance: 85pub trait CaptureCompare32bitInstance:
diff --git a/embassy-stm32/src/timer/mod.rs b/embassy-stm32/src/timer/mod.rs
index e92015ee9..772c67686 100644
--- a/embassy-stm32/src/timer/mod.rs
+++ b/embassy-stm32/src/timer/mod.rs
@@ -40,7 +40,7 @@ pub(crate) mod sealed {
40 fn set_frequency(&mut self, frequency: Hertz); 40 fn set_frequency(&mut self, frequency: Hertz);
41 } 41 }
42 42
43 pub trait AdvancedControlInstance: Basic16bitInstance { 43 pub trait AdvancedControlInstance: GeneralPurpose16bitInstance {
44 fn regs_advanced() -> crate::pac::timer::TimAdv; 44 fn regs_advanced() -> crate::pac::timer::TimAdv;
45 } 45 }
46} 46}
@@ -204,11 +204,21 @@ foreach_interrupt! {
204 impl Basic16bitInstance for crate::peripherals::$inst { 204 impl Basic16bitInstance for crate::peripherals::$inst {
205 } 205 }
206 206
207 impl sealed::GeneralPurpose16bitInstance for crate::peripherals::$inst {
208 fn regs_gp16() -> crate::pac::timer::TimGp16 {
209 crate::pac::timer::TimGp16(crate::pac::$inst.0)
210 }
211 }
212
213 impl GeneralPurpose16bitInstance for crate::peripherals::$inst {
214 }
215
207 impl sealed::AdvancedControlInstance for crate::peripherals::$inst { 216 impl sealed::AdvancedControlInstance for crate::peripherals::$inst {
208 fn regs_advanced() -> crate::pac::timer::TimAdv { 217 fn regs_advanced() -> crate::pac::timer::TimAdv {
209 crate::pac::$inst 218 crate::pac::$inst
210 } 219 }
211 } 220 }
221
212 impl AdvancedControlInstance for crate::peripherals::$inst { 222 impl AdvancedControlInstance for crate::peripherals::$inst {
213 } 223 }
214 }; 224 };