diff --git a/embassy/Cargo.toml b/embassy/Cargo.toml index d10a8874..9a5467c6 100644 --- a/embassy/Cargo.toml +++ b/embassy/Cargo.toml @@ -17,6 +17,10 @@ nightly = ["embedded-hal-async"] # Implement embedded-hal-async traits if `nightly` is set as well. unstable-traits = ["embedded-hal-1"] +# Display a timestamp of the number of seconds since startup next to defmt log messages +# To use this you must have a time driver provided. +defmt-timestamp-uptime = ["defmt"] + # Enable `embassy::time` module. # NOTE: This feature is only intended to be enabled by crates providing the time driver implementation. # Enabling it directly without supplying a time driver will fail to link. diff --git a/embassy/src/fmt.rs b/embassy/src/fmt.rs index 06697081..115febb5 100644 --- a/embassy/src/fmt.rs +++ b/embassy/src/fmt.rs @@ -195,6 +195,10 @@ macro_rules! unwrap { } } +#[cfg(feature = "defmt-timestamp-uptime")] +// defmt offers a disply hint for microseconds so we convert from millis +defmt::timestamp! {"{=u64:us}", crate::time::Instant::now().as_millis() * 1_000 } + #[derive(Debug, Copy, Clone, Eq, PartialEq)] pub struct NoneError;