aboutsummaryrefslogtreecommitdiff
path: root/rtic-monotonics/src/systick.rs
diff options
context:
space:
mode:
authorGravatar Nils Fitinghoff <nils.fitinghoff@mobilaris.se> 2023-09-14 16:47:52 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2023-09-19 13:31:09 +0000
commita2ec8f983c799dea0a6f57ba97431ded54fc6197 (patch)
tree6e7f5397f2065d7751f13ff6ad9e825e16fc51d2 /rtic-monotonics/src/systick.rs
parent54aec9b3989162a60534620b80cde78d2d5cc1ba (diff)
downloadrtic-a2ec8f983c799dea0a6f57ba97431ded54fc6197.tar.gz
rtic-a2ec8f983c799dea0a6f57ba97431ded54fc6197.tar.zst
rtic-a2ec8f983c799dea0a6f57ba97431ded54fc6197.zip
rtic-monotonics: Implement blocking DelayUs from embedded-hal 1
Diffstat (limited to '')
-rw-r--r--rtic-monotonics/src/systick.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/rtic-monotonics/src/systick.rs b/rtic-monotonics/src/systick.rs
index 9b8fca8a..fb4f8832 100644
--- a/rtic-monotonics/src/systick.rs
+++ b/rtic-monotonics/src/systick.rs
@@ -203,6 +203,15 @@ impl embedded_hal_async::delay::DelayUs for Systick {
}
}
+impl embedded_hal::delay::DelayUs for Systick {
+ fn delay_us(&mut self, us: u32) {
+ #[cfg(feature = "systick-64bit")]
+ let us = u64::from(us);
+ let done = Self::now() + us.micros();
+ while Self::now() < done {}
+ }
+}
+
/// Register the Systick interrupt for the monotonic.
#[macro_export]
macro_rules! create_systick_token {