aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-time/Cargo.toml352
-rw-r--r--embassy-time/README.md36
-rw-r--r--embassy-time/gen_tick.py23
-rw-r--r--embassy-time/src/lib.rs8
-rw-r--r--embassy-time/src/tick.rs390
5 files changed, 500 insertions, 309 deletions
diff --git a/embassy-time/Cargo.toml b/embassy-time/Cargo.toml
index 6d9b7aa69..534894b20 100644
--- a/embassy-time/Cargo.toml
+++ b/embassy-time/Cargo.toml
@@ -32,204 +32,376 @@ features = ["defmt", "std"]
32std = ["tick-hz-1_000_000", "critical-section/std"] 32std = ["tick-hz-1_000_000", "critical-section/std"]
33wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:wasm-timer", "tick-hz-1_000_000"] 33wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:wasm-timer", "tick-hz-1_000_000"]
34 34
35# Display a timestamp of the number of seconds since startup next to defmt log messages 35## Display a timestamp of the number of seconds since startup next to defmt log messages
36# To use this you must have a time driver provided. 36## To use this you must have a time driver provided.
37defmt-timestamp-uptime = ["defmt"] 37defmt-timestamp-uptime = ["defmt"]
38 38
39# Create a global, generic queue that can be used with any executor 39## Create a `MockDriver` that can be manually advanced for testing purposes.
40# To use this you must have a time driver provided. 40mock-driver = ["tick-hz-1_000_000"]
41
42#! ### Generic Queue
43
44## Create a global, generic queue that can be used with any executor
45## To use this you must have a time driver provided.
41generic-queue = [] 46generic-queue = []
42 47
43# Set the number of timers for the generic queue. 48#! The following features set how many timers are used for the generic queue. At most 1
44# 49#! `generic-queue-*` feature can be enabled. If none is enabled, a default of 64 timers is used.
45# At most 1 `generic-queue-*` feature can be enabled. If none is enabled, a default of 64 timers is used. 50#!
46# 51#! When using embassy-time from libraries, you should *not* enable any `generic-queue-*` feature, to allow the
47# When using embassy-time from libraries, you should *not* enable any `generic-queue-*` feature, to allow the 52#! end user to pick.
48# end user to pick. 53
54## Generic Queue with 8 timers
49generic-queue-8 = ["generic-queue"] 55generic-queue-8 = ["generic-queue"]
56## Generic Queue with 16 timers
50generic-queue-16 = ["generic-queue"] 57generic-queue-16 = ["generic-queue"]
58## Generic Queue with 32 timers
51generic-queue-32 = ["generic-queue"] 59generic-queue-32 = ["generic-queue"]
60## Generic Queue with 64 timers
52generic-queue-64 = ["generic-queue"] 61generic-queue-64 = ["generic-queue"]
62## Generic Queue with 128 timers
53generic-queue-128 = ["generic-queue"] 63generic-queue-128 = ["generic-queue"]
54 64
55# Create a `MockDriver` that can be manually advanced for testing purposes. 65#! ### Tick Rate
56mock-driver = ["tick-hz-1_000_000"] 66#!
57 67#! At most 1 `tick-*` feature can be enabled. If none is enabled, a default of 1MHz is used.
58# Set the `embassy_time` tick rate. 68#!
59# 69#! If the time driver in use supports using arbitrary tick rates, you can enable one `tick-*`
60# At most 1 `tick-*` feature can be enabled. If none is enabled, a default of 1MHz is used. 70#! feature from your binary crate to set the tick rate. The driver will use configured tick rate.
61# 71#! If the time driver supports a fixed tick rate, it will enable one feature itself, so you should
62# If the time driver in use supports using arbitrary tick rates, you can enable one `tick-*` 72#! not enable one. Check the time driver documentation for details.
63# feature from your binary crate to set the tick rate. The driver will use configured tick rate. 73#!
64# If the time driver supports a fixed tick rate, it will enable one feature itself, so you should 74#! When using embassy-time from libraries, you should *not* enable any `tick-*` feature, to allow the
65# not enable one. Check the time driver documentation for details. 75#! end user or the driver to pick.
66# 76#! <details>
67# When using embassy-time from libraries, you should *not* enable any `tick-*` feature, to allow the 77#! <summary>Available tick rates:</summary>
68# end user or the driver to pick. 78#! <!-- Next line must be left empty for the features to render correctly! -->
79#!
69 80
70# BEGIN TICKS 81# BEGIN TICKS
71# Generated by gen_tick.py. DO NOT EDIT. 82# Generated by gen_tick.py. DO NOT EDIT.
83## 1Hz Tick Rate
72tick-hz-1 = [] 84tick-hz-1 = []
73tick-hz-10 = [] 85## 2Hz Tick Rate
74tick-hz-100 = []
75tick-hz-1_000 = []
76tick-hz-10_000 = []
77tick-hz-100_000 = []
78tick-hz-1_000_000 = []
79tick-hz-10_000_000 = []
80tick-hz-100_000_000 = []
81tick-hz-1_000_000_000 = []
82tick-hz-2 = [] 86tick-hz-2 = []
87## 4Hz Tick Rate
83tick-hz-4 = [] 88tick-hz-4 = []
89## 8Hz Tick Rate
84tick-hz-8 = [] 90tick-hz-8 = []
91## 10Hz Tick Rate
92tick-hz-10 = []
93## 16Hz Tick Rate
85tick-hz-16 = [] 94tick-hz-16 = []
95## 32Hz Tick Rate
86tick-hz-32 = [] 96tick-hz-32 = []
97## 64Hz Tick Rate
87tick-hz-64 = [] 98tick-hz-64 = []
99## 100Hz Tick Rate
100tick-hz-100 = []
101## 128Hz Tick Rate
88tick-hz-128 = [] 102tick-hz-128 = []
103## 256Hz Tick Rate
89tick-hz-256 = [] 104tick-hz-256 = []
105## 512Hz Tick Rate
90tick-hz-512 = [] 106tick-hz-512 = []
107## 1.0kHz Tick Rate
108tick-hz-1_000 = []
109## 1.024kHz Tick Rate
91tick-hz-1_024 = [] 110tick-hz-1_024 = []
92tick-hz-2_048 = [] 111## 2.0kHz Tick Rate
93tick-hz-4_096 = []
94tick-hz-8_192 = []
95tick-hz-16_384 = []
96tick-hz-32_768 = []
97tick-hz-65_536 = []
98tick-hz-131_072 = []
99tick-hz-262_144 = []
100tick-hz-524_288 = []
101tick-hz-1_048_576 = []
102tick-hz-2_097_152 = []
103tick-hz-4_194_304 = []
104tick-hz-8_388_608 = []
105tick-hz-16_777_216 = []
106tick-hz-2_000 = [] 112tick-hz-2_000 = []
113## 2.048kHz Tick Rate
114tick-hz-2_048 = []
115## 4.0kHz Tick Rate
107tick-hz-4_000 = [] 116tick-hz-4_000 = []
117## 4.096kHz Tick Rate
118tick-hz-4_096 = []
119## 8.0kHz Tick Rate
108tick-hz-8_000 = [] 120tick-hz-8_000 = []
121## 8.192kHz Tick Rate
122tick-hz-8_192 = []
123## 10.0kHz Tick Rate
124tick-hz-10_000 = []
125## 16.0kHz Tick Rate
109tick-hz-16_000 = [] 126tick-hz-16_000 = []
110tick-hz-32_000 = [] 127## 16.384kHz Tick Rate
111tick-hz-64_000 = [] 128tick-hz-16_384 = []
112tick-hz-128_000 = [] 129## 20.0kHz Tick Rate
113tick-hz-256_000 = []
114tick-hz-512_000 = []
115tick-hz-1_024_000 = []
116tick-hz-2_048_000 = []
117tick-hz-4_096_000 = []
118tick-hz-8_192_000 = []
119tick-hz-16_384_000 = []
120tick-hz-32_768_000 = []
121tick-hz-65_536_000 = []
122tick-hz-131_072_000 = []
123tick-hz-262_144_000 = []
124tick-hz-524_288_000 = []
125tick-hz-20_000 = [] 130tick-hz-20_000 = []
131## 32.0kHz Tick Rate
132tick-hz-32_000 = []
133## 32.768kHz Tick Rate
134tick-hz-32_768 = []
135## 40.0kHz Tick Rate
126tick-hz-40_000 = [] 136tick-hz-40_000 = []
137## 64.0kHz Tick Rate
138tick-hz-64_000 = []
139## 65.536kHz Tick Rate
140tick-hz-65_536 = []
141## 80.0kHz Tick Rate
127tick-hz-80_000 = [] 142tick-hz-80_000 = []
143## 100.0kHz Tick Rate
144tick-hz-100_000 = []
145## 128.0kHz Tick Rate
146tick-hz-128_000 = []
147## 131.072kHz Tick Rate
148tick-hz-131_072 = []
149## 160.0kHz Tick Rate
128tick-hz-160_000 = [] 150tick-hz-160_000 = []
151## 256.0kHz Tick Rate
152tick-hz-256_000 = []
153## 262.144kHz Tick Rate
154tick-hz-262_144 = []
155## 320.0kHz Tick Rate
129tick-hz-320_000 = [] 156tick-hz-320_000 = []
157## 512.0kHz Tick Rate
158tick-hz-512_000 = []
159## 524.288kHz Tick Rate
160tick-hz-524_288 = []
161## 640.0kHz Tick Rate
130tick-hz-640_000 = [] 162tick-hz-640_000 = []
163## 1.0MHz Tick Rate
164tick-hz-1_000_000 = []
165## 1.024MHz Tick Rate
166tick-hz-1_024_000 = []
167## 1.048576MHz Tick Rate
168tick-hz-1_048_576 = []
169## 1.28MHz Tick Rate
131tick-hz-1_280_000 = [] 170tick-hz-1_280_000 = []
132tick-hz-2_560_000 = [] 171## 2.0MHz Tick Rate
133tick-hz-5_120_000 = []
134tick-hz-10_240_000 = []
135tick-hz-20_480_000 = []
136tick-hz-40_960_000 = []
137tick-hz-81_920_000 = []
138tick-hz-163_840_000 = []
139tick-hz-327_680_000 = []
140tick-hz-655_360_000 = []
141tick-hz-1_310_720_000 = []
142tick-hz-2_621_440_000 = []
143tick-hz-5_242_880_000 = []
144tick-hz-2_000_000 = [] 172tick-hz-2_000_000 = []
173## 2.048MHz Tick Rate
174tick-hz-2_048_000 = []
175## 2.097152MHz Tick Rate
176tick-hz-2_097_152 = []
177## 2.56MHz Tick Rate
178tick-hz-2_560_000 = []
179## 3.0MHz Tick Rate
145tick-hz-3_000_000 = [] 180tick-hz-3_000_000 = []
181## 4.0MHz Tick Rate
146tick-hz-4_000_000 = [] 182tick-hz-4_000_000 = []
183## 4.096MHz Tick Rate
184tick-hz-4_096_000 = []
185## 4.194304MHz Tick Rate
186tick-hz-4_194_304 = []
187## 5.12MHz Tick Rate
188tick-hz-5_120_000 = []
189## 6.0MHz Tick Rate
147tick-hz-6_000_000 = [] 190tick-hz-6_000_000 = []
191## 8.0MHz Tick Rate
148tick-hz-8_000_000 = [] 192tick-hz-8_000_000 = []
193## 8.192MHz Tick Rate
194tick-hz-8_192_000 = []
195## 8.388608MHz Tick Rate
196tick-hz-8_388_608 = []
197## 9.0MHz Tick Rate
149tick-hz-9_000_000 = [] 198tick-hz-9_000_000 = []
199## 10.0MHz Tick Rate
200tick-hz-10_000_000 = []
201## 10.24MHz Tick Rate
202tick-hz-10_240_000 = []
203## 12.0MHz Tick Rate
150tick-hz-12_000_000 = [] 204tick-hz-12_000_000 = []
205## 16.0MHz Tick Rate
151tick-hz-16_000_000 = [] 206tick-hz-16_000_000 = []
207## 16.384MHz Tick Rate
208tick-hz-16_384_000 = []
209## 16.777216MHz Tick Rate
210tick-hz-16_777_216 = []
211## 18.0MHz Tick Rate
152tick-hz-18_000_000 = [] 212tick-hz-18_000_000 = []
213## 20.0MHz Tick Rate
214tick-hz-20_000_000 = []
215## 20.48MHz Tick Rate
216tick-hz-20_480_000 = []
217## 24.0MHz Tick Rate
153tick-hz-24_000_000 = [] 218tick-hz-24_000_000 = []
219## 30.0MHz Tick Rate
220tick-hz-30_000_000 = []
221## 32.0MHz Tick Rate
154tick-hz-32_000_000 = [] 222tick-hz-32_000_000 = []
223## 32.768MHz Tick Rate
224tick-hz-32_768_000 = []
225## 36.0MHz Tick Rate
155tick-hz-36_000_000 = [] 226tick-hz-36_000_000 = []
156tick-hz-48_000_000 = [] 227## 40.0MHz Tick Rate
157tick-hz-64_000_000 = []
158tick-hz-72_000_000 = []
159tick-hz-96_000_000 = []
160tick-hz-128_000_000 = []
161tick-hz-144_000_000 = []
162tick-hz-192_000_000 = []
163tick-hz-256_000_000 = []
164tick-hz-288_000_000 = []
165tick-hz-384_000_000 = []
166tick-hz-512_000_000 = []
167tick-hz-576_000_000 = []
168tick-hz-768_000_000 = []
169tick-hz-20_000_000 = []
170tick-hz-30_000_000 = []
171tick-hz-40_000_000 = [] 228tick-hz-40_000_000 = []
229## 40.96MHz Tick Rate
230tick-hz-40_960_000 = []
231## 48.0MHz Tick Rate
232tick-hz-48_000_000 = []
233## 50.0MHz Tick Rate
172tick-hz-50_000_000 = [] 234tick-hz-50_000_000 = []
235## 60.0MHz Tick Rate
173tick-hz-60_000_000 = [] 236tick-hz-60_000_000 = []
237## 64.0MHz Tick Rate
238tick-hz-64_000_000 = []
239## 65.536MHz Tick Rate
240tick-hz-65_536_000 = []
241## 70.0MHz Tick Rate
174tick-hz-70_000_000 = [] 242tick-hz-70_000_000 = []
243## 72.0MHz Tick Rate
244tick-hz-72_000_000 = []
245## 80.0MHz Tick Rate
175tick-hz-80_000_000 = [] 246tick-hz-80_000_000 = []
247## 81.92MHz Tick Rate
248tick-hz-81_920_000 = []
249## 90.0MHz Tick Rate
176tick-hz-90_000_000 = [] 250tick-hz-90_000_000 = []
251## 96.0MHz Tick Rate
252tick-hz-96_000_000 = []
253## 100.0MHz Tick Rate
254tick-hz-100_000_000 = []
255## 110.0MHz Tick Rate
177tick-hz-110_000_000 = [] 256tick-hz-110_000_000 = []
257## 120.0MHz Tick Rate
178tick-hz-120_000_000 = [] 258tick-hz-120_000_000 = []
259## 128.0MHz Tick Rate
260tick-hz-128_000_000 = []
261## 130.0MHz Tick Rate
179tick-hz-130_000_000 = [] 262tick-hz-130_000_000 = []
263## 131.072MHz Tick Rate
264tick-hz-131_072_000 = []
265## 140.0MHz Tick Rate
180tick-hz-140_000_000 = [] 266tick-hz-140_000_000 = []
267## 144.0MHz Tick Rate
268tick-hz-144_000_000 = []
269## 150.0MHz Tick Rate
181tick-hz-150_000_000 = [] 270tick-hz-150_000_000 = []
271## 160.0MHz Tick Rate
182tick-hz-160_000_000 = [] 272tick-hz-160_000_000 = []
273## 163.84MHz Tick Rate
274tick-hz-163_840_000 = []
275## 170.0MHz Tick Rate
183tick-hz-170_000_000 = [] 276tick-hz-170_000_000 = []
277## 180.0MHz Tick Rate
184tick-hz-180_000_000 = [] 278tick-hz-180_000_000 = []
279## 190.0MHz Tick Rate
185tick-hz-190_000_000 = [] 280tick-hz-190_000_000 = []
281## 192.0MHz Tick Rate
282tick-hz-192_000_000 = []
283## 200.0MHz Tick Rate
186tick-hz-200_000_000 = [] 284tick-hz-200_000_000 = []
285## 210.0MHz Tick Rate
187tick-hz-210_000_000 = [] 286tick-hz-210_000_000 = []
287## 220.0MHz Tick Rate
188tick-hz-220_000_000 = [] 288tick-hz-220_000_000 = []
289## 230.0MHz Tick Rate
189tick-hz-230_000_000 = [] 290tick-hz-230_000_000 = []
291## 240.0MHz Tick Rate
190tick-hz-240_000_000 = [] 292tick-hz-240_000_000 = []
293## 250.0MHz Tick Rate
191tick-hz-250_000_000 = [] 294tick-hz-250_000_000 = []
295## 256.0MHz Tick Rate
296tick-hz-256_000_000 = []
297## 260.0MHz Tick Rate
192tick-hz-260_000_000 = [] 298tick-hz-260_000_000 = []
299## 262.144MHz Tick Rate
300tick-hz-262_144_000 = []
301## 270.0MHz Tick Rate
193tick-hz-270_000_000 = [] 302tick-hz-270_000_000 = []
303## 280.0MHz Tick Rate
194tick-hz-280_000_000 = [] 304tick-hz-280_000_000 = []
305## 288.0MHz Tick Rate
306tick-hz-288_000_000 = []
307## 290.0MHz Tick Rate
195tick-hz-290_000_000 = [] 308tick-hz-290_000_000 = []
309## 300.0MHz Tick Rate
196tick-hz-300_000_000 = [] 310tick-hz-300_000_000 = []
311## 320.0MHz Tick Rate
197tick-hz-320_000_000 = [] 312tick-hz-320_000_000 = []
313## 327.68MHz Tick Rate
314tick-hz-327_680_000 = []
315## 340.0MHz Tick Rate
198tick-hz-340_000_000 = [] 316tick-hz-340_000_000 = []
317## 360.0MHz Tick Rate
199tick-hz-360_000_000 = [] 318tick-hz-360_000_000 = []
319## 380.0MHz Tick Rate
200tick-hz-380_000_000 = [] 320tick-hz-380_000_000 = []
321## 384.0MHz Tick Rate
322tick-hz-384_000_000 = []
323## 400.0MHz Tick Rate
201tick-hz-400_000_000 = [] 324tick-hz-400_000_000 = []
325## 420.0MHz Tick Rate
202tick-hz-420_000_000 = [] 326tick-hz-420_000_000 = []
327## 440.0MHz Tick Rate
203tick-hz-440_000_000 = [] 328tick-hz-440_000_000 = []
329## 460.0MHz Tick Rate
204tick-hz-460_000_000 = [] 330tick-hz-460_000_000 = []
331## 480.0MHz Tick Rate
205tick-hz-480_000_000 = [] 332tick-hz-480_000_000 = []
333## 500.0MHz Tick Rate
206tick-hz-500_000_000 = [] 334tick-hz-500_000_000 = []
335## 512.0MHz Tick Rate
336tick-hz-512_000_000 = []
337## 520.0MHz Tick Rate
207tick-hz-520_000_000 = [] 338tick-hz-520_000_000 = []
339## 524.288MHz Tick Rate
340tick-hz-524_288_000 = []
341## 540.0MHz Tick Rate
208tick-hz-540_000_000 = [] 342tick-hz-540_000_000 = []
343## 560.0MHz Tick Rate
209tick-hz-560_000_000 = [] 344tick-hz-560_000_000 = []
345## 576.0MHz Tick Rate
346tick-hz-576_000_000 = []
347## 580.0MHz Tick Rate
210tick-hz-580_000_000 = [] 348tick-hz-580_000_000 = []
349## 600.0MHz Tick Rate
211tick-hz-600_000_000 = [] 350tick-hz-600_000_000 = []
351## 620.0MHz Tick Rate
212tick-hz-620_000_000 = [] 352tick-hz-620_000_000 = []
353## 640.0MHz Tick Rate
213tick-hz-640_000_000 = [] 354tick-hz-640_000_000 = []
355## 655.36MHz Tick Rate
356tick-hz-655_360_000 = []
357## 660.0MHz Tick Rate
214tick-hz-660_000_000 = [] 358tick-hz-660_000_000 = []
359## 680.0MHz Tick Rate
215tick-hz-680_000_000 = [] 360tick-hz-680_000_000 = []
361## 700.0MHz Tick Rate
216tick-hz-700_000_000 = [] 362tick-hz-700_000_000 = []
363## 720.0MHz Tick Rate
217tick-hz-720_000_000 = [] 364tick-hz-720_000_000 = []
365## 740.0MHz Tick Rate
218tick-hz-740_000_000 = [] 366tick-hz-740_000_000 = []
367## 760.0MHz Tick Rate
219tick-hz-760_000_000 = [] 368tick-hz-760_000_000 = []
369## 768.0MHz Tick Rate
370tick-hz-768_000_000 = []
371## 780.0MHz Tick Rate
220tick-hz-780_000_000 = [] 372tick-hz-780_000_000 = []
373## 800.0MHz Tick Rate
221tick-hz-800_000_000 = [] 374tick-hz-800_000_000 = []
375## 820.0MHz Tick Rate
222tick-hz-820_000_000 = [] 376tick-hz-820_000_000 = []
377## 840.0MHz Tick Rate
223tick-hz-840_000_000 = [] 378tick-hz-840_000_000 = []
379## 860.0MHz Tick Rate
224tick-hz-860_000_000 = [] 380tick-hz-860_000_000 = []
381## 880.0MHz Tick Rate
225tick-hz-880_000_000 = [] 382tick-hz-880_000_000 = []
383## 900.0MHz Tick Rate
226tick-hz-900_000_000 = [] 384tick-hz-900_000_000 = []
385## 920.0MHz Tick Rate
227tick-hz-920_000_000 = [] 386tick-hz-920_000_000 = []
387## 940.0MHz Tick Rate
228tick-hz-940_000_000 = [] 388tick-hz-940_000_000 = []
389## 960.0MHz Tick Rate
229tick-hz-960_000_000 = [] 390tick-hz-960_000_000 = []
391## 980.0MHz Tick Rate
230tick-hz-980_000_000 = [] 392tick-hz-980_000_000 = []
393## 1.0GHz Tick Rate
394tick-hz-1_000_000_000 = []
395## 1.31072GHz Tick Rate
396tick-hz-1_310_720_000 = []
397## 2.62144GHz Tick Rate
398tick-hz-2_621_440_000 = []
399## 5.24288GHz Tick Rate
400tick-hz-5_242_880_000 = []
231# END TICKS 401# END TICKS
232 402
403#! </details>
404
233[dependencies] 405[dependencies]
234defmt = { version = "0.3", optional = true } 406defmt = { version = "0.3", optional = true }
235log = { version = "0.4.14", optional = true } 407log = { version = "0.4.14", optional = true }
@@ -243,6 +415,8 @@ critical-section = "1.1"
243cfg-if = "1.0.0" 415cfg-if = "1.0.0"
244heapless = "0.8" 416heapless = "0.8"
245 417
418document-features = "0.2.7"
419
246# WASM dependencies 420# WASM dependencies
247wasm-bindgen = { version = "0.2.81", optional = true } 421wasm-bindgen = { version = "0.2.81", optional = true }
248js-sys = { version = "0.3", optional = true } 422js-sys = { version = "0.3", optional = true }
diff --git a/embassy-time/README.md b/embassy-time/README.md
index 2be80ff9c..a4a622700 100644
--- a/embassy-time/README.md
+++ b/embassy-time/README.md
@@ -3,25 +3,40 @@
3Timekeeping, delays and timeouts. 3Timekeeping, delays and timeouts.
4 4
5Timekeeping is done with elapsed time since system boot. Time is represented in 5Timekeeping is done with elapsed time since system boot. Time is represented in
6ticks, where the tick rate is defined by the current driver, usually to match 6ticks, where the tick rate is defined either by the driver (in the case of a fixed-
7the tick rate of the hardware. 7rate tick) or chosen by the user with a [tick rate](#tick-rate) feature. The chosen
8tick rate applies to everything in `embassy-time` and thus determines the maximum
9timing resolution of <code>(1 / tick_rate) seconds</code>.
8 10
9Tick counts are 64 bits. At the highest supported tick rate of 1Mhz this supports 11Tick counts are 64 bits. The default tick rate of 1Mhz supports
10representing time spans of up to ~584558 years, which is big enough for all practical 12representing time spans of up to ~584558 years, which is big enough for all practical
11purposes and allows not having to worry about overflows. 13purposes and allows not having to worry about overflows.
12 14
15## Time driver
16
17The `time` module is backed by a global "time driver" specified at build time.
18Only one driver can be active in a program.
19
20All methods and structs transparently call into the active driver. This makes it
21possible for libraries to use `embassy_time` in a driver-agnostic way without
22requiring generic parameters.
23
24For more details, check the [`driver`] module.
25
26## Instants and Durations
27
13[`Instant`] represents a given instant of time (relative to system boot), and [`Duration`] 28[`Instant`] represents a given instant of time (relative to system boot), and [`Duration`]
14represents the duration of a span of time. They implement the math operations you'd expect, 29represents the duration of a span of time. They implement the math operations you'd expect,
15like addition and substraction. 30like addition and substraction.
16 31
17# Delays and timeouts 32## Delays and timeouts
18 33
19[`Timer`] allows performing async delays. [`Ticker`] allows periodic delays without drifting over time. 34[`Timer`] allows performing async delays. [`Ticker`] allows periodic delays without drifting over time.
20 35
21An implementation of the `embedded-hal` delay traits is provided by [`Delay`], for compatibility 36An implementation of the `embedded-hal` delay traits is provided by [`Delay`], for compatibility
22with libraries from the ecosystem. 37with libraries from the ecosystem.
23 38
24# Wall-clock time 39## Wall-clock time
25 40
26The `time` module deals exclusively with a monotonically increasing tick count. 41The `time` module deals exclusively with a monotonically increasing tick count.
27Therefore it has no direct support for wall-clock time ("real life" datetimes 42Therefore it has no direct support for wall-clock time ("real life" datetimes
@@ -30,14 +45,3 @@ like `2021-08-24 13:33:21`).
30If persistence across reboots is not needed, support can be built on top of 45If persistence across reboots is not needed, support can be built on top of
31`embassy_time` by storing the offset between "seconds elapsed since boot" 46`embassy_time` by storing the offset between "seconds elapsed since boot"
32and "seconds since unix epoch". 47and "seconds since unix epoch".
33
34# Time driver
35
36The `time` module is backed by a global "time driver" specified at build time.
37Only one driver can be active in a program.
38
39All methods and structs transparently call into the active driver. This makes it
40possible for libraries to use `embassy_time` in a driver-agnostic way without
41requiring generic parameters.
42
43For more details, check the [`driver`] module.
diff --git a/embassy-time/gen_tick.py b/embassy-time/gen_tick.py
index d4a175914..8961fb7e6 100644
--- a/embassy-time/gen_tick.py
+++ b/embassy-time/gen_tick.py
@@ -1,5 +1,4 @@
1import os 1import os
2import toml
3from glob import glob 2from glob import glob
4 3
5abspath = os.path.abspath(__file__) 4abspath = os.path.abspath(__file__)
@@ -25,11 +24,11 @@ for i in range(15, 50):
25 ticks.append(20 * i * 1_000_000) 24 ticks.append(20 * i * 1_000_000)
26 25
27seen = set() 26seen = set()
28ticks = [x for x in ticks if not (x in seen or seen.add(x))] 27ticks = sorted([x for x in ticks if not (x in seen or seen.add(x))])
29 28
30# ========= Update Cargo.toml 29# ========= Update Cargo.toml
31 30
32things = {f'tick-hz-{hz:_}': [] for hz in ticks} 31things = [(hz, f'tick-hz-{hz:_}') for hz in ticks]
33 32
34SEPARATOR_START = '# BEGIN TICKS\n' 33SEPARATOR_START = '# BEGIN TICKS\n'
35SEPARATOR_END = '# END TICKS\n' 34SEPARATOR_END = '# END TICKS\n'
@@ -38,8 +37,22 @@ with open('Cargo.toml', 'r') as f:
38 data = f.read() 37 data = f.read()
39before, data = data.split(SEPARATOR_START, maxsplit=1) 38before, data = data.split(SEPARATOR_START, maxsplit=1)
40_, after = data.split(SEPARATOR_END, maxsplit=1) 39_, after = data.split(SEPARATOR_END, maxsplit=1)
41data = before + SEPARATOR_START + HELP + \ 40
42 toml.dumps(things) + SEPARATOR_END + after 41data = before + SEPARATOR_START + HELP
42for freq, feature in things:
43 if freq >= 1_000_000_000:
44 freq_human = f"{freq / 1_000_000_000}GHz"
45 elif freq >= 1_000_000:
46 freq_human = f"{freq / 1_000_000}MHz"
47 elif freq >= 1_000:
48 freq_human = f"{freq / 1000}kHz"
49 else:
50 freq_human = f"{freq}Hz"
51
52 data += f"## {freq_human} Tick Rate\n"
53 data += f"{feature} = []\n"
54data += SEPARATOR_END + after
55
43with open('Cargo.toml', 'w') as f: 56with open('Cargo.toml', 'w') as f:
44 f.write(data) 57 f.write(data)
45 58
diff --git a/embassy-time/src/lib.rs b/embassy-time/src/lib.rs
index 82a7ee0df..a59ee68d2 100644
--- a/embassy-time/src/lib.rs
+++ b/embassy-time/src/lib.rs
@@ -6,6 +6,9 @@
6#![allow(clippy::new_without_default)] 6#![allow(clippy::new_without_default)]
7#![warn(missing_docs)] 7#![warn(missing_docs)]
8 8
9//! ## Feature flags
10#![doc = document_features::document_features!(feature_label = r#"<span class="stab portability"><code>{feature}</code></span>"#)]
11
9// This mod MUST go first, so that the others see its macros. 12// This mod MUST go first, so that the others see its macros.
10pub(crate) mod fmt; 13pub(crate) mod fmt;
11 14
@@ -37,10 +40,7 @@ pub use timer::{with_timeout, Ticker, TimeoutError, Timer};
37 40
38/// Ticks per second of the global timebase. 41/// Ticks per second of the global timebase.
39/// 42///
40/// This value is specified by the `tick-*` Cargo features, which 43/// This value is specified by the [`tick-*` Cargo features](crate#tick-rate)
41/// should be set by the time driver. Some drivers support a fixed tick rate, others
42/// allow you to choose a tick rate with Cargo features of their own. You should not
43/// set the `tick-*` features for embassy yourself as an end user.
44pub const TICK_HZ: u64 = tick::TICK_HZ; 44pub const TICK_HZ: u64 = tick::TICK_HZ;
45 45
46const fn gcd(a: u64, b: u64) -> u64 { 46const fn gcd(a: u64, b: u64) -> u64 {
diff --git a/embassy-time/src/tick.rs b/embassy-time/src/tick.rs
index 834e7c095..916ae9498 100644
--- a/embassy-time/src/tick.rs
+++ b/embassy-time/src/tick.rs
@@ -2,232 +2,204 @@
2 2
3#[cfg(feature = "tick-hz-1")] 3#[cfg(feature = "tick-hz-1")]
4pub const TICK_HZ: u64 = 1; 4pub const TICK_HZ: u64 = 1;
5#[cfg(feature = "tick-hz-10")]
6pub const TICK_HZ: u64 = 10;
7#[cfg(feature = "tick-hz-100")]
8pub const TICK_HZ: u64 = 100;
9#[cfg(feature = "tick-hz-1_000")]
10pub const TICK_HZ: u64 = 1_000;
11#[cfg(feature = "tick-hz-10_000")]
12pub const TICK_HZ: u64 = 10_000;
13#[cfg(feature = "tick-hz-100_000")]
14pub const TICK_HZ: u64 = 100_000;
15#[cfg(feature = "tick-hz-1_000_000")]
16pub const TICK_HZ: u64 = 1_000_000;
17#[cfg(feature = "tick-hz-10_000_000")]
18pub const TICK_HZ: u64 = 10_000_000;
19#[cfg(feature = "tick-hz-100_000_000")]
20pub const TICK_HZ: u64 = 100_000_000;
21#[cfg(feature = "tick-hz-1_000_000_000")]
22pub const TICK_HZ: u64 = 1_000_000_000;
23#[cfg(feature = "tick-hz-2")] 5#[cfg(feature = "tick-hz-2")]
24pub const TICK_HZ: u64 = 2; 6pub const TICK_HZ: u64 = 2;
25#[cfg(feature = "tick-hz-4")] 7#[cfg(feature = "tick-hz-4")]
26pub const TICK_HZ: u64 = 4; 8pub const TICK_HZ: u64 = 4;
27#[cfg(feature = "tick-hz-8")] 9#[cfg(feature = "tick-hz-8")]
28pub const TICK_HZ: u64 = 8; 10pub const TICK_HZ: u64 = 8;
11#[cfg(feature = "tick-hz-10")]
12pub const TICK_HZ: u64 = 10;
29#[cfg(feature = "tick-hz-16")] 13#[cfg(feature = "tick-hz-16")]
30pub const TICK_HZ: u64 = 16; 14pub const TICK_HZ: u64 = 16;
31#[cfg(feature = "tick-hz-32")] 15#[cfg(feature = "tick-hz-32")]
32pub const TICK_HZ: u64 = 32; 16pub const TICK_HZ: u64 = 32;
33#[cfg(feature = "tick-hz-64")] 17#[cfg(feature = "tick-hz-64")]
34pub const TICK_HZ: u64 = 64; 18pub const TICK_HZ: u64 = 64;
19#[cfg(feature = "tick-hz-100")]
20pub const TICK_HZ: u64 = 100;
35#[cfg(feature = "tick-hz-128")] 21#[cfg(feature = "tick-hz-128")]
36pub const TICK_HZ: u64 = 128; 22pub const TICK_HZ: u64 = 128;
37#[cfg(feature = "tick-hz-256")] 23#[cfg(feature = "tick-hz-256")]
38pub const TICK_HZ: u64 = 256; 24pub const TICK_HZ: u64 = 256;
39#[cfg(feature = "tick-hz-512")] 25#[cfg(feature = "tick-hz-512")]
40pub const TICK_HZ: u64 = 512; 26pub const TICK_HZ: u64 = 512;
27#[cfg(feature = "tick-hz-1_000")]
28pub const TICK_HZ: u64 = 1_000;
41#[cfg(feature = "tick-hz-1_024")] 29#[cfg(feature = "tick-hz-1_024")]
42pub const TICK_HZ: u64 = 1_024; 30pub const TICK_HZ: u64 = 1_024;
43#[cfg(feature = "tick-hz-2_048")]
44pub const TICK_HZ: u64 = 2_048;
45#[cfg(feature = "tick-hz-4_096")]
46pub const TICK_HZ: u64 = 4_096;
47#[cfg(feature = "tick-hz-8_192")]
48pub const TICK_HZ: u64 = 8_192;
49#[cfg(feature = "tick-hz-16_384")]
50pub const TICK_HZ: u64 = 16_384;
51#[cfg(feature = "tick-hz-32_768")]
52pub const TICK_HZ: u64 = 32_768;
53#[cfg(feature = "tick-hz-65_536")]
54pub const TICK_HZ: u64 = 65_536;
55#[cfg(feature = "tick-hz-131_072")]
56pub const TICK_HZ: u64 = 131_072;
57#[cfg(feature = "tick-hz-262_144")]
58pub const TICK_HZ: u64 = 262_144;
59#[cfg(feature = "tick-hz-524_288")]
60pub const TICK_HZ: u64 = 524_288;
61#[cfg(feature = "tick-hz-1_048_576")]
62pub const TICK_HZ: u64 = 1_048_576;
63#[cfg(feature = "tick-hz-2_097_152")]
64pub const TICK_HZ: u64 = 2_097_152;
65#[cfg(feature = "tick-hz-4_194_304")]
66pub const TICK_HZ: u64 = 4_194_304;
67#[cfg(feature = "tick-hz-8_388_608")]
68pub const TICK_HZ: u64 = 8_388_608;
69#[cfg(feature = "tick-hz-16_777_216")]
70pub const TICK_HZ: u64 = 16_777_216;
71#[cfg(feature = "tick-hz-2_000")] 31#[cfg(feature = "tick-hz-2_000")]
72pub const TICK_HZ: u64 = 2_000; 32pub const TICK_HZ: u64 = 2_000;
33#[cfg(feature = "tick-hz-2_048")]
34pub const TICK_HZ: u64 = 2_048;
73#[cfg(feature = "tick-hz-4_000")] 35#[cfg(feature = "tick-hz-4_000")]
74pub const TICK_HZ: u64 = 4_000; 36pub const TICK_HZ: u64 = 4_000;
37#[cfg(feature = "tick-hz-4_096")]
38pub const TICK_HZ: u64 = 4_096;
75#[cfg(feature = "tick-hz-8_000")] 39#[cfg(feature = "tick-hz-8_000")]
76pub const TICK_HZ: u64 = 8_000; 40pub const TICK_HZ: u64 = 8_000;
41#[cfg(feature = "tick-hz-8_192")]
42pub const TICK_HZ: u64 = 8_192;
43#[cfg(feature = "tick-hz-10_000")]
44pub const TICK_HZ: u64 = 10_000;
77#[cfg(feature = "tick-hz-16_000")] 45#[cfg(feature = "tick-hz-16_000")]
78pub const TICK_HZ: u64 = 16_000; 46pub const TICK_HZ: u64 = 16_000;
79#[cfg(feature = "tick-hz-32_000")] 47#[cfg(feature = "tick-hz-16_384")]
80pub const TICK_HZ: u64 = 32_000; 48pub const TICK_HZ: u64 = 16_384;
81#[cfg(feature = "tick-hz-64_000")]
82pub const TICK_HZ: u64 = 64_000;
83#[cfg(feature = "tick-hz-128_000")]
84pub const TICK_HZ: u64 = 128_000;
85#[cfg(feature = "tick-hz-256_000")]
86pub const TICK_HZ: u64 = 256_000;
87#[cfg(feature = "tick-hz-512_000")]
88pub const TICK_HZ: u64 = 512_000;
89#[cfg(feature = "tick-hz-1_024_000")]
90pub const TICK_HZ: u64 = 1_024_000;
91#[cfg(feature = "tick-hz-2_048_000")]
92pub const TICK_HZ: u64 = 2_048_000;
93#[cfg(feature = "tick-hz-4_096_000")]
94pub const TICK_HZ: u64 = 4_096_000;
95#[cfg(feature = "tick-hz-8_192_000")]
96pub const TICK_HZ: u64 = 8_192_000;
97#[cfg(feature = "tick-hz-16_384_000")]
98pub const TICK_HZ: u64 = 16_384_000;
99#[cfg(feature = "tick-hz-32_768_000")]
100pub const TICK_HZ: u64 = 32_768_000;
101#[cfg(feature = "tick-hz-65_536_000")]
102pub const TICK_HZ: u64 = 65_536_000;
103#[cfg(feature = "tick-hz-131_072_000")]
104pub const TICK_HZ: u64 = 131_072_000;
105#[cfg(feature = "tick-hz-262_144_000")]
106pub const TICK_HZ: u64 = 262_144_000;
107#[cfg(feature = "tick-hz-524_288_000")]
108pub const TICK_HZ: u64 = 524_288_000;
109#[cfg(feature = "tick-hz-20_000")] 49#[cfg(feature = "tick-hz-20_000")]
110pub const TICK_HZ: u64 = 20_000; 50pub const TICK_HZ: u64 = 20_000;
51#[cfg(feature = "tick-hz-32_000")]
52pub const TICK_HZ: u64 = 32_000;
53#[cfg(feature = "tick-hz-32_768")]
54pub const TICK_HZ: u64 = 32_768;
111#[cfg(feature = "tick-hz-40_000")] 55#[cfg(feature = "tick-hz-40_000")]
112pub const TICK_HZ: u64 = 40_000; 56pub const TICK_HZ: u64 = 40_000;
57#[cfg(feature = "tick-hz-64_000")]
58pub const TICK_HZ: u64 = 64_000;
59#[cfg(feature = "tick-hz-65_536")]
60pub const TICK_HZ: u64 = 65_536;
113#[cfg(feature = "tick-hz-80_000")] 61#[cfg(feature = "tick-hz-80_000")]
114pub const TICK_HZ: u64 = 80_000; 62pub const TICK_HZ: u64 = 80_000;
63#[cfg(feature = "tick-hz-100_000")]
64pub const TICK_HZ: u64 = 100_000;
65#[cfg(feature = "tick-hz-128_000")]
66pub const TICK_HZ: u64 = 128_000;
67#[cfg(feature = "tick-hz-131_072")]
68pub const TICK_HZ: u64 = 131_072;
115#[cfg(feature = "tick-hz-160_000")] 69#[cfg(feature = "tick-hz-160_000")]
116pub const TICK_HZ: u64 = 160_000; 70pub const TICK_HZ: u64 = 160_000;
71#[cfg(feature = "tick-hz-256_000")]
72pub const TICK_HZ: u64 = 256_000;
73#[cfg(feature = "tick-hz-262_144")]
74pub const TICK_HZ: u64 = 262_144;
117#[cfg(feature = "tick-hz-320_000")] 75#[cfg(feature = "tick-hz-320_000")]
118pub const TICK_HZ: u64 = 320_000; 76pub const TICK_HZ: u64 = 320_000;
77#[cfg(feature = "tick-hz-512_000")]
78pub const TICK_HZ: u64 = 512_000;
79#[cfg(feature = "tick-hz-524_288")]
80pub const TICK_HZ: u64 = 524_288;
119#[cfg(feature = "tick-hz-640_000")] 81#[cfg(feature = "tick-hz-640_000")]
120pub const TICK_HZ: u64 = 640_000; 82pub const TICK_HZ: u64 = 640_000;
83#[cfg(feature = "tick-hz-1_000_000")]
84pub const TICK_HZ: u64 = 1_000_000;
85#[cfg(feature = "tick-hz-1_024_000")]
86pub const TICK_HZ: u64 = 1_024_000;
87#[cfg(feature = "tick-hz-1_048_576")]
88pub const TICK_HZ: u64 = 1_048_576;
121#[cfg(feature = "tick-hz-1_280_000")] 89#[cfg(feature = "tick-hz-1_280_000")]
122pub const TICK_HZ: u64 = 1_280_000; 90pub const TICK_HZ: u64 = 1_280_000;
123#[cfg(feature = "tick-hz-2_560_000")]
124pub const TICK_HZ: u64 = 2_560_000;
125#[cfg(feature = "tick-hz-5_120_000")]
126pub const TICK_HZ: u64 = 5_120_000;
127#[cfg(feature = "tick-hz-10_240_000")]
128pub const TICK_HZ: u64 = 10_240_000;
129#[cfg(feature = "tick-hz-20_480_000")]
130pub const TICK_HZ: u64 = 20_480_000;
131#[cfg(feature = "tick-hz-40_960_000")]
132pub const TICK_HZ: u64 = 40_960_000;
133#[cfg(feature = "tick-hz-81_920_000")]
134pub const TICK_HZ: u64 = 81_920_000;
135#[cfg(feature = "tick-hz-163_840_000")]
136pub const TICK_HZ: u64 = 163_840_000;
137#[cfg(feature = "tick-hz-327_680_000")]
138pub const TICK_HZ: u64 = 327_680_000;
139#[cfg(feature = "tick-hz-655_360_000")]
140pub const TICK_HZ: u64 = 655_360_000;
141#[cfg(feature = "tick-hz-1_310_720_000")]
142pub const TICK_HZ: u64 = 1_310_720_000;
143#[cfg(feature = "tick-hz-2_621_440_000")]
144pub const TICK_HZ: u64 = 2_621_440_000;
145#[cfg(feature = "tick-hz-5_242_880_000")]
146pub const TICK_HZ: u64 = 5_242_880_000;
147#[cfg(feature = "tick-hz-2_000_000")] 91#[cfg(feature = "tick-hz-2_000_000")]
148pub const TICK_HZ: u64 = 2_000_000; 92pub const TICK_HZ: u64 = 2_000_000;
93#[cfg(feature = "tick-hz-2_048_000")]
94pub const TICK_HZ: u64 = 2_048_000;
95#[cfg(feature = "tick-hz-2_097_152")]
96pub const TICK_HZ: u64 = 2_097_152;
97#[cfg(feature = "tick-hz-2_560_000")]
98pub const TICK_HZ: u64 = 2_560_000;
149#[cfg(feature = "tick-hz-3_000_000")] 99#[cfg(feature = "tick-hz-3_000_000")]
150pub const TICK_HZ: u64 = 3_000_000; 100pub const TICK_HZ: u64 = 3_000_000;
151#[cfg(feature = "tick-hz-4_000_000")] 101#[cfg(feature = "tick-hz-4_000_000")]
152pub const TICK_HZ: u64 = 4_000_000; 102pub const TICK_HZ: u64 = 4_000_000;
103#[cfg(feature = "tick-hz-4_096_000")]
104pub const TICK_HZ: u64 = 4_096_000;
105#[cfg(feature = "tick-hz-4_194_304")]
106pub const TICK_HZ: u64 = 4_194_304;
107#[cfg(feature = "tick-hz-5_120_000")]
108pub const TICK_HZ: u64 = 5_120_000;
153#[cfg(feature = "tick-hz-6_000_000")] 109#[cfg(feature = "tick-hz-6_000_000")]
154pub const TICK_HZ: u64 = 6_000_000; 110pub const TICK_HZ: u64 = 6_000_000;
155#[cfg(feature = "tick-hz-8_000_000")] 111#[cfg(feature = "tick-hz-8_000_000")]
156pub const TICK_HZ: u64 = 8_000_000; 112pub const TICK_HZ: u64 = 8_000_000;
113#[cfg(feature = "tick-hz-8_192_000")]
114pub const TICK_HZ: u64 = 8_192_000;
115#[cfg(feature = "tick-hz-8_388_608")]
116pub const TICK_HZ: u64 = 8_388_608;
157#[cfg(feature = "tick-hz-9_000_000")] 117#[cfg(feature = "tick-hz-9_000_000")]
158pub const TICK_HZ: u64 = 9_000_000; 118pub const TICK_HZ: u64 = 9_000_000;
119#[cfg(feature = "tick-hz-10_000_000")]
120pub const TICK_HZ: u64 = 10_000_000;
121#[cfg(feature = "tick-hz-10_240_000")]
122pub const TICK_HZ: u64 = 10_240_000;
159#[cfg(feature = "tick-hz-12_000_000")] 123#[cfg(feature = "tick-hz-12_000_000")]
160pub const TICK_HZ: u64 = 12_000_000; 124pub const TICK_HZ: u64 = 12_000_000;
161#[cfg(feature = "tick-hz-16_000_000")] 125#[cfg(feature = "tick-hz-16_000_000")]
162pub const TICK_HZ: u64 = 16_000_000; 126pub const TICK_HZ: u64 = 16_000_000;
127#[cfg(feature = "tick-hz-16_384_000")]
128pub const TICK_HZ: u64 = 16_384_000;
129#[cfg(feature = "tick-hz-16_777_216")]
130pub const TICK_HZ: u64 = 16_777_216;
163#[cfg(feature = "tick-hz-18_000_000")] 131#[cfg(feature = "tick-hz-18_000_000")]
164pub const TICK_HZ: u64 = 18_000_000; 132pub const TICK_HZ: u64 = 18_000_000;
133#[cfg(feature = "tick-hz-20_000_000")]
134pub const TICK_HZ: u64 = 20_000_000;
135#[cfg(feature = "tick-hz-20_480_000")]
136pub const TICK_HZ: u64 = 20_480_000;
165#[cfg(feature = "tick-hz-24_000_000")] 137#[cfg(feature = "tick-hz-24_000_000")]
166pub const TICK_HZ: u64 = 24_000_000; 138pub const TICK_HZ: u64 = 24_000_000;
139#[cfg(feature = "tick-hz-30_000_000")]
140pub const TICK_HZ: u64 = 30_000_000;
167#[cfg(feature = "tick-hz-32_000_000")] 141#[cfg(feature = "tick-hz-32_000_000")]
168pub const TICK_HZ: u64 = 32_000_000; 142pub const TICK_HZ: u64 = 32_000_000;
143#[cfg(feature = "tick-hz-32_768_000")]
144pub const TICK_HZ: u64 = 32_768_000;
169#[cfg(feature = "tick-hz-36_000_000")] 145#[cfg(feature = "tick-hz-36_000_000")]
170pub const TICK_HZ: u64 = 36_000_000; 146pub const TICK_HZ: u64 = 36_000_000;
171#[cfg(feature = "tick-hz-48_000_000")]
172pub const TICK_HZ: u64 = 48_000_000;
173#[cfg(feature = "tick-hz-64_000_000")]
174pub const TICK_HZ: u64 = 64_000_000;
175#[cfg(feature = "tick-hz-72_000_000")]
176pub const TICK_HZ: u64 = 72_000_000;
177#[cfg(feature = "tick-hz-96_000_000")]
178pub const TICK_HZ: u64 = 96_000_000;
179#[cfg(feature = "tick-hz-128_000_000")]
180pub const TICK_HZ: u64 = 128_000_000;
181#[cfg(feature = "tick-hz-144_000_000")]
182pub const TICK_HZ: u64 = 144_000_000;
183#[cfg(feature = "tick-hz-192_000_000")]
184pub const TICK_HZ: u64 = 192_000_000;
185#[cfg(feature = "tick-hz-256_000_000")]
186pub const TICK_HZ: u64 = 256_000_000;
187#[cfg(feature = "tick-hz-288_000_000")]
188pub const TICK_HZ: u64 = 288_000_000;
189#[cfg(feature = "tick-hz-384_000_000")]
190pub const TICK_HZ: u64 = 384_000_000;
191#[cfg(feature = "tick-hz-512_000_000")]
192pub const TICK_HZ: u64 = 512_000_000;
193#[cfg(feature = "tick-hz-576_000_000")]
194pub const TICK_HZ: u64 = 576_000_000;
195#[cfg(feature = "tick-hz-768_000_000")]
196pub const TICK_HZ: u64 = 768_000_000;
197#[cfg(feature = "tick-hz-20_000_000")]
198pub const TICK_HZ: u64 = 20_000_000;
199#[cfg(feature = "tick-hz-30_000_000")]
200pub const TICK_HZ: u64 = 30_000_000;
201#[cfg(feature = "tick-hz-40_000_000")] 147#[cfg(feature = "tick-hz-40_000_000")]
202pub const TICK_HZ: u64 = 40_000_000; 148pub const TICK_HZ: u64 = 40_000_000;
149#[cfg(feature = "tick-hz-40_960_000")]
150pub const TICK_HZ: u64 = 40_960_000;
151#[cfg(feature = "tick-hz-48_000_000")]
152pub const TICK_HZ: u64 = 48_000_000;
203#[cfg(feature = "tick-hz-50_000_000")] 153#[cfg(feature = "tick-hz-50_000_000")]
204pub const TICK_HZ: u64 = 50_000_000; 154pub const TICK_HZ: u64 = 50_000_000;
205#[cfg(feature = "tick-hz-60_000_000")] 155#[cfg(feature = "tick-hz-60_000_000")]
206pub const TICK_HZ: u64 = 60_000_000; 156pub const TICK_HZ: u64 = 60_000_000;
157#[cfg(feature = "tick-hz-64_000_000")]
158pub const TICK_HZ: u64 = 64_000_000;
159#[cfg(feature = "tick-hz-65_536_000")]
160pub const TICK_HZ: u64 = 65_536_000;
207#[cfg(feature = "tick-hz-70_000_000")] 161#[cfg(feature = "tick-hz-70_000_000")]
208pub const TICK_HZ: u64 = 70_000_000; 162pub const TICK_HZ: u64 = 70_000_000;
163#[cfg(feature = "tick-hz-72_000_000")]
164pub const TICK_HZ: u64 = 72_000_000;
209#[cfg(feature = "tick-hz-80_000_000")] 165#[cfg(feature = "tick-hz-80_000_000")]
210pub const TICK_HZ: u64 = 80_000_000; 166pub const TICK_HZ: u64 = 80_000_000;
167#[cfg(feature = "tick-hz-81_920_000")]
168pub const TICK_HZ: u64 = 81_920_000;
211#[cfg(feature = "tick-hz-90_000_000")] 169#[cfg(feature = "tick-hz-90_000_000")]
212pub const TICK_HZ: u64 = 90_000_000; 170pub const TICK_HZ: u64 = 90_000_000;
171#[cfg(feature = "tick-hz-96_000_000")]
172pub const TICK_HZ: u64 = 96_000_000;
173#[cfg(feature = "tick-hz-100_000_000")]
174pub const TICK_HZ: u64 = 100_000_000;
213#[cfg(feature = "tick-hz-110_000_000")] 175#[cfg(feature = "tick-hz-110_000_000")]
214pub const TICK_HZ: u64 = 110_000_000; 176pub const TICK_HZ: u64 = 110_000_000;
215#[cfg(feature = "tick-hz-120_000_000")] 177#[cfg(feature = "tick-hz-120_000_000")]
216pub const TICK_HZ: u64 = 120_000_000; 178pub const TICK_HZ: u64 = 120_000_000;
179#[cfg(feature = "tick-hz-128_000_000")]
180pub const TICK_HZ: u64 = 128_000_000;
217#[cfg(feature = "tick-hz-130_000_000")] 181#[cfg(feature = "tick-hz-130_000_000")]
218pub const TICK_HZ: u64 = 130_000_000; 182pub const TICK_HZ: u64 = 130_000_000;
183#[cfg(feature = "tick-hz-131_072_000")]
184pub const TICK_HZ: u64 = 131_072_000;
219#[cfg(feature = "tick-hz-140_000_000")] 185#[cfg(feature = "tick-hz-140_000_000")]
220pub const TICK_HZ: u64 = 140_000_000; 186pub const TICK_HZ: u64 = 140_000_000;
187#[cfg(feature = "tick-hz-144_000_000")]
188pub const TICK_HZ: u64 = 144_000_000;
221#[cfg(feature = "tick-hz-150_000_000")] 189#[cfg(feature = "tick-hz-150_000_000")]
222pub const TICK_HZ: u64 = 150_000_000; 190pub const TICK_HZ: u64 = 150_000_000;
223#[cfg(feature = "tick-hz-160_000_000")] 191#[cfg(feature = "tick-hz-160_000_000")]
224pub const TICK_HZ: u64 = 160_000_000; 192pub const TICK_HZ: u64 = 160_000_000;
193#[cfg(feature = "tick-hz-163_840_000")]
194pub const TICK_HZ: u64 = 163_840_000;
225#[cfg(feature = "tick-hz-170_000_000")] 195#[cfg(feature = "tick-hz-170_000_000")]
226pub const TICK_HZ: u64 = 170_000_000; 196pub const TICK_HZ: u64 = 170_000_000;
227#[cfg(feature = "tick-hz-180_000_000")] 197#[cfg(feature = "tick-hz-180_000_000")]
228pub const TICK_HZ: u64 = 180_000_000; 198pub const TICK_HZ: u64 = 180_000_000;
229#[cfg(feature = "tick-hz-190_000_000")] 199#[cfg(feature = "tick-hz-190_000_000")]
230pub const TICK_HZ: u64 = 190_000_000; 200pub const TICK_HZ: u64 = 190_000_000;
201#[cfg(feature = "tick-hz-192_000_000")]
202pub const TICK_HZ: u64 = 192_000_000;
231#[cfg(feature = "tick-hz-200_000_000")] 203#[cfg(feature = "tick-hz-200_000_000")]
232pub const TICK_HZ: u64 = 200_000_000; 204pub const TICK_HZ: u64 = 200_000_000;
233#[cfg(feature = "tick-hz-210_000_000")] 205#[cfg(feature = "tick-hz-210_000_000")]
@@ -240,24 +212,34 @@ pub const TICK_HZ: u64 = 230_000_000;
240pub const TICK_HZ: u64 = 240_000_000; 212pub const TICK_HZ: u64 = 240_000_000;
241#[cfg(feature = "tick-hz-250_000_000")] 213#[cfg(feature = "tick-hz-250_000_000")]
242pub const TICK_HZ: u64 = 250_000_000; 214pub const TICK_HZ: u64 = 250_000_000;
215#[cfg(feature = "tick-hz-256_000_000")]
216pub const TICK_HZ: u64 = 256_000_000;
243#[cfg(feature = "tick-hz-260_000_000")] 217#[cfg(feature = "tick-hz-260_000_000")]
244pub const TICK_HZ: u64 = 260_000_000; 218pub const TICK_HZ: u64 = 260_000_000;
219#[cfg(feature = "tick-hz-262_144_000")]
220pub const TICK_HZ: u64 = 262_144_000;
245#[cfg(feature = "tick-hz-270_000_000")] 221#[cfg(feature = "tick-hz-270_000_000")]
246pub const TICK_HZ: u64 = 270_000_000; 222pub const TICK_HZ: u64 = 270_000_000;
247#[cfg(feature = "tick-hz-280_000_000")] 223#[cfg(feature = "tick-hz-280_000_000")]
248pub const TICK_HZ: u64 = 280_000_000; 224pub const TICK_HZ: u64 = 280_000_000;
225#[cfg(feature = "tick-hz-288_000_000")]
226pub const TICK_HZ: u64 = 288_000_000;
249#[cfg(feature = "tick-hz-290_000_000")] 227#[cfg(feature = "tick-hz-290_000_000")]
250pub const TICK_HZ: u64 = 290_000_000; 228pub const TICK_HZ: u64 = 290_000_000;
251#[cfg(feature = "tick-hz-300_000_000")] 229#[cfg(feature = "tick-hz-300_000_000")]
252pub const TICK_HZ: u64 = 300_000_000; 230pub const TICK_HZ: u64 = 300_000_000;
253#[cfg(feature = "tick-hz-320_000_000")] 231#[cfg(feature = "tick-hz-320_000_000")]
254pub const TICK_HZ: u64 = 320_000_000; 232pub const TICK_HZ: u64 = 320_000_000;
233#[cfg(feature = "tick-hz-327_680_000")]
234pub const TICK_HZ: u64 = 327_680_000;
255#[cfg(feature = "tick-hz-340_000_000")] 235#[cfg(feature = "tick-hz-340_000_000")]
256pub const TICK_HZ: u64 = 340_000_000; 236pub const TICK_HZ: u64 = 340_000_000;
257#[cfg(feature = "tick-hz-360_000_000")] 237#[cfg(feature = "tick-hz-360_000_000")]
258pub const TICK_HZ: u64 = 360_000_000; 238pub const TICK_HZ: u64 = 360_000_000;
259#[cfg(feature = "tick-hz-380_000_000")] 239#[cfg(feature = "tick-hz-380_000_000")]
260pub const TICK_HZ: u64 = 380_000_000; 240pub const TICK_HZ: u64 = 380_000_000;
241#[cfg(feature = "tick-hz-384_000_000")]
242pub const TICK_HZ: u64 = 384_000_000;
261#[cfg(feature = "tick-hz-400_000_000")] 243#[cfg(feature = "tick-hz-400_000_000")]
262pub const TICK_HZ: u64 = 400_000_000; 244pub const TICK_HZ: u64 = 400_000_000;
263#[cfg(feature = "tick-hz-420_000_000")] 245#[cfg(feature = "tick-hz-420_000_000")]
@@ -270,12 +252,18 @@ pub const TICK_HZ: u64 = 460_000_000;
270pub const TICK_HZ: u64 = 480_000_000; 252pub const TICK_HZ: u64 = 480_000_000;
271#[cfg(feature = "tick-hz-500_000_000")] 253#[cfg(feature = "tick-hz-500_000_000")]
272pub const TICK_HZ: u64 = 500_000_000; 254pub const TICK_HZ: u64 = 500_000_000;
255#[cfg(feature = "tick-hz-512_000_000")]
256pub const TICK_HZ: u64 = 512_000_000;
273#[cfg(feature = "tick-hz-520_000_000")] 257#[cfg(feature = "tick-hz-520_000_000")]
274pub const TICK_HZ: u64 = 520_000_000; 258pub const TICK_HZ: u64 = 520_000_000;
259#[cfg(feature = "tick-hz-524_288_000")]
260pub const TICK_HZ: u64 = 524_288_000;
275#[cfg(feature = "tick-hz-540_000_000")] 261#[cfg(feature = "tick-hz-540_000_000")]
276pub const TICK_HZ: u64 = 540_000_000; 262pub const TICK_HZ: u64 = 540_000_000;
277#[cfg(feature = "tick-hz-560_000_000")] 263#[cfg(feature = "tick-hz-560_000_000")]
278pub const TICK_HZ: u64 = 560_000_000; 264pub const TICK_HZ: u64 = 560_000_000;
265#[cfg(feature = "tick-hz-576_000_000")]
266pub const TICK_HZ: u64 = 576_000_000;
279#[cfg(feature = "tick-hz-580_000_000")] 267#[cfg(feature = "tick-hz-580_000_000")]
280pub const TICK_HZ: u64 = 580_000_000; 268pub const TICK_HZ: u64 = 580_000_000;
281#[cfg(feature = "tick-hz-600_000_000")] 269#[cfg(feature = "tick-hz-600_000_000")]
@@ -284,6 +272,8 @@ pub const TICK_HZ: u64 = 600_000_000;
284pub const TICK_HZ: u64 = 620_000_000; 272pub const TICK_HZ: u64 = 620_000_000;
285#[cfg(feature = "tick-hz-640_000_000")] 273#[cfg(feature = "tick-hz-640_000_000")]
286pub const TICK_HZ: u64 = 640_000_000; 274pub const TICK_HZ: u64 = 640_000_000;
275#[cfg(feature = "tick-hz-655_360_000")]
276pub const TICK_HZ: u64 = 655_360_000;
287#[cfg(feature = "tick-hz-660_000_000")] 277#[cfg(feature = "tick-hz-660_000_000")]
288pub const TICK_HZ: u64 = 660_000_000; 278pub const TICK_HZ: u64 = 660_000_000;
289#[cfg(feature = "tick-hz-680_000_000")] 279#[cfg(feature = "tick-hz-680_000_000")]
@@ -296,6 +286,8 @@ pub const TICK_HZ: u64 = 720_000_000;
296pub const TICK_HZ: u64 = 740_000_000; 286pub const TICK_HZ: u64 = 740_000_000;
297#[cfg(feature = "tick-hz-760_000_000")] 287#[cfg(feature = "tick-hz-760_000_000")]
298pub const TICK_HZ: u64 = 760_000_000; 288pub const TICK_HZ: u64 = 760_000_000;
289#[cfg(feature = "tick-hz-768_000_000")]
290pub const TICK_HZ: u64 = 768_000_000;
299#[cfg(feature = "tick-hz-780_000_000")] 291#[cfg(feature = "tick-hz-780_000_000")]
300pub const TICK_HZ: u64 = 780_000_000; 292pub const TICK_HZ: u64 = 780_000_000;
301#[cfg(feature = "tick-hz-800_000_000")] 293#[cfg(feature = "tick-hz-800_000_000")]
@@ -318,155 +310,159 @@ pub const TICK_HZ: u64 = 940_000_000;
318pub const TICK_HZ: u64 = 960_000_000; 310pub const TICK_HZ: u64 = 960_000_000;
319#[cfg(feature = "tick-hz-980_000_000")] 311#[cfg(feature = "tick-hz-980_000_000")]
320pub const TICK_HZ: u64 = 980_000_000; 312pub const TICK_HZ: u64 = 980_000_000;
313#[cfg(feature = "tick-hz-1_000_000_000")]
314pub const TICK_HZ: u64 = 1_000_000_000;
315#[cfg(feature = "tick-hz-1_310_720_000")]
316pub const TICK_HZ: u64 = 1_310_720_000;
317#[cfg(feature = "tick-hz-2_621_440_000")]
318pub const TICK_HZ: u64 = 2_621_440_000;
319#[cfg(feature = "tick-hz-5_242_880_000")]
320pub const TICK_HZ: u64 = 5_242_880_000;
321#[cfg(not(any( 321#[cfg(not(any(
322 feature = "tick-hz-1", 322 feature = "tick-hz-1",
323 feature = "tick-hz-10",
324 feature = "tick-hz-100",
325 feature = "tick-hz-1_000",
326 feature = "tick-hz-10_000",
327 feature = "tick-hz-100_000",
328 feature = "tick-hz-1_000_000",
329 feature = "tick-hz-10_000_000",
330 feature = "tick-hz-100_000_000",
331 feature = "tick-hz-1_000_000_000",
332 feature = "tick-hz-2", 323 feature = "tick-hz-2",
333 feature = "tick-hz-4", 324 feature = "tick-hz-4",
334 feature = "tick-hz-8", 325 feature = "tick-hz-8",
326 feature = "tick-hz-10",
335 feature = "tick-hz-16", 327 feature = "tick-hz-16",
336 feature = "tick-hz-32", 328 feature = "tick-hz-32",
337 feature = "tick-hz-64", 329 feature = "tick-hz-64",
330 feature = "tick-hz-100",
338 feature = "tick-hz-128", 331 feature = "tick-hz-128",
339 feature = "tick-hz-256", 332 feature = "tick-hz-256",
340 feature = "tick-hz-512", 333 feature = "tick-hz-512",
334 feature = "tick-hz-1_000",
341 feature = "tick-hz-1_024", 335 feature = "tick-hz-1_024",
342 feature = "tick-hz-2_048",
343 feature = "tick-hz-4_096",
344 feature = "tick-hz-8_192",
345 feature = "tick-hz-16_384",
346 feature = "tick-hz-32_768",
347 feature = "tick-hz-65_536",
348 feature = "tick-hz-131_072",
349 feature = "tick-hz-262_144",
350 feature = "tick-hz-524_288",
351 feature = "tick-hz-1_048_576",
352 feature = "tick-hz-2_097_152",
353 feature = "tick-hz-4_194_304",
354 feature = "tick-hz-8_388_608",
355 feature = "tick-hz-16_777_216",
356 feature = "tick-hz-2_000", 336 feature = "tick-hz-2_000",
337 feature = "tick-hz-2_048",
357 feature = "tick-hz-4_000", 338 feature = "tick-hz-4_000",
339 feature = "tick-hz-4_096",
358 feature = "tick-hz-8_000", 340 feature = "tick-hz-8_000",
341 feature = "tick-hz-8_192",
342 feature = "tick-hz-10_000",
359 feature = "tick-hz-16_000", 343 feature = "tick-hz-16_000",
360 feature = "tick-hz-32_000", 344 feature = "tick-hz-16_384",
361 feature = "tick-hz-64_000",
362 feature = "tick-hz-128_000",
363 feature = "tick-hz-256_000",
364 feature = "tick-hz-512_000",
365 feature = "tick-hz-1_024_000",
366 feature = "tick-hz-2_048_000",
367 feature = "tick-hz-4_096_000",
368 feature = "tick-hz-8_192_000",
369 feature = "tick-hz-16_384_000",
370 feature = "tick-hz-32_768_000",
371 feature = "tick-hz-65_536_000",
372 feature = "tick-hz-131_072_000",
373 feature = "tick-hz-262_144_000",
374 feature = "tick-hz-524_288_000",
375 feature = "tick-hz-20_000", 345 feature = "tick-hz-20_000",
346 feature = "tick-hz-32_000",
347 feature = "tick-hz-32_768",
376 feature = "tick-hz-40_000", 348 feature = "tick-hz-40_000",
349 feature = "tick-hz-64_000",
350 feature = "tick-hz-65_536",
377 feature = "tick-hz-80_000", 351 feature = "tick-hz-80_000",
352 feature = "tick-hz-100_000",
353 feature = "tick-hz-128_000",
354 feature = "tick-hz-131_072",
378 feature = "tick-hz-160_000", 355 feature = "tick-hz-160_000",
356 feature = "tick-hz-256_000",
357 feature = "tick-hz-262_144",
379 feature = "tick-hz-320_000", 358 feature = "tick-hz-320_000",
359 feature = "tick-hz-512_000",
360 feature = "tick-hz-524_288",
380 feature = "tick-hz-640_000", 361 feature = "tick-hz-640_000",
362 feature = "tick-hz-1_000_000",
363 feature = "tick-hz-1_024_000",
364 feature = "tick-hz-1_048_576",
381 feature = "tick-hz-1_280_000", 365 feature = "tick-hz-1_280_000",
382 feature = "tick-hz-2_560_000",
383 feature = "tick-hz-5_120_000",
384 feature = "tick-hz-10_240_000",
385 feature = "tick-hz-20_480_000",
386 feature = "tick-hz-40_960_000",
387 feature = "tick-hz-81_920_000",
388 feature = "tick-hz-163_840_000",
389 feature = "tick-hz-327_680_000",
390 feature = "tick-hz-655_360_000",
391 feature = "tick-hz-1_310_720_000",
392 feature = "tick-hz-2_621_440_000",
393 feature = "tick-hz-5_242_880_000",
394 feature = "tick-hz-2_000_000", 366 feature = "tick-hz-2_000_000",
367 feature = "tick-hz-2_048_000",
368 feature = "tick-hz-2_097_152",
369 feature = "tick-hz-2_560_000",
395 feature = "tick-hz-3_000_000", 370 feature = "tick-hz-3_000_000",
396 feature = "tick-hz-4_000_000", 371 feature = "tick-hz-4_000_000",
372 feature = "tick-hz-4_096_000",
373 feature = "tick-hz-4_194_304",
374 feature = "tick-hz-5_120_000",
397 feature = "tick-hz-6_000_000", 375 feature = "tick-hz-6_000_000",
398 feature = "tick-hz-8_000_000", 376 feature = "tick-hz-8_000_000",
377 feature = "tick-hz-8_192_000",
378 feature = "tick-hz-8_388_608",
399 feature = "tick-hz-9_000_000", 379 feature = "tick-hz-9_000_000",
380 feature = "tick-hz-10_000_000",
381 feature = "tick-hz-10_240_000",
400 feature = "tick-hz-12_000_000", 382 feature = "tick-hz-12_000_000",
401 feature = "tick-hz-16_000_000", 383 feature = "tick-hz-16_000_000",
384 feature = "tick-hz-16_384_000",
385 feature = "tick-hz-16_777_216",
402 feature = "tick-hz-18_000_000", 386 feature = "tick-hz-18_000_000",
387 feature = "tick-hz-20_000_000",
388 feature = "tick-hz-20_480_000",
403 feature = "tick-hz-24_000_000", 389 feature = "tick-hz-24_000_000",
390 feature = "tick-hz-30_000_000",
404 feature = "tick-hz-32_000_000", 391 feature = "tick-hz-32_000_000",
392 feature = "tick-hz-32_768_000",
405 feature = "tick-hz-36_000_000", 393 feature = "tick-hz-36_000_000",
406 feature = "tick-hz-48_000_000",
407 feature = "tick-hz-64_000_000",
408 feature = "tick-hz-72_000_000",
409 feature = "tick-hz-96_000_000",
410 feature = "tick-hz-128_000_000",
411 feature = "tick-hz-144_000_000",
412 feature = "tick-hz-192_000_000",
413 feature = "tick-hz-256_000_000",
414 feature = "tick-hz-288_000_000",
415 feature = "tick-hz-384_000_000",
416 feature = "tick-hz-512_000_000",
417 feature = "tick-hz-576_000_000",
418 feature = "tick-hz-768_000_000",
419 feature = "tick-hz-20_000_000",
420 feature = "tick-hz-30_000_000",
421 feature = "tick-hz-40_000_000", 394 feature = "tick-hz-40_000_000",
395 feature = "tick-hz-40_960_000",
396 feature = "tick-hz-48_000_000",
422 feature = "tick-hz-50_000_000", 397 feature = "tick-hz-50_000_000",
423 feature = "tick-hz-60_000_000", 398 feature = "tick-hz-60_000_000",
399 feature = "tick-hz-64_000_000",
400 feature = "tick-hz-65_536_000",
424 feature = "tick-hz-70_000_000", 401 feature = "tick-hz-70_000_000",
402 feature = "tick-hz-72_000_000",
425 feature = "tick-hz-80_000_000", 403 feature = "tick-hz-80_000_000",
404 feature = "tick-hz-81_920_000",
426 feature = "tick-hz-90_000_000", 405 feature = "tick-hz-90_000_000",
406 feature = "tick-hz-96_000_000",
407 feature = "tick-hz-100_000_000",
427 feature = "tick-hz-110_000_000", 408 feature = "tick-hz-110_000_000",
428 feature = "tick-hz-120_000_000", 409 feature = "tick-hz-120_000_000",
410 feature = "tick-hz-128_000_000",
429 feature = "tick-hz-130_000_000", 411 feature = "tick-hz-130_000_000",
412 feature = "tick-hz-131_072_000",
430 feature = "tick-hz-140_000_000", 413 feature = "tick-hz-140_000_000",
414 feature = "tick-hz-144_000_000",
431 feature = "tick-hz-150_000_000", 415 feature = "tick-hz-150_000_000",
432 feature = "tick-hz-160_000_000", 416 feature = "tick-hz-160_000_000",
417 feature = "tick-hz-163_840_000",
433 feature = "tick-hz-170_000_000", 418 feature = "tick-hz-170_000_000",
434 feature = "tick-hz-180_000_000", 419 feature = "tick-hz-180_000_000",
435 feature = "tick-hz-190_000_000", 420 feature = "tick-hz-190_000_000",
421 feature = "tick-hz-192_000_000",
436 feature = "tick-hz-200_000_000", 422 feature = "tick-hz-200_000_000",
437 feature = "tick-hz-210_000_000", 423 feature = "tick-hz-210_000_000",
438 feature = "tick-hz-220_000_000", 424 feature = "tick-hz-220_000_000",
439 feature = "tick-hz-230_000_000", 425 feature = "tick-hz-230_000_000",
440 feature = "tick-hz-240_000_000", 426 feature = "tick-hz-240_000_000",
441 feature = "tick-hz-250_000_000", 427 feature = "tick-hz-250_000_000",
428 feature = "tick-hz-256_000_000",
442 feature = "tick-hz-260_000_000", 429 feature = "tick-hz-260_000_000",
430 feature = "tick-hz-262_144_000",
443 feature = "tick-hz-270_000_000", 431 feature = "tick-hz-270_000_000",
444 feature = "tick-hz-280_000_000", 432 feature = "tick-hz-280_000_000",
433 feature = "tick-hz-288_000_000",
445 feature = "tick-hz-290_000_000", 434 feature = "tick-hz-290_000_000",
446 feature = "tick-hz-300_000_000", 435 feature = "tick-hz-300_000_000",
447 feature = "tick-hz-320_000_000", 436 feature = "tick-hz-320_000_000",
437 feature = "tick-hz-327_680_000",
448 feature = "tick-hz-340_000_000", 438 feature = "tick-hz-340_000_000",
449 feature = "tick-hz-360_000_000", 439 feature = "tick-hz-360_000_000",
450 feature = "tick-hz-380_000_000", 440 feature = "tick-hz-380_000_000",
441 feature = "tick-hz-384_000_000",
451 feature = "tick-hz-400_000_000", 442 feature = "tick-hz-400_000_000",
452 feature = "tick-hz-420_000_000", 443 feature = "tick-hz-420_000_000",
453 feature = "tick-hz-440_000_000", 444 feature = "tick-hz-440_000_000",
454 feature = "tick-hz-460_000_000", 445 feature = "tick-hz-460_000_000",
455 feature = "tick-hz-480_000_000", 446 feature = "tick-hz-480_000_000",
456 feature = "tick-hz-500_000_000", 447 feature = "tick-hz-500_000_000",
448 feature = "tick-hz-512_000_000",
457 feature = "tick-hz-520_000_000", 449 feature = "tick-hz-520_000_000",
450 feature = "tick-hz-524_288_000",
458 feature = "tick-hz-540_000_000", 451 feature = "tick-hz-540_000_000",
459 feature = "tick-hz-560_000_000", 452 feature = "tick-hz-560_000_000",
453 feature = "tick-hz-576_000_000",
460 feature = "tick-hz-580_000_000", 454 feature = "tick-hz-580_000_000",
461 feature = "tick-hz-600_000_000", 455 feature = "tick-hz-600_000_000",
462 feature = "tick-hz-620_000_000", 456 feature = "tick-hz-620_000_000",
463 feature = "tick-hz-640_000_000", 457 feature = "tick-hz-640_000_000",
458 feature = "tick-hz-655_360_000",
464 feature = "tick-hz-660_000_000", 459 feature = "tick-hz-660_000_000",
465 feature = "tick-hz-680_000_000", 460 feature = "tick-hz-680_000_000",
466 feature = "tick-hz-700_000_000", 461 feature = "tick-hz-700_000_000",
467 feature = "tick-hz-720_000_000", 462 feature = "tick-hz-720_000_000",
468 feature = "tick-hz-740_000_000", 463 feature = "tick-hz-740_000_000",
469 feature = "tick-hz-760_000_000", 464 feature = "tick-hz-760_000_000",
465 feature = "tick-hz-768_000_000",
470 feature = "tick-hz-780_000_000", 466 feature = "tick-hz-780_000_000",
471 feature = "tick-hz-800_000_000", 467 feature = "tick-hz-800_000_000",
472 feature = "tick-hz-820_000_000", 468 feature = "tick-hz-820_000_000",
@@ -478,5 +474,9 @@ pub const TICK_HZ: u64 = 980_000_000;
478 feature = "tick-hz-940_000_000", 474 feature = "tick-hz-940_000_000",
479 feature = "tick-hz-960_000_000", 475 feature = "tick-hz-960_000_000",
480 feature = "tick-hz-980_000_000", 476 feature = "tick-hz-980_000_000",
477 feature = "tick-hz-1_000_000_000",
478 feature = "tick-hz-1_310_720_000",
479 feature = "tick-hz-2_621_440_000",
480 feature = "tick-hz-5_242_880_000",
481)))] 481)))]
482pub const TICK_HZ: u64 = 1_000_000; 482pub const TICK_HZ: u64 = 1_000_000;