Improved documentation

* Documented features including all tick rates
* Corrected some out-of-date information
* Sorted tick rate features
* Removed gen_tick.py dependency on toml
* Restructured README.md to better explain tick rate, more
  clearly prioritise time driver docs, correct header levels
This commit is contained in:
Barnaby Walters 2023-12-22 17:08:39 +01:00
parent 87c03037e3
commit 0fb57ef87d
5 changed files with 519 additions and 328 deletions

View File

@ -32,204 +32,376 @@ features = ["defmt", "std"]
std = ["tick-hz-1_000_000", "critical-section/std"] std = ["tick-hz-1_000_000", "critical-section/std"]
wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:wasm-timer", "tick-hz-1_000_000"] wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:wasm-timer", "tick-hz-1_000_000"]
# Display a timestamp of the number of seconds since startup next to defmt log messages ## 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. ## To use this you must have a time driver provided.
defmt-timestamp-uptime = ["defmt"] defmt-timestamp-uptime = ["defmt"]
# Create a global, generic queue that can be used with any executor ## Create a `MockDriver` that can be manually advanced for testing purposes.
# 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"] mock-driver = ["tick-hz-1_000_000"]
# Set the `embassy_time` tick rate. #! ### Generic Queue
#
# At most 1 `tick-*` feature can be enabled. If none is enabled, a default of 1MHz is used. ## Create a global, generic queue that can be used with any executor
# ## To use this you must have a time driver provided.
# If the time driver in use supports using arbitrary tick rates, you can enable one `tick-*` generic-queue = []
# 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 #! The following features set how many timers are used for the generic queue. At most 1
# not enable one. Check the time driver documentation for details. #! `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 `tick-*` feature, to allow the #! When using embassy-time from libraries, you should *not* enable any `generic-queue-*` feature, to allow the
# end user or the driver to pick. #! end user to pick.
## Generic Queue with 8 timers
generic-queue-8 = ["generic-queue"]
## Generic Queue with 16 timers
generic-queue-16 = ["generic-queue"]
## Generic Queue with 32 timers
generic-queue-32 = ["generic-queue"]
## Generic Queue with 64 timers
generic-queue-64 = ["generic-queue"]
## Generic Queue with 128 timers
generic-queue-128 = ["generic-queue"]
#! ### 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.
#! <details>
#! <summary>Available tick rates:</summary>
#! <!-- Next line must be left empty for the features to render correctly! -->
#!
# BEGIN TICKS # BEGIN TICKS
# Generated by gen_tick.py. DO NOT EDIT. # Generated by gen_tick.py. DO NOT EDIT.
## 1Hz Tick Rate
tick-hz-1 = [] tick-hz-1 = []
tick-hz-10 = [] ## 2Hz Tick Rate
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-2 = []
## 4Hz Tick Rate
tick-hz-4 = [] tick-hz-4 = []
## 8Hz Tick Rate
tick-hz-8 = [] tick-hz-8 = []
## 10Hz Tick Rate
tick-hz-10 = []
## 16Hz Tick Rate
tick-hz-16 = [] tick-hz-16 = []
## 32Hz Tick Rate
tick-hz-32 = [] tick-hz-32 = []
## 64Hz Tick Rate
tick-hz-64 = [] tick-hz-64 = []
## 100Hz Tick Rate
tick-hz-100 = []
## 128Hz Tick Rate
tick-hz-128 = [] tick-hz-128 = []
## 256Hz Tick Rate
tick-hz-256 = [] tick-hz-256 = []
## 512Hz Tick Rate
tick-hz-512 = [] tick-hz-512 = []
## 1.0kHz Tick Rate
tick-hz-1_000 = []
## 1.024kHz Tick Rate
tick-hz-1_024 = [] tick-hz-1_024 = []
tick-hz-2_048 = [] ## 2.0kHz Tick Rate
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-2_000 = []
## 2.048kHz Tick Rate
tick-hz-2_048 = []
## 4.0kHz Tick Rate
tick-hz-4_000 = [] tick-hz-4_000 = []
## 4.096kHz Tick Rate
tick-hz-4_096 = []
## 8.0kHz Tick Rate
tick-hz-8_000 = [] tick-hz-8_000 = []
## 8.192kHz Tick Rate
tick-hz-8_192 = []
## 10.0kHz Tick Rate
tick-hz-10_000 = []
## 16.0kHz Tick Rate
tick-hz-16_000 = [] tick-hz-16_000 = []
tick-hz-32_000 = [] ## 16.384kHz Tick Rate
tick-hz-64_000 = [] tick-hz-16_384 = []
tick-hz-128_000 = [] ## 20.0kHz Tick Rate
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-20_000 = []
## 32.0kHz Tick Rate
tick-hz-32_000 = []
## 32.768kHz Tick Rate
tick-hz-32_768 = []
## 40.0kHz Tick Rate
tick-hz-40_000 = [] tick-hz-40_000 = []
## 64.0kHz Tick Rate
tick-hz-64_000 = []
## 65.536kHz Tick Rate
tick-hz-65_536 = []
## 80.0kHz Tick Rate
tick-hz-80_000 = [] tick-hz-80_000 = []
## 100.0kHz Tick Rate
tick-hz-100_000 = []
## 128.0kHz Tick Rate
tick-hz-128_000 = []
## 131.072kHz Tick Rate
tick-hz-131_072 = []
## 160.0kHz Tick Rate
tick-hz-160_000 = [] tick-hz-160_000 = []
## 256.0kHz Tick Rate
tick-hz-256_000 = []
## 262.144kHz Tick Rate
tick-hz-262_144 = []
## 320.0kHz Tick Rate
tick-hz-320_000 = [] tick-hz-320_000 = []
## 512.0kHz Tick Rate
tick-hz-512_000 = []
## 524.288kHz Tick Rate
tick-hz-524_288 = []
## 640.0kHz Tick Rate
tick-hz-640_000 = [] tick-hz-640_000 = []
## 1.0MHz Tick Rate
tick-hz-1_000_000 = []
## 1.024MHz Tick Rate
tick-hz-1_024_000 = []
## 1.048576MHz Tick Rate
tick-hz-1_048_576 = []
## 1.28MHz Tick Rate
tick-hz-1_280_000 = [] tick-hz-1_280_000 = []
tick-hz-2_560_000 = [] ## 2.0MHz Tick Rate
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-2_000_000 = []
## 2.048MHz Tick Rate
tick-hz-2_048_000 = []
## 2.097152MHz Tick Rate
tick-hz-2_097_152 = []
## 2.56MHz Tick Rate
tick-hz-2_560_000 = []
## 3.0MHz Tick Rate
tick-hz-3_000_000 = [] tick-hz-3_000_000 = []
## 4.0MHz Tick Rate
tick-hz-4_000_000 = [] tick-hz-4_000_000 = []
## 4.096MHz Tick Rate
tick-hz-4_096_000 = []
## 4.194304MHz Tick Rate
tick-hz-4_194_304 = []
## 5.12MHz Tick Rate
tick-hz-5_120_000 = []
## 6.0MHz Tick Rate
tick-hz-6_000_000 = [] tick-hz-6_000_000 = []
## 8.0MHz Tick Rate
tick-hz-8_000_000 = [] tick-hz-8_000_000 = []
## 8.192MHz Tick Rate
tick-hz-8_192_000 = []
## 8.388608MHz Tick Rate
tick-hz-8_388_608 = []
## 9.0MHz Tick Rate
tick-hz-9_000_000 = [] tick-hz-9_000_000 = []
## 10.0MHz Tick Rate
tick-hz-10_000_000 = []
## 10.24MHz Tick Rate
tick-hz-10_240_000 = []
## 12.0MHz Tick Rate
tick-hz-12_000_000 = [] tick-hz-12_000_000 = []
## 16.0MHz Tick Rate
tick-hz-16_000_000 = [] tick-hz-16_000_000 = []
## 16.384MHz Tick Rate
tick-hz-16_384_000 = []
## 16.777216MHz Tick Rate
tick-hz-16_777_216 = []
## 18.0MHz Tick Rate
tick-hz-18_000_000 = [] tick-hz-18_000_000 = []
tick-hz-24_000_000 = [] ## 20.0MHz Tick Rate
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-20_000_000 = []
## 20.48MHz Tick Rate
tick-hz-20_480_000 = []
## 24.0MHz Tick Rate
tick-hz-24_000_000 = []
## 30.0MHz Tick Rate
tick-hz-30_000_000 = [] tick-hz-30_000_000 = []
## 32.0MHz Tick Rate
tick-hz-32_000_000 = []
## 32.768MHz Tick Rate
tick-hz-32_768_000 = []
## 36.0MHz Tick Rate
tick-hz-36_000_000 = []
## 40.0MHz Tick Rate
tick-hz-40_000_000 = [] tick-hz-40_000_000 = []
## 40.96MHz Tick Rate
tick-hz-40_960_000 = []
## 48.0MHz Tick Rate
tick-hz-48_000_000 = []
## 50.0MHz Tick Rate
tick-hz-50_000_000 = [] tick-hz-50_000_000 = []
## 60.0MHz Tick Rate
tick-hz-60_000_000 = [] tick-hz-60_000_000 = []
## 64.0MHz Tick Rate
tick-hz-64_000_000 = []
## 65.536MHz Tick Rate
tick-hz-65_536_000 = []
## 70.0MHz Tick Rate
tick-hz-70_000_000 = [] tick-hz-70_000_000 = []
## 72.0MHz Tick Rate
tick-hz-72_000_000 = []
## 80.0MHz Tick Rate
tick-hz-80_000_000 = [] tick-hz-80_000_000 = []
## 81.92MHz Tick Rate
tick-hz-81_920_000 = []
## 90.0MHz Tick Rate
tick-hz-90_000_000 = [] tick-hz-90_000_000 = []
## 96.0MHz Tick Rate
tick-hz-96_000_000 = []
## 100.0MHz Tick Rate
tick-hz-100_000_000 = []
## 110.0MHz Tick Rate
tick-hz-110_000_000 = [] tick-hz-110_000_000 = []
## 120.0MHz Tick Rate
tick-hz-120_000_000 = [] tick-hz-120_000_000 = []
## 128.0MHz Tick Rate
tick-hz-128_000_000 = []
## 130.0MHz Tick Rate
tick-hz-130_000_000 = [] tick-hz-130_000_000 = []
## 131.072MHz Tick Rate
tick-hz-131_072_000 = []
## 140.0MHz Tick Rate
tick-hz-140_000_000 = [] tick-hz-140_000_000 = []
## 144.0MHz Tick Rate
tick-hz-144_000_000 = []
## 150.0MHz Tick Rate
tick-hz-150_000_000 = [] tick-hz-150_000_000 = []
## 160.0MHz Tick Rate
tick-hz-160_000_000 = [] tick-hz-160_000_000 = []
## 163.84MHz Tick Rate
tick-hz-163_840_000 = []
## 170.0MHz Tick Rate
tick-hz-170_000_000 = [] tick-hz-170_000_000 = []
## 180.0MHz Tick Rate
tick-hz-180_000_000 = [] tick-hz-180_000_000 = []
## 190.0MHz Tick Rate
tick-hz-190_000_000 = [] tick-hz-190_000_000 = []
## 192.0MHz Tick Rate
tick-hz-192_000_000 = []
## 200.0MHz Tick Rate
tick-hz-200_000_000 = [] tick-hz-200_000_000 = []
## 210.0MHz Tick Rate
tick-hz-210_000_000 = [] tick-hz-210_000_000 = []
## 220.0MHz Tick Rate
tick-hz-220_000_000 = [] tick-hz-220_000_000 = []
## 230.0MHz Tick Rate
tick-hz-230_000_000 = [] tick-hz-230_000_000 = []
## 240.0MHz Tick Rate
tick-hz-240_000_000 = [] tick-hz-240_000_000 = []
## 250.0MHz Tick Rate
tick-hz-250_000_000 = [] tick-hz-250_000_000 = []
## 256.0MHz Tick Rate
tick-hz-256_000_000 = []
## 260.0MHz Tick Rate
tick-hz-260_000_000 = [] tick-hz-260_000_000 = []
## 262.144MHz Tick Rate
tick-hz-262_144_000 = []
## 270.0MHz Tick Rate
tick-hz-270_000_000 = [] tick-hz-270_000_000 = []
## 280.0MHz Tick Rate
tick-hz-280_000_000 = [] tick-hz-280_000_000 = []
## 288.0MHz Tick Rate
tick-hz-288_000_000 = []
## 290.0MHz Tick Rate
tick-hz-290_000_000 = [] tick-hz-290_000_000 = []
## 300.0MHz Tick Rate
tick-hz-300_000_000 = [] tick-hz-300_000_000 = []
## 320.0MHz Tick Rate
tick-hz-320_000_000 = [] tick-hz-320_000_000 = []
## 327.68MHz Tick Rate
tick-hz-327_680_000 = []
## 340.0MHz Tick Rate
tick-hz-340_000_000 = [] tick-hz-340_000_000 = []
## 360.0MHz Tick Rate
tick-hz-360_000_000 = [] tick-hz-360_000_000 = []
## 380.0MHz Tick Rate
tick-hz-380_000_000 = [] tick-hz-380_000_000 = []
## 384.0MHz Tick Rate
tick-hz-384_000_000 = []
## 400.0MHz Tick Rate
tick-hz-400_000_000 = [] tick-hz-400_000_000 = []
## 420.0MHz Tick Rate
tick-hz-420_000_000 = [] tick-hz-420_000_000 = []
## 440.0MHz Tick Rate
tick-hz-440_000_000 = [] tick-hz-440_000_000 = []
## 460.0MHz Tick Rate
tick-hz-460_000_000 = [] tick-hz-460_000_000 = []
## 480.0MHz Tick Rate
tick-hz-480_000_000 = [] tick-hz-480_000_000 = []
## 500.0MHz Tick Rate
tick-hz-500_000_000 = [] tick-hz-500_000_000 = []
## 512.0MHz Tick Rate
tick-hz-512_000_000 = []
## 520.0MHz Tick Rate
tick-hz-520_000_000 = [] tick-hz-520_000_000 = []
## 524.288MHz Tick Rate
tick-hz-524_288_000 = []
## 540.0MHz Tick Rate
tick-hz-540_000_000 = [] tick-hz-540_000_000 = []
## 560.0MHz Tick Rate
tick-hz-560_000_000 = [] tick-hz-560_000_000 = []
## 576.0MHz Tick Rate
tick-hz-576_000_000 = []
## 580.0MHz Tick Rate
tick-hz-580_000_000 = [] tick-hz-580_000_000 = []
## 600.0MHz Tick Rate
tick-hz-600_000_000 = [] tick-hz-600_000_000 = []
## 620.0MHz Tick Rate
tick-hz-620_000_000 = [] tick-hz-620_000_000 = []
## 640.0MHz Tick Rate
tick-hz-640_000_000 = [] tick-hz-640_000_000 = []
## 655.36MHz Tick Rate
tick-hz-655_360_000 = []
## 660.0MHz Tick Rate
tick-hz-660_000_000 = [] tick-hz-660_000_000 = []
## 680.0MHz Tick Rate
tick-hz-680_000_000 = [] tick-hz-680_000_000 = []
## 700.0MHz Tick Rate
tick-hz-700_000_000 = [] tick-hz-700_000_000 = []
## 720.0MHz Tick Rate
tick-hz-720_000_000 = [] tick-hz-720_000_000 = []
## 740.0MHz Tick Rate
tick-hz-740_000_000 = [] tick-hz-740_000_000 = []
## 760.0MHz Tick Rate
tick-hz-760_000_000 = [] tick-hz-760_000_000 = []
## 768.0MHz Tick Rate
tick-hz-768_000_000 = []
## 780.0MHz Tick Rate
tick-hz-780_000_000 = [] tick-hz-780_000_000 = []
## 800.0MHz Tick Rate
tick-hz-800_000_000 = [] tick-hz-800_000_000 = []
## 820.0MHz Tick Rate
tick-hz-820_000_000 = [] tick-hz-820_000_000 = []
## 840.0MHz Tick Rate
tick-hz-840_000_000 = [] tick-hz-840_000_000 = []
## 860.0MHz Tick Rate
tick-hz-860_000_000 = [] tick-hz-860_000_000 = []
## 880.0MHz Tick Rate
tick-hz-880_000_000 = [] tick-hz-880_000_000 = []
## 900.0MHz Tick Rate
tick-hz-900_000_000 = [] tick-hz-900_000_000 = []
## 920.0MHz Tick Rate
tick-hz-920_000_000 = [] tick-hz-920_000_000 = []
## 940.0MHz Tick Rate
tick-hz-940_000_000 = [] tick-hz-940_000_000 = []
## 960.0MHz Tick Rate
tick-hz-960_000_000 = [] tick-hz-960_000_000 = []
## 980.0MHz Tick Rate
tick-hz-980_000_000 = [] tick-hz-980_000_000 = []
## 1.0GHz Tick Rate
tick-hz-1_000_000_000 = []
## 1.31072GHz Tick Rate
tick-hz-1_310_720_000 = []
## 2.62144GHz Tick Rate
tick-hz-2_621_440_000 = []
## 5.24288GHz Tick Rate
tick-hz-5_242_880_000 = []
# END TICKS # END TICKS
#! </details>
[dependencies] [dependencies]
defmt = { version = "0.3", optional = true } defmt = { version = "0.3", optional = true }
log = { version = "0.4.14", optional = true } log = { version = "0.4.14", optional = true }
@ -243,6 +415,8 @@ critical-section = "1.1"
cfg-if = "1.0.0" cfg-if = "1.0.0"
heapless = "0.8" heapless = "0.8"
document-features = "0.2.7"
# WASM dependencies # WASM dependencies
wasm-bindgen = { version = "0.2.81", optional = true } wasm-bindgen = { version = "0.2.81", optional = true }
js-sys = { version = "0.3", optional = true } js-sys = { version = "0.3", optional = true }

