aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrant Miller <[email protected]>2022-10-26 18:36:04 -0500
committerGrant Miller <[email protected]>2022-10-26 18:36:04 -0500
commit171b764d8275b8da3af5650edfac0d5c4c3e3fe1 (patch)
tree1172730dc9b119f4b8e1ec1484197613c09c2be4
parent08c8022583a12dcbea8905249f3c19630462092e (diff)
Refactor: Use `PeripheralRef`
-rw-r--r--embassy-stm32/src/adc/f1.rs8
-rw-r--r--embassy-stm32/src/adc/mod.rs7
-rw-r--r--embassy-stm32/src/adc/v2.rs8
-rw-r--r--embassy-stm32/src/adc/v3.rs8
-rw-r--r--embassy-stm32/src/adc/v4.rs8
5 files changed, 16 insertions, 23 deletions
diff --git a/embassy-stm32/src/adc/f1.rs b/embassy-stm32/src/adc/f1.rs
index 4282a6553..d30ec001d 100644
--- a/embassy-stm32/src/adc/f1.rs
+++ b/embassy-stm32/src/adc/f1.rs
@@ -1,5 +1,3 @@
1use core::marker::PhantomData;
2
3use embassy_hal_common::into_ref; 1use embassy_hal_common::into_ref;
4use embedded_hal_02::blocking::delay::DelayUs; 2use embedded_hal_02::blocking::delay::DelayUs;
5 3
@@ -30,8 +28,8 @@ impl<T: Instance> super::sealed::AdcPin<T> for Temperature {
30} 28}
31 29
32impl<'d, T: Instance> Adc<'d, T> { 30impl<'d, T: Instance> Adc<'d, T> {
33 pub fn new(_peri: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self { 31 pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self {
34 into_ref!(_peri); 32 into_ref!(adc);
35 T::enable(); 33 T::enable();
36 T::reset(); 34 T::reset();
37 unsafe { 35 unsafe {
@@ -60,8 +58,8 @@ impl<'d, T: Instance> Adc<'d, T> {
60 delay.delay_us((1_000_000) / Self::freq().0 + 1); 58 delay.delay_us((1_000_000) / Self::freq().0 + 1);
61 59
62 Self { 60 Self {
61 adc,
63 sample_time: Default::default(), 62 sample_time: Default::default(),
64 phantom: PhantomData,
65 } 63 }
66 } 64 }
67 65
diff --git a/embassy-stm32/src/adc/mod.rs b/embassy-stm32/src/adc/mod.rs
index 6d8afea57..ec49dace7 100644
--- a/embassy-stm32/src/adc/mod.rs
+++ b/embassy-stm32/src/adc/mod.rs
@@ -23,8 +23,9 @@ use crate::peripherals;
23 23
24#[cfg(not(adc_v1))] 24#[cfg(not(adc_v1))]
25pub struct Adc<'d, T: Instance> { 25pub struct Adc<'d, T: Instance> {
26 #[allow(unused)]
27 adc: crate::PeripheralRef<'d, T>,
26 sample_time: SampleTime, 28 sample_time: SampleTime,
27 phantom: core::marker::PhantomData<&'d mut T>,
28} 29}
29 30
30pub(crate) mod sealed { 31pub(crate) mod sealed {
@@ -44,9 +45,9 @@ pub(crate) mod sealed {
44} 45}
45 46
46#[cfg(not(any(adc_f1, adc_v2, adc_v4)))] 47#[cfg(not(any(adc_f1, adc_v2, adc_v4)))]
47pub trait Instance: sealed::Instance + 'static {} 48pub trait Instance: sealed::Instance + crate::Peripheral<P = Self> {}
48#[cfg(any(adc_f1, adc_v2, adc_v4))] 49#[cfg(any(adc_f1, adc_v2, adc_v4))]
49pub trait Instance: sealed::Instance + crate::rcc::RccPeripheral + 'static {} 50pub trait Instance: sealed::Instance + crate::Peripheral<P = Self> + crate::rcc::RccPeripheral {}
50 51
51pub trait AdcPin<T: Instance>: sealed::AdcPin<T> {} 52pub trait AdcPin<T: Instance>: sealed::AdcPin<T> {}
52pub trait InternalChannel<T>: sealed::InternalChannel<T> {} 53pub trait InternalChannel<T>: sealed::InternalChannel<T> {}
diff --git a/embassy-stm32/src/adc/v2.rs b/embassy-stm32/src/adc/v2.rs
index f1e65dc53..11a51f993 100644
--- a/embassy-stm32/src/adc/v2.rs
+++ b/embassy-stm32/src/adc/v2.rs
@@ -1,5 +1,3 @@
1use core::marker::PhantomData;
2
3use embassy_hal_common::into_ref; 1use embassy_hal_common::into_ref;
4use embedded_hal_02::blocking::delay::DelayUs; 2use embedded_hal_02::blocking::delay::DelayUs;
5 3
@@ -96,8 +94,8 @@ impl<'d, T> Adc<'d, T>
96where 94where
97 T: Instance, 95 T: Instance,
98{ 96{
99 pub fn new(_peri: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self { 97 pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self {
100 into_ref!(_peri); 98 into_ref!(adc);
101 T::enable(); 99 T::enable();
102 T::reset(); 100 T::reset();
103 101
@@ -113,8 +111,8 @@ where
113 delay.delay_us(ADC_POWERUP_TIME_US); 111 delay.delay_us(ADC_POWERUP_TIME_US);
114 112
115 Self { 113 Self {
114 adc,
116 sample_time: Default::default(), 115 sample_time: Default::default(),
117 phantom: PhantomData,
118 } 116 }
119 } 117 }
120 118
diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs
index ee5f278b1..8f81cb7a3 100644
--- a/embassy-stm32/src/adc/v3.rs
+++ b/embassy-stm32/src/adc/v3.rs
@@ -1,5 +1,3 @@
1use core::marker::PhantomData;
2
3use embassy_hal_common::into_ref; 1use embassy_hal_common::into_ref;
4use embedded_hal_02::blocking::delay::DelayUs; 2use embedded_hal_02::blocking::delay::DelayUs;
5 3
@@ -61,8 +59,8 @@ impl<T: Instance> super::sealed::AdcPin<T> for Vbat {
61} 59}
62 60
63impl<'d, T: Instance> Adc<'d, T> { 61impl<'d, T: Instance> Adc<'d, T> {
64 pub fn new(_peri: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self { 62 pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self {
65 into_ref!(_peri); 63 into_ref!(adc);
66 enable(); 64 enable();
67 unsafe { 65 unsafe {
68 T::regs().cr().modify(|reg| { 66 T::regs().cr().modify(|reg| {
@@ -92,8 +90,8 @@ impl<'d, T: Instance> Adc<'d, T> {
92 delay.delay_us(1); 90 delay.delay_us(1);
93 91
94 Self { 92 Self {
93 adc,
95 sample_time: Default::default(), 94 sample_time: Default::default(),
96 phantom: PhantomData,
97 } 95 }
98 } 96 }
99 97
diff --git a/embassy-stm32/src/adc/v4.rs b/embassy-stm32/src/adc/v4.rs
index 12f86885c..f5aa0e63d 100644
--- a/embassy-stm32/src/adc/v4.rs
+++ b/embassy-stm32/src/adc/v4.rs
@@ -1,5 +1,3 @@
1use core::marker::PhantomData;
2
3use atomic_polyfill::{AtomicU8, Ordering}; 1use atomic_polyfill::{AtomicU8, Ordering};
4use embedded_hal_02::blocking::delay::DelayUs; 2use embedded_hal_02::blocking::delay::DelayUs;
5use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; 3use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel};
@@ -226,8 +224,8 @@ impl Prescaler {
226} 224}
227 225
228impl<'d, T: Instance> Adc<'d, T> { 226impl<'d, T: Instance> Adc<'d, T> {
229 pub fn new(_peri: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u16>) -> Self { 227 pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u16>) -> Self {
230 embassy_hal_common::into_ref!(_peri); 228 embassy_hal_common::into_ref!(adc);
231 T::enable(); 229 T::enable();
232 T::reset(); 230 T::reset();
233 231
@@ -257,8 +255,8 @@ impl<'d, T: Instance> Adc<'d, T> {
257 } 255 }
258 256
259 let mut s = Self { 257 let mut s = Self {
258 adc,
260 sample_time: Default::default(), 259 sample_time: Default::default(),
261 phantom: PhantomData,
262 }; 260 };
263 s.power_up(delay); 261 s.power_up(delay);
264 s.configure_differential_inputs(); 262 s.configure_differential_inputs();