Update tips_monotonic_impl.md

* There is no RTIC 0.6, only several RCs.
* Timers without interrupts (like the DWT cycle counter alone) will not be useful for `Monotonic` impls.
* Clarified some of the descriptions of the various implementations.
This commit is contained in:
Robert Jördens 2022-02-03 12:58:50 +01:00 committed by GitHub
parent c3c75f2200
commit c7f6e924dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -9,10 +9,10 @@ Implementing time counting that supports large time spans is generally **difficu
implementing time handling was a common problem. implementing time handling was a common problem.
Moreover, the relation between time and timers used for scheduling was difficult to understand. Moreover, the relation between time and timers used for scheduling was difficult to understand.
For RTIC 0.6 we instead assume the user has a time library, e.g. [`fugit`] or [`embedded_time`], For RTIC 1.0 we instead assume the user has a time library, e.g. [`fugit`] or [`embedded_time`],
as the basis for all time-based operations when implementing `Monotonic`. as the basis for all time-based operations when implementing `Monotonic`.
This makes it almost trivial to implement the `Monotonic` trait allowing the use of any timer in This makes it much easier to correctly implement the `Monotonic` trait allowing the use of
the system for scheduling. almost any timer in the system for scheduling.
The trait documents the requirements for each method, The trait documents the requirements for each method,
and for inspiration here is a list of `Monotonic` implementations: and for inspiration here is a list of `Monotonic` implementations:
@ -20,8 +20,8 @@ and for inspiration here is a list of `Monotonic` implementations:
- [`STM32F411 series`], implemented for the 32-bit timers - [`STM32F411 series`], implemented for the 32-bit timers
- [`Nordic nRF52 series Timer`], implemented for the 32-bit timers - [`Nordic nRF52 series Timer`], implemented for the 32-bit timers
- [`Nordic nRF52 series RTC`], implemented for the RTCs - [`Nordic nRF52 series RTC`], implemented for the RTCs
- [`Systick based`], runs at a fixed rate - some overhead but simple - [`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 `Systick` based implementation, but requires `DWT` - [`DWT and Systick based`], a more efficient (tickless) implementation - requires both `SysTick` and `DWT`, supports both high resolution and large time spans
If you know of more implementations feel free to add them to this list. If you know of more implementations feel free to add them to this list.