View File

@ -3,35 +3,16 @@
Timekeeping, delays and timeouts. Timekeeping, delays and timeouts.
Timekeeping is done with elapsed time since system boot. Time is represented in Timekeeping is done with elapsed time since system boot. Time is represented in
ticks, where the tick rate is defined by the current driver, usually to match ticks, where the tick rate is defined either by the driver (in the case of a fixed-
the tick rate of the hardware. rate tick) or chosen by the user with a [tick rate](#tick-rate) feature. The chosen
tick rate applies to everything in `embassy-time` and thus determines the maximum
timing resolution of <code>(1 / tick_rate) seconds</code>.
Tick counts are 64 bits. At the highest supported tick rate of 1Mhz this supports Tick counts are 64 bits. The default tick rate of 1Mhz supports
representing time spans of up to ~584558 years, which is big enough for all practical representing time spans of up to ~584558 years, which is big enough for all practical
purposes and allows not having to worry about overflows. purposes and allows not having to worry about overflows.
[`Instant`] represents a given instant of time (relative to system boot), and [`Duration`] ## Time driver
represents the duration of a span of time. They implement the math operations you'd expect,
like addition and substraction.
# Delays and timeouts
[`Timer`] allows performing async delays. [`Ticker`] allows periodic delays without drifting over time.
An implementation of the `embedded-hal` delay traits is provided by [`Delay`], for compatibility
with libraries from the ecosystem.
# Wall-clock time
The `time` module deals exclusively with a monotonically increasing tick count.
Therefore it has no direct support for wall-clock time ("real life" datetimes
like `2021-08-24 13:33:21`).
If persistence across reboots is not needed, support can be built on top of
`embassy_time` by storing the offset between "seconds elapsed since boot"
and "seconds since unix epoch".
# Time driver
The `time` module is backed by a global "time driver" specified at build time. The `time` module is backed by a global "time driver" specified at build time.
Only one driver can be active in a program. Only one driver can be active in a program.
@ -41,3 +22,26 @@ possible for libraries to use `embassy_time` in a driver-agnostic way without
requiring generic parameters. requiring generic parameters.
For more details, check the [`driver`] module. For more details, check the [`driver`] module.
## Instants and Durations
[`Instant`] represents a given instant of time (relative to system boot), and [`Duration`]
represents the duration of a span of time. They implement the math operations you'd expect,
like addition and substraction.
## Delays and timeouts
[`Timer`] allows performing async delays. [`Ticker`] allows periodic delays without drifting over time.
An implementation of the `embedded-hal` delay traits is provided by [`Delay`], for compatibility
with libraries from the ecosystem.
## Wall-clock time
The `time` module deals exclusively with a monotonically increasing tick count.
Therefore it has no direct support for wall-clock time ("real life" datetimes
like `2021-08-24 13:33:21`).
If persistence across reboots is not needed, support can be built on top of
`embassy_time` by storing the offset between "seconds elapsed since boot"
and "seconds since unix epoch".

View File

@ -1,5 +1,4 @@
import os import os
import toml
from glob import glob from glob import glob
abspath = os.path.abspath(__file__) abspath = os.path.abspath(__file__)
@ -25,11 +24,11 @@ for i in range(15, 50):
ticks.append(20 * i * 1_000_000) ticks.append(20 * i * 1_000_000)
seen = set() seen = set()
ticks = [x for x in ticks if not (x in seen or seen.add(x))] ticks = sorted([x for x in ticks if not (x in seen or seen.add(x))])
# ========= Update Cargo.toml # ========= Update Cargo.toml
things = {f'tick-hz-{hz:_}': [] for hz in ticks} things = [(hz, f'tick-hz-{hz:_}') for hz in ticks]
SEPARATOR_START = '# BEGIN TICKS\n' SEPARATOR_START = '# BEGIN TICKS\n'
SEPARATOR_END = '# END TICKS\n' SEPARATOR_END = '# END TICKS\n'
@ -38,8 +37,22 @@ with open('Cargo.toml', 'r') as f:
data = f.read() data = f.read()
before, data = data.split(SEPARATOR_START, maxsplit=1) before, data = data.split(SEPARATOR_START, maxsplit=1)
_, after = data.split(SEPARATOR_END, maxsplit=1) _, after = data.split(SEPARATOR_END, maxsplit=1)
data = before + SEPARATOR_START + HELP + \
toml.dumps(things) + SEPARATOR_END + after data = before + SEPARATOR_START + HELP
for freq, feature in things:
if freq >= 1_000_000_000:
freq_human = f"{freq / 1_000_000_000}GHz"
elif freq >= 1_000_000:
freq_human = f"{freq / 1_000_000}MHz"
elif freq >= 1_000:
freq_human = f"{freq / 1000}kHz"
else:
freq_human = f"{freq}Hz"
data += f"## {freq_human} Tick Rate\n"
data += f"{feature} = []\n"
data += SEPARATOR_END + after
with open('Cargo.toml', 'w') as f: with open('Cargo.toml', 'w') as f:
f.write(data) f.write(data)

View File

@ -6,6 +6,9 @@
#![allow(clippy::new_without_default)] #![allow(clippy::new_without_default)]
#![warn(missing_docs)] #![warn(missing_docs)]
//! ## Feature flags
#![doc = document_features::document_features!(feature_label = r#"<span class="stab portability"><code>{feature}</code></span>"#)]
// This mod MUST go first, so that the others see its macros. // This mod MUST go first, so that the others see its macros.
pub(crate) mod fmt; pub(crate) mod fmt;
@ -37,10 +40,7 @@ pub use timer::{with_timeout, Ticker, TimeoutError, Timer};
/// Ticks per second of the global timebase. /// Ticks per second of the global timebase.
/// ///
/// This value is specified by the `tick-*` Cargo features, which /// This value is specified by the [`tick-*` Cargo features](crate#tick-rate)
/// should be set by the time driver. Some drivers support a fixed tick rate, others
/// allow you to choose a tick rate with Cargo features of their own. You should not
/// set the `tick-*` features for embassy yourself as an end user.
pub const TICK_HZ: u64 = tick::TICK_HZ; pub const TICK_HZ: u64 = tick::TICK_HZ;
const fn gcd(a: u64, b: u64) -> u64 { const fn gcd(a: u64, b: u64) -> u64 {

View File

@ -2,232 +2,204 @@
#[cfg(feature = "tick-hz-1")] #[cfg(feature = "tick-hz-1")]
pub const TICK_HZ: u64 = 1; pub const TICK_HZ: u64 = 1;
#[cfg(feature = "tick-hz-10")]
pub const TICK_HZ: u64 = 10;
#[cfg(feature = "tick-hz-100")]
pub const TICK_HZ: u64 = 100;
#[cfg(feature = "tick-hz-1_000")]
pub const TICK_HZ: u64 = 1_000;
#[cfg(feature = "tick-hz-10_000")]
pub const TICK_HZ: u64 = 10_000;
#[cfg(feature = "tick-hz-100_000")]
pub const TICK_HZ: u64 = 100_000;
#[cfg(feature = "tick-hz-1_000_000")]
pub const TICK_HZ: u64 = 1_000_000;
#[cfg(feature = "tick-hz-10_000_000")]
pub const TICK_HZ: u64 = 10_000_000;
#[cfg(feature = "tick-hz-100_000_000")]
pub const TICK_HZ: u64 = 100_000_000;
#[cfg(feature = "tick-hz-1_000_000_000")]
pub const TICK_HZ: u64 = 1_000_000_000;
#[cfg(feature = "tick-hz-2")] #[cfg(feature = "tick-hz-2")]
pub const TICK_HZ: u64 = 2; pub const TICK_HZ: u64 = 2;
#[cfg(feature = "tick-hz-4")] #[cfg(feature = "tick-hz-4")]
pub const TICK_HZ: u64 = 4; pub const TICK_HZ: u64 = 4;
#[cfg(feature = "tick-hz-8")] #[cfg(feature = "tick-hz-8")]
pub const TICK_HZ: u64 = 8; pub const TICK_HZ: u64 = 8;
#[cfg(feature = "tick-hz-10")]
pub const TICK_HZ: u64 = 10;
#[cfg(feature = "tick-hz-16")] #[cfg(feature = "tick-hz-16")]
pub const TICK_HZ: u64 = 16; pub const TICK_HZ: u64 = 16;
#[cfg(feature = "tick-hz-32")] #[cfg(feature = "tick-hz-32")]
pub const TICK_HZ: u64 = 32; pub const TICK_HZ: u64 = 32;
#[cfg(feature = "tick-hz-64")] #[cfg(feature = "tick-hz-64")]
pub const TICK_HZ: u64 = 64; pub const TICK_HZ: u64 = 64;
#[cfg(feature = "tick-hz-100")]
pub const TICK_HZ: u64 = 100;
#[cfg(feature = "tick-hz-128")] #[cfg(feature = "tick-hz-128")]
pub const TICK_HZ: u64 = 128; pub const TICK_HZ: u64 = 128;
#[cfg(feature = "tick-hz-256")] #[cfg(feature = "tick-hz-256")]
pub const TICK_HZ: u64 = 256; pub const TICK_HZ: u64 = 256;
#[cfg(feature = "tick-hz-512")] #[cfg(feature = "tick-hz-512")]
pub const TICK_HZ: u64 = 512; pub const TICK_HZ: u64 = 512;
#[cfg(feature = "tick-hz-1_000")]
pub const TICK_HZ: u64 = 1_000;
#[cfg(feature = "tick-hz-1_024")] #[cfg(feature = "tick-hz-1_024")]
pub const TICK_HZ: u64 = 1_024; pub const TICK_HZ: u64 = 1_024;
#[cfg(feature = "tick-hz-2_048")]
pub const TICK_HZ: u64 = 2_048;
#[cfg(feature = "tick-hz-4_096")]
pub const TICK_HZ: u64 = 4_096;
#[cfg(feature = "tick-hz-8_192")]
pub const TICK_HZ: u64 = 8_192;
#[cfg(feature = "tick-hz-16_384")]
pub const TICK_HZ: u64 = 16_384;
#[cfg(feature = "tick-hz-32_768")]
pub const TICK_HZ: u64 = 32_768;
#[cfg(feature = "tick-hz-65_536")]
pub const TICK_HZ: u64 = 65_536;
#[cfg(feature = "tick-hz-131_072")]
pub const TICK_HZ: u64 = 131_072;
#[cfg(feature = "tick-hz-262_144")]
pub const TICK_HZ: u64 = 262_144;
#[cfg(feature = "tick-hz-524_288")]
pub const TICK_HZ: u64 = 524_288;
#[cfg(feature = "tick-hz-1_048_576")]
pub const TICK_HZ: u64 = 1_048_576;
#[cfg(feature = "tick-hz-2_097_152")]
pub const TICK_HZ: u64 = 2_097_152;
#[cfg(feature = "tick-hz-4_194_304")]
pub const TICK_HZ: u64 = 4_194_304;
#[cfg(feature = "tick-hz-8_388_608")]
pub const TICK_HZ: u64 = 8_388_608;
#[cfg(feature = "tick-hz-16_777_216")]
pub const TICK_HZ: u64 = 16_777_216;
#[cfg(feature = "tick-hz-2_000")] #[cfg(feature = "tick-hz-2_000")]
pub const TICK_HZ: u64 = 2_000; pub const TICK_HZ: u64 = 2_000;
#[cfg(feature = "tick-hz-2_048")]
pub const TICK_HZ: u64 = 2_048;
#[cfg(feature = "tick-hz-4_000")] #[cfg(feature = "tick-hz-4_000")]
pub const TICK_HZ: u64 = 4_000; pub const TICK_HZ: u64 = 4_000;
#[cfg(feature = "tick-hz-4_096")]
pub const TICK_HZ: u64 = 4_096;
#[cfg(feature = "tick-hz-8_000")] #[cfg(feature = "tick-hz-8_000")]
pub const TICK_HZ: u64 = 8_000; pub const TICK_HZ: u64 = 8_000;
#[cfg(feature = "tick-hz-8_192")]
pub const TICK_HZ: u64 = 8_192;
#[cfg(feature = "tick-hz-10_000")]
pub const TICK_HZ: u64 = 10_000;
#[cfg(feature = "tick-hz-16_000")] #[cfg(feature = "tick-hz-16_000")]
pub const TICK_HZ: u64 = 16_000; pub const TICK_HZ: u64 = 16_000;
#[cfg(feature = "tick-hz-32_000")] #[cfg(feature = "tick-hz-16_384")]
pub const TICK_HZ: u64 = 32_000; pub const TICK_HZ: u64 = 16_384;
#[cfg(feature = "tick-hz-64_000")]
pub const TICK_HZ: u64 = 64_000;
#[cfg(feature = "tick-hz-128_000")]
pub const TICK_HZ: u64 = 128_000;
#[cfg(feature = "tick-hz-256_000")]
pub const TICK_HZ: u64 = 256_000;
#[cfg(feature = "tick-hz-512_000")]
pub const TICK_HZ: u64 = 512_000;
#[cfg(feature = "tick-hz-1_024_000")]
pub const TICK_HZ: u64 = 1_024_000;
#[cfg(feature = "tick-hz-2_048_000")]
pub const TICK_HZ: u64 = 2_048_000;
#[cfg(feature = "tick-hz-4_096_000")]
pub const TICK_HZ: u64 = 4_096_000;
#[cfg(feature = "tick-hz-8_192_000")]
pub const TICK_HZ: u64 = 8_192_000;
#[cfg(feature = "tick-hz-16_384_000")]
pub const TICK_HZ: u64 = 16_384_000;
#[cfg(feature = "tick-hz-32_768_000")]
pub const TICK_HZ: u64 = 32_768_000;
#[cfg(feature = "tick-hz-65_536_000")]
pub const TICK_HZ: u64 = 65_536_000;
#[cfg(feature = "tick-hz-131_072_000")]
pub const TICK_HZ: u64 = 131_072_000;
#[cfg(feature = "tick-hz-262_144_000")]
pub const TICK_HZ: u64 = 262_144_000;
#[cfg(feature = "tick-hz-524_288_000")]
pub const TICK_HZ: u64 = 524_288_000;
#[cfg(feature = "tick-hz-20_000")] #[cfg(feature = "tick-hz-20_000")]
pub const TICK_HZ: u64 = 20_000; pub const TICK_HZ: u64 = 20_000;
#[cfg(feature = "tick-hz-32_000")]
pub const TICK_HZ: u64 = 32_000;
#[cfg(feature = "tick-hz-32_768")]
pub const TICK_HZ: u64 = 32_768;
#[cfg(feature = "tick-hz-40_000")] #[cfg(feature = "tick-hz-40_000")]
pub const TICK_HZ: u64 = 40_000; pub const TICK_HZ: u64 = 40_000;
#[cfg(feature = "tick-hz-64_000")]
pub const TICK_HZ: u64 = 64_000;
#[cfg(feature = "tick-hz-65_536")]
pub const TICK_HZ: u64 = 65_536;
#[cfg(feature = "tick-hz-80_000")] #[cfg(feature = "tick-hz-80_000")]
pub const TICK_HZ: u64 = 80_000; pub const TICK_HZ: u64 = 80_000;
#[cfg(feature = "tick-hz-100_000")]
pub const TICK_HZ: u64 = 100_000;
#[cfg(feature = "tick-hz-128_000")]
pub const TICK_HZ: u64 = 128_000;
#[cfg(feature = "tick-hz-131_072")]
pub const TICK_HZ: u64 = 131_072;
#[cfg(feature = "tick-hz-160_000")] #[cfg(feature = "tick-hz-160_000")]
pub const TICK_HZ: u64 = 160_000; pub const TICK_HZ: u64 = 160_000;
#[cfg(feature = "tick-hz-256_000")]
pub const TICK_HZ: u64 = 256_000;
#[cfg(feature = "tick-hz-262_144")]
pub const TICK_HZ: u64 = 262_144;
#[cfg(feature = "tick-hz-320_000")] #[cfg(feature = "tick-hz-320_000")]
pub const TICK_HZ: u64 = 320_000; pub const TICK_HZ: u64 = 320_000;
#[cfg(feature = "tick-hz-512_000")]
pub const TICK_HZ: u64 = 512_000;
#[cfg(feature = "tick-hz-524_288")]
pub const TICK_HZ: u64 = 524_288;
#[cfg(feature = "tick-hz-640_000")] #[cfg(feature = "tick-hz-640_000")]
pub const TICK_HZ: u64 = 640_000; pub const TICK_HZ: u64 = 640_000;
#[cfg(feature = "tick-hz-1_000_000")]
pub const TICK_HZ: u64 = 1_000_000;
#[cfg(feature = "tick-hz-1_024_000")]
pub const TICK_HZ: u64 = 1_024_000;
#[cfg(feature = "tick-hz-1_048_576")]
pub const TICK_HZ: u64 = 1_048_576;
#[cfg(feature = "tick-hz-1_280_000")] #[cfg(feature = "tick-hz-1_280_000")]
pub const TICK_HZ: u64 = 1_280_000; pub const TICK_HZ: u64 = 1_280_000;
#[cfg(feature = "tick-hz-2_560_000")]
pub const TICK_HZ: u64 = 2_560_000;
#[cfg(feature = "tick-hz-5_120_000")]
pub const TICK_HZ: u64 = 5_120_000;
#[cfg(feature = "tick-hz-10_240_000")]
pub const TICK_HZ: u64 = 10_240_000;
#[cfg(feature = "tick-hz-20_480_000")]
pub const TICK_HZ: u64 = 20_480_000;
#[cfg(feature = "tick-hz-40_960_000")]
pub const TICK_HZ: u64 = 40_960_000;
#[cfg(feature = "tick-hz-81_920_000")]
pub const TICK_HZ: u64 = 81_920_000;
#[cfg(feature = "tick-hz-163_840_000")]
pub const TICK_HZ: u64 = 163_840_000;
#[cfg(feature = "tick-hz-327_680_000")]
pub const TICK_HZ: u64 = 327_680_000;
#[cfg(feature = "tick-hz-655_360_000")]
pub const TICK_HZ: u64 = 655_360_000;
#[cfg(feature = "tick-hz-1_310_720_000")]
pub const TICK_HZ: u64 = 1_310_720_000;
#[cfg(feature = "tick-hz-2_621_440_000")]
pub const TICK_HZ: u64 = 2_621_440_000;
#[cfg(feature = "tick-hz-5_242_880_000")]
pub const TICK_HZ: u64 = 5_242_880_000;
#[cfg(feature = "tick-hz-2_000_000")] #[cfg(feature = "tick-hz-2_000_000")]
pub const TICK_HZ: u64 = 2_000_000; pub const TICK_HZ: u64 = 2_000_000;
#[cfg(feature = "tick-hz-2_048_000")]
pub const TICK_HZ: u64 = 2_048_000;
#[cfg(feature = "tick-hz-2_097_152")]
pub const TICK_HZ: u64 = 2_097_152;
#[cfg(feature = "tick-hz-2_560_000")]
pub const TICK_HZ: u64 = 2_560_000;
#[cfg(feature = "tick-hz-3_000_000")] #[cfg(feature = "tick-hz-3_000_000")]
pub const TICK_HZ: u64 = 3_000_000; pub const TICK_HZ: u64 = 3_000_000;
#[cfg(feature = "tick-hz-4_000_000")] #[cfg(feature = "tick-hz-4_000_000")]
pub const TICK_HZ: u64 = 4_000_000; pub const TICK_HZ: u64 = 4_000_000;
#[cfg(feature = "tick-hz-4_096_000")]
pub const TICK_HZ: u64 = 4_096_000;
#[cfg(feature = "tick-hz-4_194_304")]
pub const TICK_HZ: u64 = 4_194_304;
#[cfg(feature = "tick-hz-5_120_000")]
pub const TICK_HZ: u64 = 5_120_000;
#[cfg(feature = "tick-hz-6_000_000")] #[cfg(feature = "tick-hz-6_000_000")]
pub const TICK_HZ: u64 = 6_000_000; pub const TICK_HZ: u64 = 6_000_000;
#[cfg(feature = "tick-hz-8_000_000")] #[cfg(feature = "tick-hz-8_000_000")]
pub const TICK_HZ: u64 = 8_000_000; pub const TICK_HZ: u64 = 8_000_000;
#[cfg(feature = "tick-hz-8_192_000")]
pub const TICK_HZ: u64 = 8_192_000;
#[cfg(feature = "tick-hz-8_388_608")]
pub const TICK_HZ: u64 = 8_388_608;
#[cfg(feature = "tick-hz-9_000_000")] #[cfg(feature = "tick-hz-9_000_000")]
pub const TICK_HZ: u64 = 9_000_000; pub const TICK_HZ: u64 = 9_000_000;
#[cfg(feature = "tick-hz-10_000_000")]
pub const TICK_HZ: u64 = 10_000_000;
#[cfg(feature = "tick-hz-10_240_000")]
pub const TICK_HZ: u64 = 10_240_000;
#[cfg(feature = "tick-hz-12_000_000")] #[cfg(feature = "tick-hz-12_000_000")]
pub const TICK_HZ: u64 = 12_000_000; pub const TICK_HZ: u64 = 12_000_000;
#[cfg(feature = "tick-hz-16_000_000")] #[cfg(feature = "tick-hz-16_000_000")]
pub const TICK_HZ: u64 = 16_000_000; pub const TICK_HZ: u64 = 16_000_000;
#[cfg(feature = "tick-hz-16_384_000")]
pub const TICK_HZ: u64 = 16_384_000;
#[cfg(feature = "tick-hz-16_777_216")]
pub const TICK_HZ: u64 = 16_777_216;
#[cfg(feature = "tick-hz-18_000_000")] #[cfg(feature = "tick-hz-18_000_000")]
pub const TICK_HZ: u64 = 18_000_000; pub const TICK_HZ: u64 = 18_000_000;
#[cfg(feature = "tick-hz-24_000_000")]
pub const TICK_HZ: u64 = 24_000_000;
#[cfg(feature = "tick-hz-32_000_000")]
pub const TICK_HZ: u64 = 32_000_000;
#[cfg(feature = "tick-hz-36_000_000")]
pub const TICK_HZ: u64 = 36_000_000;
#[cfg(feature = "tick-hz-48_000_000")]
pub const TICK_HZ: u64 = 48_000_000;
#[cfg(feature = "tick-hz-64_000_000")]
pub const TICK_HZ: u64 = 64_000_000;
#[cfg(feature = "tick-hz-72_000_000")]
pub const TICK_HZ: u64 = 72_000_000;
#[cfg(feature = "tick-hz-96_000_000")]
pub const TICK_HZ: u64 = 96_000_000;
#[cfg(feature = "tick-hz-128_000_000")]
pub const TICK_HZ: u64 = 128_000_000;
#[cfg(feature = "tick-hz-144_000_000")]
pub const TICK_HZ: u64 = 144_000_000;
#[cfg(feature = "tick-hz-192_000_000")]
pub const TICK_HZ: u64 = 192_000_000;
#[cfg(feature = "tick-hz-256_000_000")]
pub const TICK_HZ: u64 = 256_000_000;
#[cfg(feature = "tick-hz-288_000_000")]
pub const TICK_HZ: u64 = 288_000_000;
#[cfg(feature = "tick-hz-384_000_000")]
pub const TICK_HZ: u64 = 384_000_000;
#[cfg(feature = "tick-hz-512_000_000")]
pub const TICK_HZ: u64 = 512_000_000;
#[cfg(feature = "tick-hz-576_000_000")]
pub const TICK_HZ: u64 = 576_000_000;
#[cfg(feature = "tick-hz-768_000_000")]
pub const TICK_HZ: u64 = 768_000_000;
#[cfg(feature = "tick-hz-20_000_000")] #[cfg(feature = "tick-hz-20_000_000")]
pub const TICK_HZ: u64 = 20_000_000; pub const TICK_HZ: u64 = 20_000_000;
#[cfg(feature = "tick-hz-20_480_000")]
pub const TICK_HZ: u64 = 20_480_000;
#[cfg(feature = "tick-hz-24_000_000")]
pub const TICK_HZ: u64 = 24_000_000;
#[cfg(feature = "tick-hz-30_000_000")] #[cfg(feature = "tick-hz-30_000_000")]
pub const TICK_HZ: u64 = 30_000_000; pub const TICK_HZ: u64 = 30_000_000;
#[cfg(feature = "tick-hz-32_000_000")]
pub const TICK_HZ: u64 = 32_000_000;
#[cfg(feature = "tick-hz-32_768_000")]
pub const TICK_HZ: u64 = 32_768_000;
#[cfg(feature = "tick-hz-36_000_000")]
pub const TICK_HZ: u64 = 36_000_000;
#[cfg(feature = "tick-hz-40_000_000")] #[cfg(feature = "tick-hz-40_000_000")]
pub const TICK_HZ: u64 = 40_000_000; pub const TICK_HZ: u64 = 40_000_000;
#[cfg(feature = "tick-hz-40_960_000")]
pub const TICK_HZ: u64 = 40_960_000;
#[cfg(feature = "tick-hz-48_000_000")]
pub const TICK_HZ: u64 = 48_000_000;
#[cfg(feature = "tick-hz-50_000_000")] #[cfg(feature = "tick-hz-50_000_000")]
pub const TICK_HZ: u64 = 50_000_000; pub const TICK_HZ: u64 = 50_000_000;
#[cfg(feature = "tick-hz-60_000_000")] #[cfg(feature = "tick-hz-60_000_000")]
pub const TICK_HZ: u64 = 60_000_000; pub const TICK_HZ: u64 = 60_000_000;
#[cfg(feature = "tick-hz-64_000_000")]
pub const TICK_HZ: u64 = 64_000_000;
#[cfg(feature = "tick-hz-65_536_000")]
pub const TICK_HZ: u64 = 65_536_000;
#[cfg(feature = "tick-hz-70_000_000")] #[cfg(feature = "tick-hz-70_000_000")]
pub const TICK_HZ: u64 = 70_000_000; pub const TICK_HZ: u64 = 70_000_000;
#[cfg(feature = "tick-hz-72_000_000")]
pub const TICK_HZ: u64 = 72_000_000;
#[cfg(feature = "tick-hz-80_000_000")] #[cfg(feature = "tick-hz-80_000_000")]
pub const TICK_HZ: u64 = 80_000_000; pub const TICK_HZ: u64 = 80_000_000;
#[cfg(feature = "tick-hz-81_920_000")]
pub const TICK_HZ: u64 = 81_920_000;
#[cfg(feature = "tick-hz-90_000_000")] #[cfg(feature = "tick-hz-90_000_000")]
pub const TICK_HZ: u64 = 90_000_000; pub const TICK_HZ: u64 = 90_000_000;
#[cfg(feature = "tick-hz-96_000_000")]
pub const TICK_HZ: u64 = 96_000_000;
#[cfg(feature = "tick-hz-100_000_000")]
pub const TICK_HZ: u64 = 100_000_000;
#[cfg(feature = "tick-hz-110_000_000")] #[cfg(feature = "tick-hz-110_000_000")]
pub const TICK_HZ: u64 = 110_000_000; pub const TICK_HZ: u64 = 110_000_000;
#[cfg(feature = "tick-hz-120_000_000")] #[cfg(feature = "tick-hz-120_000_000")]
pub const TICK_HZ: u64 = 120_000_000; pub const TICK_HZ: u64 = 120_000_000;
#[cfg(feature = "tick-hz-128_000_000")]
pub const TICK_HZ: u64 = 128_000_000;
#[cfg(feature = "tick-hz-130_000_000")] #[cfg(feature = "tick-hz-130_000_000")]
pub const TICK_HZ: u64 = 130_000_000; pub const TICK_HZ: u64 = 130_000_000;
#[cfg(feature = "tick-hz-131_072_000")]
pub const TICK_HZ: u64 = 131_072_000;
#[cfg(feature = "tick-hz-140_000_000")] #[cfg(feature = "tick-hz-140_000_000")]
pub const TICK_HZ: u64 = 140_000_000; pub const TICK_HZ: u64 = 140_000_000;
#[cfg(feature = "tick-hz-144_000_000")]
pub const TICK_HZ: u64 = 144_000_000;
#[cfg(feature = "tick-hz-150_000_000")] #[cfg(feature = "tick-hz-150_000_000")]
pub const TICK_HZ: u64 = 150_000_000; pub const TICK_HZ: u64 = 150_000_000;
#[cfg(feature = "tick-hz-160_000_000")] #[cfg(feature = "tick-hz-160_000_000")]
pub const TICK_HZ: u64 = 160_000_000; pub const TICK_HZ: u64 = 160_000_000;
#[cfg(feature = "tick-hz-163_840_000")]
pub const TICK_HZ: u64 = 163_840_000;
#[cfg(feature = "tick-hz-170_000_000")] #[cfg(feature = "tick-hz-170_000_000")]
pub const TICK_HZ: u64 = 170_000_000; pub const TICK_HZ: u64 = 170_000_000;
#[cfg(feature = "tick-hz-180_000_000")] #[cfg(feature = "tick-hz-180_000_000")]
pub const TICK_HZ: u64 = 180_000_000; pub const TICK_HZ: u64 = 180_000_000;
#[cfg(feature = "tick-hz-190_000_000")] #[cfg(feature = "tick-hz-190_000_000")]
pub const TICK_HZ: u64 = 190_000_000; pub const TICK_HZ: u64 = 190_000_000;
#[cfg(feature = "tick-hz-192_000_000")]
pub const TICK_HZ: u64 = 192_000_000;
#[cfg(feature = "tick-hz-200_000_000")] #[cfg(feature = "tick-hz-200_000_000")]
pub const TICK_HZ: u64 = 200_000_000; pub const TICK_HZ: u64 = 200_000_000;
#[cfg(feature = "tick-hz-210_000_000")] #[cfg(feature = "tick-hz-210_000_000")]
@ -240,24 +212,34 @@ pub const TICK_HZ: u64 = 230_000_000;
pub const TICK_HZ: u64 = 240_000_000; pub const TICK_HZ: u64 = 240_000_000;
#[cfg(feature = "tick-hz-250_000_000")] #[cfg(feature = "tick-hz-250_000_000")]
pub const TICK_HZ: u64 = 250_000_000; pub const TICK_HZ: u64 = 250_000_000;
#[cfg(feature = "tick-hz-256_000_000")]
pub const TICK_HZ: u64 = 256_000_000;
#[cfg(feature = "tick-hz-260_000_000")] #[cfg(feature = "tick-hz-260_000_000")]
pub const TICK_HZ: u64 = 260_000_000; pub const TICK_HZ: u64 = 260_000_000;
#[cfg(feature = "tick-hz-262_144_000")]
pub const TICK_HZ: u64 = 262_144_000;
#[cfg(feature = "tick-hz-270_000_000")] #[cfg(feature = "tick-hz-270_000_000")]
pub const TICK_HZ: u64 = 270_000_000; pub const TICK_HZ: u64 = 270_000_000;
#[cfg(feature = "tick-hz-280_000_000")] #[cfg(feature = "tick-hz-280_000_000")]
pub const TICK_HZ: u64 = 280_000_000; pub const TICK_HZ: u64 = 280_000_000;
#[cfg(feature = "tick-hz-288_000_000")]
pub const TICK_HZ: u64 = 288_000_000;
#[cfg(feature = "tick-hz-290_000_000")] #[cfg(feature = "tick-hz-290_000_000")]
pub const TICK_HZ: u64 = 290_000_000; pub const TICK_HZ: u64 = 290_000_000;
#[cfg(feature = "tick-hz-300_000_000")] #[cfg(feature = "tick-hz-300_000_000")]
pub const TICK_HZ: u64 = 300_000_000; pub const TICK_HZ: u64 = 300_000_000;
#[cfg(feature = "tick-hz-320_000_000")] #[cfg(feature = "tick-hz-320_000_000")]
pub const TICK_HZ: u64 = 320_000_000; pub const TICK_HZ: u64 = 320_000_000;
#[cfg(feature = "tick-hz-327_680_000")]
pub const TICK_HZ: u64 = 327_680_000;
#[cfg(feature = "tick-hz-340_000_000")] #[cfg(feature = "tick-hz-340_000_000")]
pub const TICK_HZ: u64 = 340_000_000; pub const TICK_HZ: u64 = 340_000_000;
#[cfg(feature = "tick-hz-360_000_000")] #[cfg(feature = "tick-hz-360_000_000")]
pub const TICK_HZ: u64 = 360_000_000; pub const TICK_HZ: u64 = 360_000_000;
#[cfg(feature = "tick-hz-380_000_000")] #[cfg(feature = "tick-hz-380_000_000")]
pub const TICK_HZ: u64 = 380_000_000; pub const TICK_HZ: u64 = 380_000_000;
#[cfg(feature = "tick-hz-384_000_000")]
pub const TICK_HZ: u64 = 384_000_000;
#[cfg(feature = "tick-hz-400_000_000")] #[cfg(feature = "tick-hz-400_000_000")]
pub const TICK_HZ: u64 = 400_000_000; pub const TICK_HZ: u64 = 400_000_000;
#[cfg(feature = "tick-hz-420_000_000")] #[cfg(feature = "tick-hz-420_000_000")]
@ -270,12 +252,18 @@ pub const TICK_HZ: u64 = 460_000_000;
pub const TICK_HZ: u64 = 480_000_000; pub const TICK_HZ: u64 = 480_000_000;
#[cfg(feature = "tick-hz-500_000_000")] #[cfg(feature = "tick-hz-500_000_000")]
pub const TICK_HZ: u64 = 500_000_000; pub const TICK_HZ: u64 = 500_000_000;
#[cfg(feature = "tick-hz-512_000_000")]
pub const TICK_HZ: u64 = 512_000_000;
#[cfg(feature = "tick-hz-520_000_000")] #[cfg(feature = "tick-hz-520_000_000")]
pub const TICK_HZ: u64 = 520_000_000; pub const TICK_HZ: u64 = 520_000_000;
#[cfg(feature = "tick-hz-524_288_000")]
pub const TICK_HZ: u64 = 524_288_000;
#[cfg(feature = "tick-hz-540_000_000")] #[cfg(feature = "tick-hz-540_000_000")]
pub const TICK_HZ: u64 = 540_000_000; pub const TICK_HZ: u64 = 540_000_000;
#[cfg(feature = "tick-hz-560_000_000")] #[cfg(feature = "tick-hz-560_000_000")]
pub const TICK_HZ: u64 = 560_000_000; pub const TICK_HZ: u64 = 560_000_000;
#[cfg(feature = "tick-hz-576_000_000")]
pub const TICK_HZ: u64 = 576_000_000;
#[cfg(feature = "tick-hz-580_000_000")] #[cfg(feature = "tick-hz-580_000_000")]
pub const TICK_HZ: u64 = 580_000_000; pub const TICK_HZ: u64 = 580_000_000;
#[cfg(feature = "tick-hz-600_000_000")] #[cfg(feature = "tick-hz-600_000_000")]
@ -284,6 +272,8 @@ pub const TICK_HZ: u64 = 600_000_000;
pub const TICK_HZ: u64 = 620_000_000; pub const TICK_HZ: u64 = 620_000_000;
#[cfg(feature = "tick-hz-640_000_000")] #[cfg(feature = "tick-hz-640_000_000")]
pub const TICK_HZ: u64 = 640_000_000; pub const TICK_HZ: u64 = 640_000_000;
#[cfg(feature = "tick-hz-655_360_000")]
pub const TICK_HZ: u64 = 655_360_000;
#[cfg(feature = "tick-hz-660_000_000")] #[cfg(feature = "tick-hz-660_000_000")]
pub const TICK_HZ: u64 = 660_000_000; pub const TICK_HZ: u64 = 660_000_000;
#[cfg(feature = "tick-hz-680_000_000")] #[cfg(feature = "tick-hz-680_000_000")]
@ -296,6 +286,8 @@ pub const TICK_HZ: u64 = 720_000_000;
pub const TICK_HZ: u64 = 740_000_000; pub const TICK_HZ: u64 = 740_000_000;
#[cfg(feature = "tick-hz-760_000_000")] #[cfg(feature = "tick-hz-760_000_000")]
pub const TICK_HZ: u64 = 760_000_000; pub const TICK_HZ: u64 = 760_000_000;
#[cfg(feature = "tick-hz-768_000_000")]
pub const TICK_HZ: u64 = 768_000_000;
#[cfg(feature = "tick-hz-780_000_000")] #[cfg(feature = "tick-hz-780_000_000")]
pub const TICK_HZ: u64 = 780_000_000; pub const TICK_HZ: u64 = 780_000_000;
#[cfg(feature = "tick-hz-800_000_000")] #[cfg(feature = "tick-hz-800_000_000")]
@ -318,155 +310,159 @@ pub const TICK_HZ: u64 = 940_000_000;
pub const TICK_HZ: u64 = 960_000_000; pub const TICK_HZ: u64 = 960_000_000;
#[cfg(feature = "tick-hz-980_000_000")] #[cfg(feature = "tick-hz-980_000_000")]
pub const TICK_HZ: u64 = 980_000_000; pub const TICK_HZ: u64 = 980_000_000;
#[cfg(feature = "tick-hz-1_000_000_000")]
pub const TICK_HZ: u64 = 1_000_000_000;
#[cfg(feature = "tick-hz-1_310_720_000")]
pub const TICK_HZ: u64 = 1_310_720_000;
#[cfg(feature = "tick-hz-2_621_440_000")]
pub const TICK_HZ: u64 = 2_621_440_000;
#[cfg(feature = "tick-hz-5_242_880_000")]
pub const TICK_HZ: u64 = 5_242_880_000;
#[cfg(not(any( #[cfg(not(any(
feature = "tick-hz-1", feature = "tick-hz-1",
feature = "tick-hz-10",
feature = "tick-hz-100",
feature = "tick-hz-1_000",
feature = "tick-hz-10_000",
feature = "tick-hz-100_000",
feature = "tick-hz-1_000_000",
feature = "tick-hz-10_000_000",
feature = "tick-hz-100_000_000",
feature = "tick-hz-1_000_000_000",
feature = "tick-hz-2", feature = "tick-hz-2",
feature = "tick-hz-4", feature = "tick-hz-4",
feature = "tick-hz-8", feature = "tick-hz-8",
feature = "tick-hz-10",
feature = "tick-hz-16", feature = "tick-hz-16",
feature = "tick-hz-32", feature = "tick-hz-32",
feature = "tick-hz-64", feature = "tick-hz-64",
feature = "tick-hz-100",
feature = "tick-hz-128", feature = "tick-hz-128",
feature = "tick-hz-256", feature = "tick-hz-256",
feature = "tick-hz-512", feature = "tick-hz-512",
feature = "tick-hz-1_000",
feature = "tick-hz-1_024", feature = "tick-hz-1_024",
feature = "tick-hz-2_048",
feature = "tick-hz-4_096",
feature = "tick-hz-8_192",
feature = "tick-hz-16_384",
feature = "tick-hz-32_768",
feature = "tick-hz-65_536",
feature = "tick-hz-131_072",
feature = "tick-hz-262_144",
feature = "tick-hz-524_288",
feature = "tick-hz-1_048_576",
feature = "tick-hz-2_097_152",
feature = "tick-hz-4_194_304",
feature = "tick-hz-8_388_608",
feature = "tick-hz-16_777_216",
feature = "tick-hz-2_000", feature = "tick-hz-2_000",
feature = "tick-hz-2_048",
feature = "tick-hz-4_000", feature = "tick-hz-4_000",
feature = "tick-hz-4_096",
feature = "tick-hz-8_000", feature = "tick-hz-8_000",
feature = "tick-hz-8_192",
feature = "tick-hz-10_000",
feature = "tick-hz-16_000", feature = "tick-hz-16_000",
feature = "tick-hz-32_000", feature = "tick-hz-16_384",
feature = "tick-hz-64_000",
feature = "tick-hz-128_000",
feature = "tick-hz-256_000",
feature = "tick-hz-512_000",
feature = "tick-hz-1_024_000",
feature = "tick-hz-2_048_000",
feature = "tick-hz-4_096_000",
feature = "tick-hz-8_192_000",
feature = "tick-hz-16_384_000",
feature = "tick-hz-32_768_000",
feature = "tick-hz-65_536_000",
feature = "tick-hz-131_072_000",
feature = "tick-hz-262_144_000",
feature = "tick-hz-524_288_000",
feature = "tick-hz-20_000", feature = "tick-hz-20_000",
feature = "tick-hz-32_000",
feature = "tick-hz-32_768",
feature = "tick-hz-40_000", feature = "tick-hz-40_000",
feature = "tick-hz-64_000",
feature = "tick-hz-65_536",
feature = "tick-hz-80_000", feature = "tick-hz-80_000",
feature = "tick-hz-100_000",
feature = "tick-hz-128_000",
feature = "tick-hz-131_072",
feature = "tick-hz-160_000", feature = "tick-hz-160_000",
feature = "tick-hz-256_000",
feature = "tick-hz-262_144",
feature = "tick-hz-320_000", feature = "tick-hz-320_000",
feature = "tick-hz-512_000",
feature = "tick-hz-524_288",
feature = "tick-hz-640_000", feature = "tick-hz-640_000",
feature = "tick-hz-1_000_000",
feature = "tick-hz-1_024_000",
feature = "tick-hz-1_048_576",
feature = "tick-hz-1_280_000", feature = "tick-hz-1_280_000",
feature = "tick-hz-2_560_000",
feature = "tick-hz-5_120_000",
feature = "tick-hz-10_240_000",
feature = "tick-hz-20_480_000",
feature = "tick-hz-40_960_000",
feature = "tick-hz-81_920_000",
feature = "tick-hz-163_840_000",
feature = "tick-hz-327_680_000",
feature = "tick-hz-655_360_000",
feature = "tick-hz-1_310_720_000",
feature = "tick-hz-2_621_440_000",
feature = "tick-hz-5_242_880_000",
feature = "tick-hz-2_000_000", feature = "tick-hz-2_000_000",
feature = "tick-hz-2_048_000",
feature = "tick-hz-2_097_152",
feature = "tick-hz-2_560_000",
feature = "tick-hz-3_000_000", feature = "tick-hz-3_000_000",
feature = "tick-hz-4_000_000", feature = "tick-hz-4_000_000",
feature = "tick-hz-4_096_000",
feature = "tick-hz-4_194_304",
feature = "tick-hz-5_120_000",
feature = "tick-hz-6_000_000", feature = "tick-hz-6_000_000",
feature = "tick-hz-8_000_000", feature = "tick-hz-8_000_000",
feature = "tick-hz-8_192_000",
feature = "tick-hz-8_388_608",
feature = "tick-hz-9_000_000", feature = "tick-hz-9_000_000",
feature = "tick-hz-10_000_000",
feature = "tick-hz-10_240_000",
feature = "tick-hz-12_000_000", feature = "tick-hz-12_000_000",
feature = "tick-hz-16_000_000", feature = "tick-hz-16_000_000",
feature = "tick-hz-16_384_000",
feature = "tick-hz-16_777_216",
feature = "tick-hz-18_000_000", feature = "tick-hz-18_000_000",
feature = "tick-hz-24_000_000",
feature = "tick-hz-32_000_000",
feature = "tick-hz-36_000_000",
feature = "tick-hz-48_000_000",
feature = "tick-hz-64_000_000",
feature = "tick-hz-72_000_000",
feature = "tick-hz-96_000_000",
feature = "tick-hz-128_000_000",
feature = "tick-hz-144_000_000",
feature = "tick-hz-192_000_000",
feature = "tick-hz-256_000_000",
feature = "tick-hz-288_000_000",
feature = "tick-hz-384_000_000",
feature = "tick-hz-512_000_000",
feature = "tick-hz-576_000_000",
feature = "tick-hz-768_000_000",
feature = "tick-hz-20_000_000", feature = "tick-hz-20_000_000",
feature = "tick-hz-20_480_000",
feature = "tick-hz-24_000_000",
feature = "tick-hz-30_000_000", feature = "tick-hz-30_000_000",
feature = "tick-hz-32_000_000",
feature = "tick-hz-32_768_000",
feature = "tick-hz-36_000_000",
feature = "tick-hz-40_000_000", feature = "tick-hz-40_000_000",
feature = "tick-hz-40_960_000",
feature = "tick-hz-48_000_000",
feature = "tick-hz-50_000_000", feature = "tick-hz-50_000_000",
feature = "tick-hz-60_000_000", feature = "tick-hz-60_000_000",
feature = "tick-hz-64_000_000",
feature = "tick-hz-65_536_000",
feature = "tick-hz-70_000_000", feature = "tick-hz-70_000_000",
feature = "tick-hz-72_000_000",
feature = "tick-hz-80_000_000", feature = "tick-hz-80_000_000",
feature = "tick-hz-81_920_000",
feature = "tick-hz-90_000_000", feature = "tick-hz-90_000_000",
feature = "tick-hz-96_000_000",
feature = "tick-hz-100_000_000",
feature = "tick-hz-110_000_000", feature = "tick-hz-110_000_000",
feature = "tick-hz-120_000_000", feature = "tick-hz-120_000_000",
feature = "tick-hz-128_000_000",
feature = "tick-hz-130_000_000", feature = "tick-hz-130_000_000",
feature = "tick-hz-131_072_000",
feature = "tick-hz-140_000_000", feature = "tick-hz-140_000_000",
feature = "tick-hz-144_000_000",
feature = "tick-hz-150_000_000", feature = "tick-hz-150_000_000",
feature = "tick-hz-160_000_000", feature = "tick-hz-160_000_000",
feature = "tick-hz-163_840_000",
feature = "tick-hz-170_000_000", feature = "tick-hz-170_000_000",
feature = "tick-hz-180_000_000", feature = "tick-hz-180_000_000",
feature = "tick-hz-190_000_000", feature = "tick-hz-190_000_000",
feature = "tick-hz-192_000_000",
feature = "tick-hz-200_000_000", feature = "tick-hz-200_000_000",
feature = "tick-hz-210_000_000", feature = "tick-hz-210_000_000",
feature = "tick-hz-220_000_000", feature = "tick-hz-220_000_000",
feature = "tick-hz-230_000_000", feature = "tick-hz-230_000_000",
feature = "tick-hz-240_000_000", feature = "tick-hz-240_000_000",
feature = "tick-hz-250_000_000", feature = "tick-hz-250_000_000",
feature = "tick-hz-256_000_000",
feature = "tick-hz-260_000_000", feature = "tick-hz-260_000_000",
feature = "tick-hz-262_144_000",
feature = "tick-hz-270_000_000", feature = "tick-hz-270_000_000",
feature = "tick-hz-280_000_000", feature = "tick-hz-280_000_000",
feature = "tick-hz-288_000_000",
feature = "tick-hz-290_000_000", feature = "tick-hz-290_000_000",
feature = "tick-hz-300_000_000", feature = "tick-hz-300_000_000",
feature = "tick-hz-320_000_000", feature = "tick-hz-320_000_000",
feature = "tick-hz-327_680_000",
feature = "tick-hz-340_000_000", feature = "tick-hz-340_000_000",
feature = "tick-hz-360_000_000", feature = "tick-hz-360_000_000",
feature = "tick-hz-380_000_000", feature = "tick-hz-380_000_000",
feature = "tick-hz-384_000_000",
feature = "tick-hz-400_000_000", feature = "tick-hz-400_000_000",
feature = "tick-hz-420_000_000", feature = "tick-hz-420_000_000",
feature = "tick-hz-440_000_000", feature = "tick-hz-440_000_000",
feature = "tick-hz-460_000_000", feature = "tick-hz-460_000_000",
feature = "tick-hz-480_000_000", feature = "tick-hz-480_000_000",
feature = "tick-hz-500_000_000", feature = "tick-hz-500_000_000",
feature = "tick-hz-512_000_000",
feature = "tick-hz-520_000_000", feature = "tick-hz-520_000_000",
feature = "tick-hz-524_288_000",
feature = "tick-hz-540_000_000", feature = "tick-hz-540_000_000",
feature = "tick-hz-560_000_000", feature = "tick-hz-560_000_000",
feature = "tick-hz-576_000_000",
feature = "tick-hz-580_000_000", feature = "tick-hz-580_000_000",
feature = "tick-hz-600_000_000", feature = "tick-hz-600_000_000",
feature = "tick-hz-620_000_000", feature = "tick-hz-620_000_000",
feature = "tick-hz-640_000_000", feature = "tick-hz-640_000_000",
feature = "tick-hz-655_360_000",
feature = "tick-hz-660_000_000", feature = "tick-hz-660_000_000",
feature = "tick-hz-680_000_000", feature = "tick-hz-680_000_000",
feature = "tick-hz-700_000_000", feature = "tick-hz-700_000_000",
feature = "tick-hz-720_000_000", feature = "tick-hz-720_000_000",
feature = "tick-hz-740_000_000", feature = "tick-hz-740_000_000",
feature = "tick-hz-760_000_000", feature = "tick-hz-760_000_000",
feature = "tick-hz-768_000_000",
feature = "tick-hz-780_000_000", feature = "tick-hz-780_000_000",
feature = "tick-hz-800_000_000", feature = "tick-hz-800_000_000",
feature = "tick-hz-820_000_000", feature = "tick-hz-820_000_000",
@ -478,5 +474,9 @@ pub const TICK_HZ: u64 = 980_000_000;
feature = "tick-hz-940_000_000", feature = "tick-hz-940_000_000",
feature = "tick-hz-960_000_000", feature = "tick-hz-960_000_000",
feature = "tick-hz-980_000_000", feature = "tick-hz-980_000_000",
feature = "tick-hz-1_000_000_000",
feature = "tick-hz-1_310_720_000",
feature = "tick-hz-2_621_440_000",
feature = "tick-hz-5_242_880_000",
)))] )))]
pub const TICK_HZ: u64 = 1_000_000; pub const TICK_HZ: u64 = 1_000_000;