aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy/src/time/duration.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/embassy/src/time/duration.rs b/embassy/src/time/duration.rs
index 8135961ea..ba8960606 100644
--- a/embassy/src/time/duration.rs
+++ b/embassy/src/time/duration.rs
@@ -22,6 +22,10 @@ impl Duration {
22 self.ticks * 1000 / TICKS_PER_SECOND 22 self.ticks * 1000 / TICKS_PER_SECOND
23 } 23 }
24 24
25 pub const fn as_micros(&self) -> u64 {
26 self.ticks * 1_000_000 / TICKS_PER_SECOND
27 }
28
25 pub const fn from_ticks(ticks: u64) -> Duration { 29 pub const fn from_ticks(ticks: u64) -> Duration {
26 Duration { ticks } 30 Duration { ticks }
27 } 31 }
@@ -38,6 +42,15 @@ impl Duration {
38 } 42 }
39 } 43 }
40 44
45 /*
46 NOTE: us delays may not be as accurate
47 */
48 pub const fn from_micros(millis: u64) -> Duration {
49 Duration {
50 ticks: millis * TICKS_PER_SECOND / 1_000_000,
51 }
52 }
53
41 pub fn checked_add(self, rhs: Duration) -> Option<Duration> { 54 pub fn checked_add(self, rhs: Duration) -> Option<Duration> {
42 self.ticks 55 self.ticks
43 .checked_add(rhs.ticks) 56 .checked_add(rhs.ticks)