[package] name = "embassy-time" version = "0.1.5" edition = "2021" description = "Instant and Duration for embedded no-std systems, with async timer support" repository = "https://github.com/embassy-rs/embassy" readme = "README.md" license = "MIT OR Apache-2.0" categories = [ "embedded", "no-std", "concurrency", "asynchronous", ] # Prevent multiple copies of this crate in the same binary. # Needed because different copies might get different tick rates, causing # wrong delays if the time driver is using one copy and user code is using another. # This is especially common when mixing crates from crates.io and git. links = "embassy-time" [package.metadata.embassy_docs] src_base = "https://github.com/embassy-rs/embassy/blob/embassy-time-v$VERSION/embassy-time/src/" src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-time/src/" features = ["nightly", "defmt", "unstable-traits", "std"] target = "x86_64-unknown-linux-gnu" [package.metadata.docs.rs] features = ["nightly", "defmt", "unstable-traits", "std"] [features] std = ["tick-hz-1_000_000", "critical-section/std"] wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:wasm-timer", "tick-hz-1_000_000"] # Enable nightly-only features nightly = ["embedded-hal-async"] # Implement embedded-hal 1.0 alpha and embedded-hal-async traits. # 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"] # Create a global, generic queue that can be used with any executor # To use this you must have a time driver provided. generic-queue = [] # Set the number of timers for the generic queue. # # At most 1 `generic-queue-*` feature can be enabled. If none is enabled, a default of 64 timers is used. # # When using embassy-time from libraries, you should *not* enable any `generic-queue-*` feature, to allow the # end user to pick. generic-queue-8 = ["generic-queue"] generic-queue-16 = ["generic-queue"] generic-queue-32 = ["generic-queue"] generic-queue-64 = ["generic-queue"] generic-queue-128 = ["generic-queue"] # Create a `MockDriver` that can be manually advanced for testing purposes. mock-driver = ["tick-hz-1_000_000"] # Set the `embassy_time` tick rate. # # At most 1 `tick-*` feature can be enabled. If none is enabled, a default of 1MHz is used. # # If the time driver in use supports using arbitrary tick rates, you can enable one `tick-*` # feature from your binary crate to set the tick rate. The driver will use configured tick rate. # If the time driver supports a fixed tick rate, it will enable one feature itself, so you should # not enable one. Check the time driver documentation for details. # # When using embassy-time from libraries, you should *not* enable any `tick-*` feature, to allow the # end user or the driver to pick. # BEGIN TICKS # Generated by gen_tick.py. DO NOT EDIT. tick-hz-1 = [] tick-hz-10 = [] tick-hz-100 = [] tick-hz-1_000 = [] tick-hz-10_000 = [] tick-hz-100_000 = [] tick-hz-1_000_000 = [] tick-hz-10_000_000 = [] tick-hz-100_000_000 = [] tick-hz-1_000_000_000 = [] tick-hz-2 = [] tick-hz-4 = [] tick-hz-8 = [] tick-hz-16 = [] tick-hz-32 = [] tick-hz-64 = [] tick-hz-128 = [] tick-hz-256 = [] tick-hz-512 = [] tick-hz-1_024 = [] tick-hz-2_048 = [] tick-hz-4_096 = [] tick-hz-8_192 = [] tick-hz-16_384 = [] tick-hz-32_768 = [] tick-hz-65_536 = [] tick-hz-131_072 = [] tick-hz-262_144 = [] tick-hz-524_288 = [] tick-hz-1_048_576 = [] tick-hz-2_097_152 = [] tick-hz-4_194_304 = [] tick-hz-8_388_608 = [] tick-hz-16_777_216 = [] tick-hz-2_000 = [] tick-hz-4_000 = [] tick-hz-8_000 = [] tick-hz-16_000 = [] tick-hz-32_000 = [] tick-hz-64_000 = [] tick-hz-128_000 = [] tick-hz-256_000 = [] tick-hz-512_000 = [] tick-hz-1_024_000 = [] tick-hz-2_048_000 = [] tick-hz-4_096_000 = [] tick-hz-8_192_000 = [] tick-hz-16_384_000 = [] tick-hz-32_768_000 = [] tick-hz-65_536_000 = [] tick-hz-131_072_000 = [] tick-hz-262_144_000 = [] tick-hz-524_288_000 = [] tick-hz-20_000 = [] tick-hz-40_000 = [] tick-hz-80_000 = [] tick-hz-160_000 = [] tick-hz-320_000 = [] tick-hz-640_000 = [] tick-hz-1_280_000 = [] tick-hz-2_560_000 = [] tick-hz-5_120_000 = [] tick-hz-10_240_000 = [] tick-hz-20_480_000 = [] tick-hz-40_960_000 = [] tick-hz-81_920_000 = [] tick-hz-163_840_000 = [] tick-hz-327_680_000 = [] tick-hz-655_360_000 = [] tick-hz-1_310_720_000 = [] tick-hz-2_621_440_000 = [] tick-hz-5_242_880_000 = [] tick-hz-2_000_000 = [] tick-hz-3_000_000 = [] tick-hz-4_000_000 = [] tick-hz-6_000_000 = [] tick-hz-8_000_000 = [] tick-hz-9_000_000 = [] tick-hz-12_000_000 = [] tick-hz-16_000_000 = [] tick-hz-18_000_000 = [] tick-hz-24_000_000 = [] tick-hz-32_000_000 = [] tick-hz-36_000_000 = [] tick-hz-48_000_000 = [] tick-hz-64_000_000 = [] tick-hz-72_000_000 = [] tick-hz-96_000_000 = [] tick-hz-128_000_000 = [] tick-hz-144_000_000 = [] tick-hz-192_000_000 = [] tick-hz-256_000_000 = [] tick-hz-288_000_000 = [] tick-hz-384_000_000 = [] tick-hz-512_000_000 = [] tick-hz-576_000_000 = [] tick-hz-768_000_000 = [] tick-hz-20_000_000 = [] tick-hz-30_000_000 = [] tick-hz-40_000_000 = [] tick-hz-50_000_000 = [] tick-hz-60_000_000 = [] tick-hz-70_000_000 = [] tick-hz-80_000_000 = [] tick-hz-90_000_000 = [] tick-hz-110_000_000 = [] tick-hz-120_000_000 = [] tick-hz-130_000_000 = [] tick-hz-140_000_000 = [] tick-hz-150_000_000 = [] tick-hz-160_000_000 = [] tick-hz-170_000_000 = [] tick-hz-180_000_000 = [] tick-hz-190_000_000 = [] tick-hz-200_000_000 = [] tick-hz-210_000_000 = [] tick-hz-220_000_000 = [] tick-hz-230_000_000 = [] tick-hz-240_000_000 = [] tick-hz-250_000_000 = [] tick-hz-260_000_000 = [] tick-hz-270_000_000 = [] tick-hz-280_000_000 = [] tick-hz-290_000_000 = [] tick-hz-300_000_000 = [] tick-hz-320_000_000 = [] tick-hz-340_000_000 = [] tick-hz-360_000_000 = [] tick-hz-380_000_000 = [] tick-hz-400_000_000 = [] tick-hz-420_000_000 = [] tick-hz-440_000_000 = [] tick-hz-460_000_000 = [] tick-hz-480_000_000 = [] tick-hz-500_000_000 = [] tick-hz-520_000_000 = [] tick-hz-540_000_000 = [] tick-hz-560_000_000 = [] tick-hz-580_000_000 = [] tick-hz-600_000_000 = [] tick-hz-620_000_000 = [] tick-hz-640_000_000 = [] tick-hz-660_000_000 = [] tick-hz-680_000_000 = [] tick-hz-700_000_000 = [] tick-hz-720_000_000 = [] tick-hz-740_000_000 = [] tick-hz-760_000_000 = [] tick-hz-780_000_000 = [] tick-hz-800_000_000 = [] tick-hz-820_000_000 = [] tick-hz-840_000_000 = [] tick-hz-860_000_000 = [] tick-hz-880_000_000 = [] tick-hz-900_000_000 = [] tick-hz-920_000_000 = [] tick-hz-940_000_000 = [] tick-hz-960_000_000 = [] tick-hz-980_000_000 = [] # END TICKS [dependencies] defmt = { version = "0.3", optional = true } log = { version = "0.4.14", optional = true } embedded-hal-02 = { package = "embedded-hal", version = "0.2.6" } embedded-hal-1 = { package = "embedded-hal", version = "=1.0.0-rc.1", optional = true} embedded-hal-async = { version = "=1.0.0-rc.1", optional = true} futures-util = { version = "0.3.17", default-features = false } critical-section = "1.1" cfg-if = "1.0.0" heapless = "0.8" # WASM dependencies wasm-bindgen = { version = "0.2.81", optional = true } js-sys = { version = "0.3", optional = true } wasm-timer = { version = "0.2.5", optional = true } [dev-dependencies] serial_test = "0.9" critical-section = { version = "1.1", features = ["std"] } embassy-executor = { version = "0.3.3", path = "../embassy-executor", features = ["nightly"] }