The framework is flexible because it can use any timer which has compare-match and optionally
supporting overflow interrupts for scheduling.
The single requirement to make a timer usable with RTIC is implementing the
Implementing time counting that supports large time spans is generally difficult, in RTIC 0.5 implementing time handling was a common problem. Moreover, the relation between time and timers used for scheduling was difficult to understand.
For RTIC 1.0 we instead assume the user has a time library, e.g.
as the basis for all time-based operations when implementing
This makes it much easier to correctly implement the
Monotonic trait allowing the use of
almost any timer in the system for scheduling.
The trait documents the requirements for each method,
and for inspiration here is a list of
STM32F411 series, implemented for the 32-bit timers
Nordic nRF52 series Timer, implemented for the 32-bit timers
Nordic nRF52 series RTC, implemented for the RTCs
Systick based, runs at a fixed interrupt (tick) rate - with some overhead but simple and with support for large time spans
DWT and Systick based, a more efficient (tickless) implementation - requires both
DWT, supports both high resolution and large time spans
If you know of more implementations feel free to add them to this list.