diff --git a/embassy-time/src/duration.rs b/embassy-time/src/duration.rs
index d3c6f42a9..846a9c3d5 100644
--- a/embassy-time/src/duration.rs
+++ b/embassy-time/src/duration.rs
@@ -81,6 +81,11 @@ impl Duration {
         }
     }
 
+    /// Creates a duration corresponding to the specified Hz.
+    pub const fn from_hz(hz: u64) -> Duration {
+        Duration { ticks: TICK_HZ / hz }
+    }
+
     /// Adds one Duration to another, returning a new Duration or None in the event of an overflow.
     pub fn checked_add(self, rhs: Duration) -> Option<Duration> {
         self.ticks.checked_add(rhs.ticks).map(|ticks| Duration { ticks })