diff options
| -rw-r--r-- | embassy-stm32/src/adc/mod.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/embassy-stm32/src/adc/mod.rs b/embassy-stm32/src/adc/mod.rs index 12c5751bd..2ff2ed6a8 100644 --- a/embassy-stm32/src/adc/mod.rs +++ b/embassy-stm32/src/adc/mod.rs | |||
| @@ -76,7 +76,12 @@ pub(crate) fn blocking_delay_us(us: u32) { | |||
| 76 | #[cfg(time)] | 76 | #[cfg(time)] |
| 77 | embassy_time::block_for(embassy_time::Duration::from_micros(us)); | 77 | embassy_time::block_for(embassy_time::Duration::from_micros(us)); |
| 78 | #[cfg(not(time))] | 78 | #[cfg(not(time))] |
| 79 | cortex_m::asm::delay(unsafe { crate::rcc::get_freqs() }.sys.unwrap().0 * us / 1_000_000); | 79 | { |
| 80 | let freq = unsafe { crate::rcc::get_freqs() }.sys.unwrap().0 as u64; | ||
| 81 | let us = us as u64; | ||
| 82 | let cycles = freq * us / 1_000_000; | ||
| 83 | cortex_m::asm::delay(cycles as u32); | ||
| 84 | } | ||
| 80 | } | 85 | } |
| 81 | 86 | ||
| 82 | /// ADC instance. | 87 | /// ADC instance. |
