From 70662ec4ba1d0ba9edd9d6b7a781c19dec938616 Mon Sep 17 00:00:00 2001 From: Frostie314159 Date: Tue, 29 Aug 2023 08:29:38 +0200 Subject: [PATCH] embassy-time: Introduced reset function for Ticker --- embassy-time/src/timer.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/embassy-time/src/timer.rs b/embassy-time/src/timer.rs index ad5026e62..8996aefbc 100644 --- a/embassy-time/src/timer.rs +++ b/embassy-time/src/timer.rs @@ -133,7 +133,14 @@ impl Ticker { Self { expires_at, duration } } - /// Waits for the next tick + /// Resets the ticker back to its original state. + /// + /// This causes the ticker to go back to zero, even if the current tick isn't over yet. + pub fn reset(&mut self) { + self.expires_at = Instant::now() + self.duration; + } + + /// Waits for the next tick. pub fn next(&mut self) -> impl Future + '_ { poll_fn(|cx| { if self.expires_at <= Instant::now() {