diff options
| author | Andres Vahter <[email protected]> | 2024-04-09 22:32:09 +0300 |
|---|---|---|
| committer | Andres Vahter <[email protected]> | 2024-04-09 22:32:09 +0300 |
| commit | fd802ffdfd5611b9a4e0a967a7a13fd6f8159fa3 (patch) | |
| tree | 52f72fe08719291ae73e3f6a4fd4e76bc44952f1 | |
| parent | c575c7dc6cab49a99f36eedbdd41e97868e1102b (diff) | |
stm32: use embedded_hal_1::delay::DelayNs
This makes delay compatible with https://lib.rs/crates/rtic-monotonics.
| -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/v1.rs | 10 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v2.rs | 4 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v3.rs | 6 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v4.rs | 6 |
6 files changed, 19 insertions, 19 deletions
diff --git a/embassy-stm32/src/adc/f1.rs b/embassy-stm32/src/adc/f1.rs index cecf67947..2dbce8043 100644 --- a/embassy-stm32/src/adc/f1.rs +++ b/embassy-stm32/src/adc/f1.rs | |||
| @@ -3,7 +3,7 @@ use core::marker::PhantomData; | |||
| 3 | use core::task::Poll; | 3 | use core::task::Poll; |
| 4 | 4 | ||
| 5 | use embassy_hal_internal::into_ref; | 5 | use embassy_hal_internal::into_ref; |
| 6 | use embedded_hal_02::blocking::delay::DelayUs; | 6 | use embedded_hal_1::delay::DelayNs; |
| 7 | 7 | ||
| 8 | use crate::adc::{Adc, AdcPin, Instance, SampleTime}; | 8 | use crate::adc::{Adc, AdcPin, Instance, SampleTime}; |
| 9 | use crate::time::Hertz; | 9 | use crate::time::Hertz; |
| @@ -48,7 +48,7 @@ impl<T: Instance> super::SealedAdcPin<T> for Temperature { | |||
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | impl<'d, T: Instance> Adc<'d, T> { | 50 | impl<'d, T: Instance> Adc<'d, T> { |
| 51 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self { | 51 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayNs) -> Self { |
| 52 | into_ref!(adc); | 52 | into_ref!(adc); |
| 53 | T::enable_and_reset(); | 53 | T::enable_and_reset(); |
| 54 | T::regs().cr2().modify(|reg| reg.set_adon(true)); | 54 | T::regs().cr2().modify(|reg| reg.set_adon(true)); |
| @@ -95,7 +95,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 95 | } | 95 | } |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | pub fn enable_vref(&self, _delay: &mut impl DelayUs<u32>) -> Vref { | 98 | pub fn enable_vref(&self, _delay: &mut impl DelayNs) -> Vref { |
| 99 | T::regs().cr2().modify(|reg| { | 99 | T::regs().cr2().modify(|reg| { |
| 100 | reg.set_tsvrefe(true); | 100 | reg.set_tsvrefe(true); |
| 101 | }); | 101 | }); |
diff --git a/embassy-stm32/src/adc/f3.rs b/embassy-stm32/src/adc/f3.rs index c5581dba1..4ffbe5bf1 100644 --- a/embassy-stm32/src/adc/f3.rs +++ b/embassy-stm32/src/adc/f3.rs | |||
| @@ -3,7 +3,7 @@ use core::marker::PhantomData; | |||
| 3 | use core::task::Poll; | 3 | use core::task::Poll; |
| 4 | 4 | ||
| 5 | use embassy_hal_internal::into_ref; | 5 | use embassy_hal_internal::into_ref; |
| 6 | use embedded_hal_02::blocking::delay::DelayUs; | 6 | use embedded_hal_1::delay::DelayNs; |
| 7 | 7 | ||
| 8 | use crate::adc::{Adc, AdcPin, Instance, SampleTime}; | 8 | use crate::adc::{Adc, AdcPin, Instance, SampleTime}; |
| 9 | use crate::interrupt::typelevel::Interrupt; | 9 | use crate::interrupt::typelevel::Interrupt; |
| @@ -58,7 +58,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 58 | pub fn new( | 58 | pub fn new( |
| 59 | adc: impl Peripheral<P = T> + 'd, | 59 | adc: impl Peripheral<P = T> + 'd, |
| 60 | _irq: impl interrupt::typelevel::Binding<T::Interrupt, InterruptHandler<T>> + 'd, | 60 | _irq: impl interrupt::typelevel::Binding<T::Interrupt, InterruptHandler<T>> + 'd, |
| 61 | delay: &mut impl DelayUs<u32>, | 61 | delay: &mut impl DelayNs, |
| 62 | ) -> Self { | 62 | ) -> Self { |
| 63 | use crate::pac::adc::vals; | 63 | use crate::pac::adc::vals; |
| 64 | 64 | ||
| @@ -117,7 +117,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 117 | } | 117 | } |
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | pub fn enable_vref(&self, _delay: &mut impl DelayUs<u32>) -> Vref { | 120 | pub fn enable_vref(&self, _delay: &mut impl DelayNs) -> Vref { |
| 121 | T::common_regs().ccr().modify(|w| w.set_vrefen(true)); | 121 | T::common_regs().ccr().modify(|w| w.set_vrefen(true)); |
| 122 | 122 | ||
| 123 | Vref {} | 123 | Vref {} |
diff --git a/embassy-stm32/src/adc/v1.rs b/embassy-stm32/src/adc/v1.rs index e9b46be80..3099b47d1 100644 --- a/embassy-stm32/src/adc/v1.rs +++ b/embassy-stm32/src/adc/v1.rs | |||
| @@ -3,7 +3,7 @@ use core::marker::PhantomData; | |||
| 3 | use core::task::Poll; | 3 | use core::task::Poll; |
| 4 | 4 | ||
| 5 | use embassy_hal_internal::into_ref; | 5 | use embassy_hal_internal::into_ref; |
| 6 | use embedded_hal_02::blocking::delay::DelayUs; | 6 | use embedded_hal_1::delay::DelayNs; |
| 7 | #[cfg(adc_l0)] | 7 | #[cfg(adc_l0)] |
| 8 | use stm32_metapac::adc::vals::Ckmode; | 8 | use stm32_metapac::adc::vals::Ckmode; |
| 9 | 9 | ||
| @@ -65,7 +65,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 65 | pub fn new( | 65 | pub fn new( |
| 66 | adc: impl Peripheral<P = T> + 'd, | 66 | adc: impl Peripheral<P = T> + 'd, |
| 67 | _irq: impl interrupt::typelevel::Binding<T::Interrupt, InterruptHandler<T>> + 'd, | 67 | _irq: impl interrupt::typelevel::Binding<T::Interrupt, InterruptHandler<T>> + 'd, |
| 68 | delay: &mut impl DelayUs<u32>, | 68 | delay: &mut impl DelayNs, |
| 69 | ) -> Self { | 69 | ) -> Self { |
| 70 | into_ref!(adc); | 70 | into_ref!(adc); |
| 71 | T::enable_and_reset(); | 71 | T::enable_and_reset(); |
| @@ -114,7 +114,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | #[cfg(not(adc_l0))] | 116 | #[cfg(not(adc_l0))] |
| 117 | pub fn enable_vbat(&self, _delay: &mut impl DelayUs<u32>) -> Vbat { | 117 | pub fn enable_vbat(&self, _delay: &mut impl DelayNs) -> Vbat { |
| 118 | // SMP must be ≥ 56 ADC clock cycles when using HSI14. | 118 | // SMP must be ≥ 56 ADC clock cycles when using HSI14. |
| 119 | // | 119 | // |
| 120 | // 6.3.20 Vbat monitoring characteristics | 120 | // 6.3.20 Vbat monitoring characteristics |
| @@ -123,7 +123,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 123 | Vbat | 123 | Vbat |
| 124 | } | 124 | } |
| 125 | 125 | ||
| 126 | pub fn enable_vref(&self, delay: &mut impl DelayUs<u32>) -> Vref { | 126 | pub fn enable_vref(&self, delay: &mut impl DelayNs) -> Vref { |
| 127 | // Table 28. Embedded internal reference voltage | 127 | // Table 28. Embedded internal reference voltage |
| 128 | // tstart = 10μs | 128 | // tstart = 10μs |
| 129 | T::regs().ccr().modify(|reg| reg.set_vrefen(true)); | 129 | T::regs().ccr().modify(|reg| reg.set_vrefen(true)); |
| @@ -131,7 +131,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 131 | Vref | 131 | Vref |
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | pub fn enable_temperature(&self, delay: &mut impl DelayUs<u32>) -> Temperature { | 134 | pub fn enable_temperature(&self, delay: &mut impl DelayNs) -> Temperature { |
| 135 | // SMP must be ≥ 56 ADC clock cycles when using HSI14. | 135 | // SMP must be ≥ 56 ADC clock cycles when using HSI14. |
| 136 | // | 136 | // |
| 137 | // 6.3.19 Temperature sensor characteristics | 137 | // 6.3.19 Temperature sensor characteristics |
diff --git a/embassy-stm32/src/adc/v2.rs b/embassy-stm32/src/adc/v2.rs index a43eb72db..21782cf89 100644 --- a/embassy-stm32/src/adc/v2.rs +++ b/embassy-stm32/src/adc/v2.rs | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | use embassy_hal_internal::into_ref; | 1 | use embassy_hal_internal::into_ref; |
| 2 | use embedded_hal_02::blocking::delay::DelayUs; | 2 | use embedded_hal_1::delay::DelayNs; |
| 3 | 3 | ||
| 4 | use crate::adc::{Adc, AdcPin, Instance, Resolution, SampleTime}; | 4 | use crate::adc::{Adc, AdcPin, Instance, Resolution, SampleTime}; |
| 5 | use crate::peripherals::ADC1; | 5 | use crate::peripherals::ADC1; |
| @@ -97,7 +97,7 @@ impl<'d, T> Adc<'d, T> | |||
| 97 | where | 97 | where |
| 98 | T: Instance, | 98 | T: Instance, |
| 99 | { | 99 | { |
| 100 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self { | 100 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayNs) -> Self { |
| 101 | into_ref!(adc); | 101 | into_ref!(adc); |
| 102 | T::enable_and_reset(); | 102 | T::enable_and_reset(); |
| 103 | 103 | ||
diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs index e25630be2..ba01e71fd 100644 --- a/embassy-stm32/src/adc/v3.rs +++ b/embassy-stm32/src/adc/v3.rs | |||
| @@ -1,6 +1,6 @@ | |||
| 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 | use embedded_hal_02::blocking::delay::DelayUs; | 3 | use embedded_hal_1::delay::DelayNs; |
| 4 | 4 | ||
| 5 | use crate::adc::{Adc, AdcPin, Instance, Resolution, SampleTime}; | 5 | use crate::adc::{Adc, AdcPin, Instance, Resolution, SampleTime}; |
| 6 | use crate::Peripheral; | 6 | use crate::Peripheral; |
| @@ -74,7 +74,7 @@ cfg_if! { | |||
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | impl<'d, T: Instance> Adc<'d, T> { | 76 | impl<'d, T: Instance> Adc<'d, T> { |
| 77 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u32>) -> Self { | 77 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayNs) -> Self { |
| 78 | into_ref!(adc); | 78 | into_ref!(adc); |
| 79 | T::enable_and_reset(); | 79 | T::enable_and_reset(); |
| 80 | T::regs().cr().modify(|reg| { | 80 | T::regs().cr().modify(|reg| { |
| @@ -106,7 +106,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 106 | } | 106 | } |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | pub fn enable_vrefint(&self, delay: &mut impl DelayUs<u32>) -> VrefInt { | 109 | pub fn enable_vrefint(&self, delay: &mut impl DelayNs) -> VrefInt { |
| 110 | #[cfg(not(adc_g0))] | 110 | #[cfg(not(adc_g0))] |
| 111 | T::common_regs().ccr().modify(|reg| { | 111 | T::common_regs().ccr().modify(|reg| { |
| 112 | reg.set_vrefen(true); | 112 | reg.set_vrefen(true); |
diff --git a/embassy-stm32/src/adc/v4.rs b/embassy-stm32/src/adc/v4.rs index 1ae25bea2..4320de714 100644 --- a/embassy-stm32/src/adc/v4.rs +++ b/embassy-stm32/src/adc/v4.rs | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | use embedded_hal_02::blocking::delay::DelayUs; | 1 | use embedded_hal_1::delay::DelayNs; |
| 2 | #[allow(unused)] | 2 | #[allow(unused)] |
| 3 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; | 3 | use pac::adc::vals::{Adcaldif, Boost, Difsel, Exten, Pcsel}; |
| 4 | use pac::adccommon::vals::Presc; | 4 | use pac::adccommon::vals::Presc; |
| @@ -129,7 +129,7 @@ impl Prescaler { | |||
| 129 | 129 | ||
| 130 | impl<'d, T: Instance> Adc<'d, T> { | 130 | impl<'d, T: Instance> Adc<'d, T> { |
| 131 | /// Create a new ADC driver. | 131 | /// Create a new ADC driver. |
| 132 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayUs<u16>) -> Self { | 132 | pub fn new(adc: impl Peripheral<P = T> + 'd, delay: &mut impl DelayNs) -> Self { |
| 133 | embassy_hal_internal::into_ref!(adc); | 133 | embassy_hal_internal::into_ref!(adc); |
| 134 | T::enable_and_reset(); | 134 | T::enable_and_reset(); |
| 135 | 135 | ||
| @@ -173,7 +173,7 @@ impl<'d, T: Instance> Adc<'d, T> { | |||
| 173 | s | 173 | s |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | fn power_up(&mut self, delay: &mut impl DelayUs<u16>) { | 176 | fn power_up(&mut self, delay: &mut impl DelayNs) { |
| 177 | T::regs().cr().modify(|reg| { | 177 | T::regs().cr().modify(|reg| { |
| 178 | reg.set_deeppwd(false); | 178 | reg.set_deeppwd(false); |
| 179 | reg.set_advregen(true); | 179 | reg.set_advregen(true); |
