diff options
| author | Grant Miller <[email protected]> | 2022-10-26 18:36:04 -0500 |
|---|---|---|
| committer | Grant Miller <[email protected]> | 2022-10-26 18:36:04 -0500 |
| commit | 171b764d8275b8da3af5650edfac0d5c4c3e3fe1 (patch) | |
| tree | 1172730dc9b119f4b8e1ec1484197613c09c2be4 | |
| parent | 08c8022583a12dcbea8905249f3c19630462092e (diff) | |
Refactor: Use `PeripheralRef`
| -rw-r--r-- | embassy-stm32/src/adc/f1.rs | 8 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/mod.rs | 7 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v2.rs | 8 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v3.rs | 8 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v4.rs | 8 |
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 @@ | |||
| 1 | use core::marker::PhantomData; | ||
| 2 | |||
| 3 | use embassy_hal_common::into_ref; | 1 | use embassy_hal_common::into_ref; |
| 4 | use embedded_hal_02::blocking::delay::DelayUs; | 2 | use 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 | ||
| 32 | impl<'d, T: Instance> Adc<'d, T> { | 30 | impl<'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))] |
| 25 | pub struct Adc<'d, T: Instance> { | 25 | pub 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 | ||
| 30 | pub(crate) mod sealed { | 31 | pub(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)))] |
| 47 | pub trait Instance: sealed::Instance + 'static {} | 48 | pub 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))] |
| 49 | pub trait Instance: sealed::Instance + crate::rcc::RccPeripheral + 'static {} | 50 | pub trait Instance: sealed::Instance + crate::Peripheral<P = Self> + crate::rcc::RccPeripheral {} |
| 50 | 51 | ||
| 51 | pub trait AdcPin<T: Instance>: sealed::AdcPin<T> {} | 52 | pub trait AdcPin<T: Instance>: sealed::AdcPin<T> {} |
| 52 | pub trait InternalChannel<T>: sealed::InternalChannel<T> {} | 53 | pub 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 @@ | |||
| 1 | use core::marker::PhantomData; | ||
| 2 | |||
| 3 | use embassy_hal_common::into_ref; | 1 | use embassy_hal_common::into_ref; |
| 4 | use embedded_hal_02::blocking::delay::DelayUs; | 2 | use embedded_hal_02::blocking::delay::DelayUs; |
| 5 | 3 | ||
| @@ -96,8 +94,8 @@ impl<'d, T> Adc<'d, T> | |||
| 96 | where | 94 | where |
| 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 @@ | |||
| 1 | use core::marker::PhantomData; | ||
| 2 | |||
| 3 | use embassy_hal_common::into_ref; | 1 | use embassy_hal_common::into_ref; |
| 4 | use embedded_hal_02::blocking::delay::DelayUs; | 2 | use 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 | ||
| 63 | impl<'d, T: Instance> Adc<'d, T> { | 61 | impl<'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 @@ | |||
| 1 | use core::marker::PhantomData; | ||
| 2 | |||
| 3 | use atomic_polyfill::{AtomicU8, Ordering}; | 1 | use atomic_polyfill::{AtomicU8, Ordering}; |
| 4 | use embedded_hal_02::blocking::delay::DelayUs; | 2 | use embedded_hal_02::blocking::delay::DelayUs; |
| 5 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; | 3 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; |
| @@ -226,8 +224,8 @@ impl Prescaler { | |||
| 226 | } | 224 | } |
| 227 | 225 | ||
| 228 | impl<'d, T: Instance> Adc<'d, T> { | 226 | impl<'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(); |
