#real-time #monotonic #rtic #clock #interrupt #cortex-m

no-std rtic-monotonics

A library that provides implementations of the Monotonic trait from rtic-time

10 releases (stable)

2.0.3 Oct 24, 2024
2.0.2 Jul 6, 2024
2.0.1 Jun 2, 2024
1.5.0 Jan 10, 2024
1.0.0 May 31, 2023

#616 in Embedded development

Download history 1109/week @ 2024-08-22 1052/week @ 2024-08-29 1040/week @ 2024-09-05 1633/week @ 2024-09-12 2043/week @ 2024-09-19 1058/week @ 2024-09-26 1121/week @ 2024-10-03 532/week @ 2024-10-10 1101/week @ 2024-10-17 707/week @ 2024-10-24 916/week @ 2024-10-31 798/week @ 2024-11-07 1166/week @ 2024-11-14 1483/week @ 2024-11-21 2012/week @ 2024-11-28 2287/week @ 2024-12-05

7,085 downloads per month
Used in 7 crates

MIT/Apache

305KB
2K SLoC

In-tree implementations of the rtic_time::Monotonic (reexported) trait for timers & clocks found on commonly used microcontrollers.

If you are using a microcontroller where CAS operations are not available natively, you might have to enable the critical-section or unsafe-assume-single-core feature of the portable-atomic dependency yourself for this dependency to compile.

To enable the implementations, you must enable a feature for the specific MCU you're targeting.

Cortex-M Systick

The systick monotonic works on all cortex-M parts, and requires that the feature cortex-m-systick is enabled.

RP2040

The RP2040 monotonics require that the rp2040 feature is enabled.

i.MX RT

The i.MX RT monotonics require that the feature imxrt_gpt1 or imxrt_gpt2 is enabled.

nRF

nRF monotonics require that one of the available nrf52* features is enabled.

All implementations of timers for the nRF52 family are documented here. Monotonics that are not available on all parts in this family will have an Available on crate features X only tag, describing what parts do support that monotonic. Monotonics without an Available on crate features X only tag are available on any nrf52* feature.

Priority of interrupt handlers

The priority of timer interrupts are based on RTIC_ASYNC_MAX_LOGICAL_PRIO generated by RTIC. It is calculated to be 1 less than the maximum hardware task priority (to not have impact on hardware tasks), or, if no hardware task is available, is set to the maximum priority in the system.

Dependencies

~2–64MB
~2M SLoC