diff options
| author | Univa <[email protected]> | 2024-05-22 19:00:48 -0400 |
|---|---|---|
| committer | Univa <[email protected]> | 2024-05-22 19:00:48 -0400 |
| commit | 4e9206efb8fa49ad2ea0b5420db1d0e4cc22b6cc (patch) | |
| tree | 3ea074af64e12fb06b7aed509385bb55a9a1e58b | |
| parent | 41e11d86b9d2014c2d2b66dd55522a7dc77ac3d8 (diff) | |
remove InternalChannel and AdcPin
| -rw-r--r-- | embassy-stm32/src/adc/f1.rs | 6 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/f3.rs | 6 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/f3_v1_1.rs | 6 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/g4.rs | 8 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/mod.rs | 11 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v1.rs | 12 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v2.rs | 8 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v3.rs | 12 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v4.rs | 8 |
9 files changed, 8 insertions, 69 deletions
diff --git a/embassy-stm32/src/adc/f1.rs b/embassy-stm32/src/adc/f1.rs index cc7ffdea8..3822d5032 100644 --- a/embassy-stm32/src/adc/f1.rs +++ b/embassy-stm32/src/adc/f1.rs | |||
| @@ -4,7 +4,7 @@ use core::task::Poll; | |||
| 4 | 4 | ||
| 5 | use embassy_hal_internal::into_ref; | 5 | use embassy_hal_internal::into_ref; |
| 6 | 6 | ||
| 7 | use super::{blocking_delay_us, InternalChannel}; | 7 | use super::blocking_delay_us; |
| 8 | use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; | 8 | use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; |
| 9 | use crate::time::Hertz; | 9 | use crate::time::Hertz; |
| 10 | use crate::{interrupt, Peripheral}; | 10 | use crate::{interrupt, Peripheral}; |
| @@ -32,8 +32,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl | |||
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | pub struct Vref; | 34 | pub struct Vref; |
| 35 | impl<T: Instance> InternalChannel<T> for Vref {} | ||
| 36 | impl<T: Instance> super::SealedInternalChannel<T> for Vref {} | ||
| 37 | impl<T: Instance> AdcChannel<T> for Vref {} | 35 | impl<T: Instance> AdcChannel<T> for Vref {} |
| 38 | impl<T: Instance> super::SealedAdcChannel<T> for Vref { | 36 | impl<T: Instance> super::SealedAdcChannel<T> for Vref { |
| 39 | fn channel(&self) -> u8 { | 37 | fn channel(&self) -> u8 { |
| @@ -42,8 +40,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Vref { | |||
| 42 | } | 40 | } |
| 43 | 41 | ||
| 44 | pub struct Temperature; | 42 | pub struct Temperature; |
| 45 | impl<T: Instance> InternalChannel<T> for Temperature {} | ||
| 46 | impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} | ||
| 47 | impl<T: Instance> AdcChannel<T> for Temperature {} | 43 | impl<T: Instance> AdcChannel<T> for Temperature {} |
| 48 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | 44 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { |
| 49 | fn channel(&self) -> u8 { | 45 | fn channel(&self) -> u8 { |
diff --git a/embassy-stm32/src/adc/f3.rs b/embassy-stm32/src/adc/f3.rs index 363ddbe3a..3f076d64b 100644 --- a/embassy-stm32/src/adc/f3.rs +++ b/embassy-stm32/src/adc/f3.rs | |||
| @@ -4,7 +4,7 @@ use core::task::Poll; | |||
| 4 | 4 | ||
| 5 | use embassy_hal_internal::into_ref; | 5 | use embassy_hal_internal::into_ref; |
| 6 | 6 | ||
| 7 | use super::{blocking_delay_us, InternalChannel}; | 7 | use super::blocking_delay_us; |
| 8 | use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; | 8 | use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; |
| 9 | use crate::interrupt::typelevel::Interrupt; | 9 | use crate::interrupt::typelevel::Interrupt; |
| 10 | use crate::time::Hertz; | 10 | use crate::time::Hertz; |
| @@ -32,8 +32,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl | |||
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | pub struct Vref; | 34 | pub struct Vref; |
| 35 | impl<T: Instance> InternalChannel<T> for Vref {} | ||
| 36 | impl<T: Instance> super::SealedInternalChannel<T> for Vref {} | ||
| 37 | impl<T: Instance> AdcChannel<T> for Vref {} | 35 | impl<T: Instance> AdcChannel<T> for Vref {} |
| 38 | impl<T: Instance> super::SealedAdcChannel<T> for Vref { | 36 | impl<T: Instance> super::SealedAdcChannel<T> for Vref { |
| 39 | fn channel(&self) -> u8 { | 37 | fn channel(&self) -> u8 { |
| @@ -49,8 +47,6 @@ impl Vref { | |||
| 49 | } | 47 | } |
| 50 | 48 | ||
| 51 | pub struct Temperature; | 49 | pub struct Temperature; |
| 52 | impl<T: Instance> InternalChannel<T> for Temperature {} | ||
| 53 | impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} | ||
| 54 | impl<T: Instance> AdcChannel<T> for Temperature {} | 50 | impl<T: Instance> AdcChannel<T> for Temperature {} |
| 55 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | 51 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { |
| 56 | fn channel(&self) -> u8 { | 52 | fn channel(&self) -> u8 { |
diff --git a/embassy-stm32/src/adc/f3_v1_1.rs b/embassy-stm32/src/adc/f3_v1_1.rs index 73bfe4876..106956989 100644 --- a/embassy-stm32/src/adc/f3_v1_1.rs +++ b/embassy-stm32/src/adc/f3_v1_1.rs | |||
| @@ -6,7 +6,7 @@ use embassy_futures::yield_now; | |||
| 6 | use embassy_hal_internal::into_ref; | 6 | use embassy_hal_internal::into_ref; |
| 7 | use embassy_time::Instant; | 7 | use embassy_time::Instant; |
| 8 | 8 | ||
| 9 | use super::{InternalChannel, Resolution}; | 9 | use super::Resolution; |
| 10 | use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; | 10 | use crate::adc::{Adc, AdcChannel, Instance, SampleTime}; |
| 11 | use crate::interrupt::typelevel::Interrupt; | 11 | use crate::interrupt::typelevel::Interrupt; |
| 12 | use crate::time::Hertz; | 12 | use crate::time::Hertz; |
| @@ -64,8 +64,6 @@ fn update_vref<T: Instance>(op: i8) { | |||
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | pub struct Vref<T: Instance>(core::marker::PhantomData<T>); | 66 | pub struct Vref<T: Instance>(core::marker::PhantomData<T>); |
| 67 | impl<T: Instance> InternalChannel<T> for Vref<T> {} | ||
| 68 | impl<T: Instance> super::SealedInternalChannel<T> for Vref<T> {} | ||
| 69 | impl<T: Instance> AdcChannel<T> for Vref<T> {} | 67 | impl<T: Instance> AdcChannel<T> for Vref<T> {} |
| 70 | impl<T: Instance> super::SealedAdcChannel<T> for Vref<T> { | 68 | impl<T: Instance> super::SealedAdcChannel<T> for Vref<T> { |
| 71 | fn channel(&self) -> u8 { | 69 | fn channel(&self) -> u8 { |
| @@ -125,8 +123,6 @@ impl<T: Instance> Drop for Vref<T> { | |||
| 125 | } | 123 | } |
| 126 | 124 | ||
| 127 | pub struct Temperature<T: Instance>(core::marker::PhantomData<T>); | 125 | pub struct Temperature<T: Instance>(core::marker::PhantomData<T>); |
| 128 | impl<T: Instance> InternalChannel<T> for Temperature<T> {} | ||
| 129 | impl<T: Instance> super::SealedInternalChannel<T> for Temperature<T> {} | ||
| 130 | impl<T: Instance> AdcChannel<T> for Temperature<T> {} | 126 | impl<T: Instance> AdcChannel<T> for Temperature<T> {} |
| 131 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature<T> { | 127 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature<T> { |
| 132 | fn channel(&self) -> u8 { | 128 | fn channel(&self) -> u8 { |
diff --git a/embassy-stm32/src/adc/g4.rs b/embassy-stm32/src/adc/g4.rs index f9751bd92..ce7f5db70 100644 --- a/embassy-stm32/src/adc/g4.rs +++ b/embassy-stm32/src/adc/g4.rs | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | use pac::adc::vals::{Adcaldif, Difsel, Exten}; | 2 | use pac::adc::vals::{Adcaldif, Difsel, Exten}; |
| 3 | use pac::adccommon::vals::Presc; | 3 | use pac::adccommon::vals::Presc; |
| 4 | 4 | ||
| 5 | use super::{blocking_delay_us, Adc, AdcChannel, Instance, InternalChannel, Resolution, SampleTime}; | 5 | use super::{blocking_delay_us, Adc, AdcChannel, Instance, Resolution, SampleTime}; |
| 6 | use crate::time::Hertz; | 6 | use crate::time::Hertz; |
| 7 | use crate::{pac, Peripheral}; | 7 | use crate::{pac, Peripheral}; |
| 8 | 8 | ||
| @@ -33,8 +33,6 @@ const VBAT_CHANNEL: u8 = 17; | |||
| 33 | // NOTE: Vrefint/Temperature/Vbat are not available on all ADCs, this currently cannot be modeled with stm32-data, so these are available from the software on all ADCs | 33 | // NOTE: Vrefint/Temperature/Vbat are not available on all ADCs, this currently cannot be modeled with stm32-data, so these are available from the software on all ADCs |
| 34 | /// Internal voltage reference channel. | 34 | /// Internal voltage reference channel. |
| 35 | pub struct VrefInt; | 35 | pub struct VrefInt; |
| 36 | impl<T: Instance> InternalChannel<T> for VrefInt {} | ||
| 37 | impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {} | ||
| 38 | impl<T: Instance> AdcChannel<T> for VrefInt {} | 36 | impl<T: Instance> AdcChannel<T> for VrefInt {} |
| 39 | impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { | 37 | impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { |
| 40 | fn channel(&self) -> u8 { | 38 | fn channel(&self) -> u8 { |
| @@ -44,8 +42,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { | |||
| 44 | 42 | ||
| 45 | /// Internal temperature channel. | 43 | /// Internal temperature channel. |
| 46 | pub struct Temperature; | 44 | pub struct Temperature; |
| 47 | impl<T: Instance> InternalChannel<T> for Temperature {} | ||
| 48 | impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} | ||
| 49 | impl<T: Instance> AdcChannel<T> for Temperature {} | 45 | impl<T: Instance> AdcChannel<T> for Temperature {} |
| 50 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | 46 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { |
| 51 | fn channel(&self) -> u8 { | 47 | fn channel(&self) -> u8 { |
| @@ -55,8 +51,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | |||
| 55 | 51 | ||
| 56 | /// Internal battery voltage channel. | 52 | /// Internal battery voltage channel. |
| 57 | pub struct Vbat; | 53 | pub struct Vbat; |
| 58 | impl<T: Instance> InternalChannel<T> for Vbat {} | ||
| 59 | impl<T: Instance> super::SealedInternalChannel<T> for Vbat {} | ||
| 60 | impl<T: Instance> AdcChannel<T> for Vbat {} | 54 | impl<T: Instance> AdcChannel<T> for Vbat {} |
| 61 | impl<T: Instance> super::SealedAdcChannel<T> for Vbat { | 55 | impl<T: Instance> super::SealedAdcChannel<T> for Vbat { |
| 62 | fn channel(&self) -> u8 { | 56 | fn channel(&self) -> u8 { |
diff --git a/embassy-stm32/src/adc/mod.rs b/embassy-stm32/src/adc/mod.rs index 9a15b4434..040ee9c53 100644 --- a/embassy-stm32/src/adc/mod.rs +++ b/embassy-stm32/src/adc/mod.rs | |||
| @@ -60,8 +60,6 @@ trait SealedInstance { | |||
| 60 | fn state() -> &'static State; | 60 | fn state() -> &'static State; |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | pub(crate) trait SealedAdcPin<T: Instance> {} | ||
| 64 | pub(crate) trait SealedInternalChannel<T> {} | ||
| 65 | pub(crate) trait SealedAdcChannel<T> { | 63 | pub(crate) trait SealedAdcChannel<T> { |
| 66 | #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] | 64 | #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] |
| 67 | fn setup(&mut self) {} | 65 | fn setup(&mut self) {} |
| @@ -123,12 +121,6 @@ pub trait Instance: SealedInstance + crate::Peripheral<P = Self> + crate::rcc::R | |||
| 123 | type Interrupt: crate::interrupt::typelevel::Interrupt; | 121 | type Interrupt: crate::interrupt::typelevel::Interrupt; |
| 124 | } | 122 | } |
| 125 | 123 | ||
| 126 | /// ADC pin. | ||
| 127 | #[allow(private_bounds)] | ||
| 128 | pub trait AdcPin<T: Instance>: AdcChannel<T> + SealedAdcPin<T> {} | ||
| 129 | /// ADC internal channel. | ||
| 130 | #[allow(private_bounds)] | ||
| 131 | pub trait InternalChannel<T>: AdcChannel<T> + SealedInternalChannel<T> {} | ||
| 132 | /// ADC channel. | 124 | /// ADC channel. |
| 133 | #[allow(private_bounds)] | 125 | #[allow(private_bounds)] |
| 134 | pub trait AdcChannel<T>: SealedAdcChannel<T> + Sized { | 126 | pub trait AdcChannel<T>: SealedAdcChannel<T> + Sized { |
| @@ -187,9 +179,6 @@ foreach_adc!( | |||
| 187 | 179 | ||
| 188 | macro_rules! impl_adc_pin { | 180 | macro_rules! impl_adc_pin { |
| 189 | ($inst:ident, $pin:ident, $ch:expr) => { | 181 | ($inst:ident, $pin:ident, $ch:expr) => { |
| 190 | impl crate::adc::AdcPin<peripherals::$inst> for crate::peripherals::$pin {} | ||
| 191 | impl crate::adc::SealedAdcPin<peripherals::$inst> for crate::peripherals::$pin {} | ||
| 192 | |||
| 193 | impl crate::adc::AdcChannel<peripherals::$inst> for crate::peripherals::$pin {} | 182 | impl crate::adc::AdcChannel<peripherals::$inst> for crate::peripherals::$pin {} |
| 194 | impl crate::adc::SealedAdcChannel<peripherals::$inst> for crate::peripherals::$pin { | 183 | impl crate::adc::SealedAdcChannel<peripherals::$inst> for crate::peripherals::$pin { |
| 195 | #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] | 184 | #[cfg(any(adc_v1, adc_l0, adc_v2, adc_g4, adc_v4))] |
diff --git a/embassy-stm32/src/adc/v1.rs b/embassy-stm32/src/adc/v1.rs index abd58952d..090790c39 100644 --- a/embassy-stm32/src/adc/v1.rs +++ b/embassy-stm32/src/adc/v1.rs | |||
| @@ -6,7 +6,7 @@ use embassy_hal_internal::into_ref; | |||
| 6 | #[cfg(adc_l0)] | 6 | #[cfg(adc_l0)] |
| 7 | use stm32_metapac::adc::vals::Ckmode; | 7 | use stm32_metapac::adc::vals::Ckmode; |
| 8 | 8 | ||
| 9 | use super::{blocking_delay_us, InternalChannel}; | 9 | use super::blocking_delay_us; |
| 10 | use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; | 10 | use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; |
| 11 | use crate::interrupt::typelevel::Interrupt; | 11 | use crate::interrupt::typelevel::Interrupt; |
| 12 | use crate::peripherals::ADC1; | 12 | use crate::peripherals::ADC1; |
| @@ -36,12 +36,6 @@ impl<T: Instance> interrupt::typelevel::Handler<T::Interrupt> for InterruptHandl | |||
| 36 | pub struct Vbat; | 36 | pub struct Vbat; |
| 37 | 37 | ||
| 38 | #[cfg(not(adc_l0))] | 38 | #[cfg(not(adc_l0))] |
| 39 | impl InternalChannel<ADC1> for Vbat {} | ||
| 40 | |||
| 41 | #[cfg(not(adc_l0))] | ||
| 42 | impl super::SealedInternalChannel<ADC1> for Vbat {} | ||
| 43 | |||
| 44 | #[cfg(not(adc_l0))] | ||
| 45 | impl AdcChannel<ADC1> for Vbat {} | 39 | impl AdcChannel<ADC1> for Vbat {} |
| 46 | 40 | ||
| 47 | #[cfg(not(adc_l0))] | 41 | #[cfg(not(adc_l0))] |
| @@ -52,8 +46,6 @@ impl super::SealedAdcChannel<ADC1> for Vbat { | |||
| 52 | } | 46 | } |
| 53 | 47 | ||
| 54 | pub struct Vref; | 48 | pub struct Vref; |
| 55 | impl InternalChannel<ADC1> for Vref {} | ||
| 56 | impl super::SealedInternalChannel<ADC1> for Vref {} | ||
| 57 | impl AdcChannel<ADC1> for Vref {} | 49 | impl AdcChannel<ADC1> for Vref {} |
| 58 | impl super::SealedAdcChannel<ADC1> for Vref { | 50 | impl super::SealedAdcChannel<ADC1> for Vref { |
| 59 | fn channel(&self) -> u8 { | 51 | fn channel(&self) -> u8 { |
| @@ -62,8 +54,6 @@ impl super::SealedAdcChannel<ADC1> for Vref { | |||
| 62 | } | 54 | } |
| 63 | 55 | ||
| 64 | pub struct Temperature; | 56 | pub struct Temperature; |
| 65 | impl InternalChannel<ADC1> for Temperature {} | ||
| 66 | impl super::SealedInternalChannel<ADC1> for Temperature {} | ||
| 67 | impl AdcChannel<ADC1> for Temperature {} | 57 | impl AdcChannel<ADC1> for Temperature {} |
| 68 | impl super::SealedAdcChannel<ADC1> for Temperature { | 58 | impl super::SealedAdcChannel<ADC1> for Temperature { |
| 69 | fn channel(&self) -> u8 { | 59 | fn channel(&self) -> u8 { |
diff --git a/embassy-stm32/src/adc/v2.rs b/embassy-stm32/src/adc/v2.rs index f7b791903..033108195 100644 --- a/embassy-stm32/src/adc/v2.rs +++ b/embassy-stm32/src/adc/v2.rs | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | use embassy_hal_internal::into_ref; | 1 | use embassy_hal_internal::into_ref; |
| 2 | 2 | ||
| 3 | use super::{blocking_delay_us, InternalChannel}; | 3 | use super::blocking_delay_us; |
| 4 | use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; | 4 | use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; |
| 5 | use crate::peripherals::ADC1; | 5 | use crate::peripherals::ADC1; |
| 6 | use crate::time::Hertz; | 6 | use crate::time::Hertz; |
| @@ -12,8 +12,6 @@ pub const VREF_DEFAULT_MV: u32 = 3300; | |||
| 12 | pub const VREF_CALIB_MV: u32 = 3300; | 12 | pub const VREF_CALIB_MV: u32 = 3300; |
| 13 | 13 | ||
| 14 | pub struct VrefInt; | 14 | pub struct VrefInt; |
| 15 | impl InternalChannel<ADC1> for VrefInt {} | ||
| 16 | impl super::SealedInternalChannel<ADC1> for VrefInt {} | ||
| 17 | impl AdcChannel<ADC1> for VrefInt {} | 15 | impl AdcChannel<ADC1> for VrefInt {} |
| 18 | impl super::SealedAdcChannel<ADC1> for VrefInt { | 16 | impl super::SealedAdcChannel<ADC1> for VrefInt { |
| 19 | fn channel(&self) -> u8 { | 17 | fn channel(&self) -> u8 { |
| @@ -29,8 +27,6 @@ impl VrefInt { | |||
| 29 | } | 27 | } |
| 30 | 28 | ||
| 31 | pub struct Temperature; | 29 | pub struct Temperature; |
| 32 | impl InternalChannel<ADC1> for Temperature {} | ||
| 33 | impl super::SealedInternalChannel<ADC1> for Temperature {} | ||
| 34 | impl AdcChannel<ADC1> for Temperature {} | 30 | impl AdcChannel<ADC1> for Temperature {} |
| 35 | impl super::SealedAdcChannel<ADC1> for Temperature { | 31 | impl super::SealedAdcChannel<ADC1> for Temperature { |
| 36 | fn channel(&self) -> u8 { | 32 | fn channel(&self) -> u8 { |
| @@ -52,8 +48,6 @@ impl Temperature { | |||
| 52 | } | 48 | } |
| 53 | 49 | ||
| 54 | pub struct Vbat; | 50 | pub struct Vbat; |
| 55 | impl InternalChannel<ADC1> for Vbat {} | ||
| 56 | impl super::SealedInternalChannel<ADC1> for Vbat {} | ||
| 57 | impl AdcChannel<ADC1> for Vbat {} | 51 | impl AdcChannel<ADC1> for Vbat {} |
| 58 | impl super::SealedAdcChannel<ADC1> for Vbat { | 52 | impl super::SealedAdcChannel<ADC1> for Vbat { |
| 59 | fn channel(&self) -> u8 { | 53 | fn channel(&self) -> u8 { |
diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs index 36e0e3df3..be857f4dd 100644 --- a/embassy-stm32/src/adc/v3.rs +++ b/embassy-stm32/src/adc/v3.rs | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | use cfg_if::cfg_if; | 1 | use cfg_if::cfg_if; |
| 2 | use embassy_hal_internal::into_ref; | 2 | use embassy_hal_internal::into_ref; |
| 3 | 3 | ||
| 4 | use super::{blocking_delay_us, InternalChannel}; | 4 | use super::blocking_delay_us; |
| 5 | use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; | 5 | use crate::adc::{Adc, AdcChannel, Instance, Resolution, SampleTime}; |
| 6 | use crate::Peripheral; | 6 | use crate::Peripheral; |
| 7 | 7 | ||
| @@ -11,8 +11,6 @@ pub const VREF_DEFAULT_MV: u32 = 3300; | |||
| 11 | pub const VREF_CALIB_MV: u32 = 3000; | 11 | pub const VREF_CALIB_MV: u32 = 3000; |
| 12 | 12 | ||
| 13 | pub struct VrefInt; | 13 | pub struct VrefInt; |
| 14 | impl<T: Instance> InternalChannel<T> for VrefInt {} | ||
| 15 | impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {} | ||
| 16 | impl<T: Instance> AdcChannel<T> for VrefInt {} | 14 | impl<T: Instance> AdcChannel<T> for VrefInt {} |
| 17 | impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { | 15 | impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { |
| 18 | fn channel(&self) -> u8 { | 16 | fn channel(&self) -> u8 { |
| @@ -32,8 +30,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { | |||
| 32 | } | 30 | } |
| 33 | 31 | ||
| 34 | pub struct Temperature; | 32 | pub struct Temperature; |
| 35 | impl<T: Instance> InternalChannel<T> for Temperature {} | ||
| 36 | impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} | ||
| 37 | impl<T: Instance> AdcChannel<T> for Temperature {} | 33 | impl<T: Instance> AdcChannel<T> for Temperature {} |
| 38 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | 34 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { |
| 39 | fn channel(&self) -> u8 { | 35 | fn channel(&self) -> u8 { |
| @@ -53,8 +49,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | |||
| 53 | } | 49 | } |
| 54 | 50 | ||
| 55 | pub struct Vbat; | 51 | pub struct Vbat; |
| 56 | impl<T: Instance> InternalChannel<T> for Vbat {} | ||
| 57 | impl<T: Instance> super::SealedInternalChannel<T> for Vbat {} | ||
| 58 | impl<T: Instance> AdcChannel<T> for Vbat {} | 52 | impl<T: Instance> AdcChannel<T> for Vbat {} |
| 59 | impl<T: Instance> super::SealedAdcChannel<T> for Vbat { | 53 | impl<T: Instance> super::SealedAdcChannel<T> for Vbat { |
| 60 | fn channel(&self) -> u8 { | 54 | fn channel(&self) -> u8 { |
| @@ -76,8 +70,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Vbat { | |||
| 76 | cfg_if! { | 70 | cfg_if! { |
| 77 | if #[cfg(adc_h5)] { | 71 | if #[cfg(adc_h5)] { |
| 78 | pub struct VddCore; | 72 | pub struct VddCore; |
| 79 | impl<T: Instance> InternalChannel<T> for VddCore {} | ||
| 80 | impl<T: Instance> super::SealedInternalChannel<T> for VddCore {} | ||
| 81 | impl<T: Instance> AdcChannel<T> for VddCore {} | 73 | impl<T: Instance> AdcChannel<T> for VddCore {} |
| 82 | impl<T: Instance> super::SealedAdcChannel<T> for VddCore { | 74 | impl<T: Instance> super::SealedAdcChannel<T> for VddCore { |
| 83 | fn channel(&self) -> u8 { | 75 | fn channel(&self) -> u8 { |
| @@ -90,8 +82,6 @@ cfg_if! { | |||
| 90 | cfg_if! { | 82 | cfg_if! { |
| 91 | if #[cfg(adc_u0)] { | 83 | if #[cfg(adc_u0)] { |
| 92 | pub struct DacOut; | 84 | pub struct DacOut; |
| 93 | impl<T: Instance> InternalChannel<T> for DacOut {} | ||
| 94 | impl<T: Instance> super::SealedInternalChannel<T> for DacOut {} | ||
| 95 | impl<T: Instance> AdcChannel<T> for DacOut {} | 85 | impl<T: Instance> AdcChannel<T> for DacOut {} |
| 96 | impl<T: Instance> super::SealedAdcChannel<T> for DacOut { | 86 | impl<T: Instance> super::SealedAdcChannel<T> for DacOut { |
| 97 | fn channel(&self) -> u8 { | 87 | fn channel(&self) -> u8 { |
diff --git a/embassy-stm32/src/adc/v4.rs b/embassy-stm32/src/adc/v4.rs index bf3a55797..f564114c2 100644 --- a/embassy-stm32/src/adc/v4.rs +++ b/embassy-stm32/src/adc/v4.rs | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; | 2 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; |
| 3 | use pac::adccommon::vals::Presc; | 3 | use pac::adccommon::vals::Presc; |
| 4 | 4 | ||
| 5 | use super::{blocking_delay_us, Adc, AdcChannel, Instance, InternalChannel, Resolution, SampleTime}; | 5 | use super::{blocking_delay_us, Adc, AdcChannel, Instance, Resolution, SampleTime}; |
| 6 | use crate::time::Hertz; | 6 | use crate::time::Hertz; |
| 7 | use crate::{pac, Peripheral}; | 7 | use crate::{pac, Peripheral}; |
| 8 | 8 | ||
| @@ -33,8 +33,6 @@ const VBAT_CHANNEL: u8 = 17; | |||
| 33 | // NOTE: Vrefint/Temperature/Vbat are not available on all ADCs, this currently cannot be modeled with stm32-data, so these are available from the software on all ADCs | 33 | // NOTE: Vrefint/Temperature/Vbat are not available on all ADCs, this currently cannot be modeled with stm32-data, so these are available from the software on all ADCs |
| 34 | /// Internal voltage reference channel. | 34 | /// Internal voltage reference channel. |
| 35 | pub struct VrefInt; | 35 | pub struct VrefInt; |
| 36 | impl<T: Instance> InternalChannel<T> for VrefInt {} | ||
| 37 | impl<T: Instance> super::SealedInternalChannel<T> for VrefInt {} | ||
| 38 | impl<T: Instance> AdcChannel<T> for VrefInt {} | 36 | impl<T: Instance> AdcChannel<T> for VrefInt {} |
| 39 | impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { | 37 | impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { |
| 40 | fn channel(&self) -> u8 { | 38 | fn channel(&self) -> u8 { |
| @@ -44,8 +42,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for VrefInt { | |||
| 44 | 42 | ||
| 45 | /// Internal temperature channel. | 43 | /// Internal temperature channel. |
| 46 | pub struct Temperature; | 44 | pub struct Temperature; |
| 47 | impl<T: Instance> InternalChannel<T> for Temperature {} | ||
| 48 | impl<T: Instance> super::SealedInternalChannel<T> for Temperature {} | ||
| 49 | impl<T: Instance> AdcChannel<T> for Temperature {} | 45 | impl<T: Instance> AdcChannel<T> for Temperature {} |
| 50 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | 46 | impl<T: Instance> super::SealedAdcChannel<T> for Temperature { |
| 51 | fn channel(&self) -> u8 { | 47 | fn channel(&self) -> u8 { |
| @@ -55,8 +51,6 @@ impl<T: Instance> super::SealedAdcChannel<T> for Temperature { | |||
| 55 | 51 | ||
| 56 | /// Internal battery voltage channel. | 52 | /// Internal battery voltage channel. |
| 57 | pub struct Vbat; | 53 | pub struct Vbat; |
| 58 | impl<T: Instance> InternalChannel<T> for Vbat {} | ||
| 59 | impl<T: Instance> super::SealedInternalChannel<T> for Vbat {} | ||
| 60 | impl<T: Instance> AdcChannel<T> for Vbat {} | 54 | impl<T: Instance> AdcChannel<T> for Vbat {} |
| 61 | impl<T: Instance> super::SealedAdcChannel<T> for Vbat { | 55 | impl<T: Instance> super::SealedAdcChannel<T> for Vbat { |
| 62 | fn channel(&self) -> u8 { | 56 | fn channel(&self) -> u8 { |
