pub struct DwtSystick<const TIMER_HZ: u32> { /* private fields */ }
Expand description

DWT and Systick combination implementing rtic_monotonic::Monotonic.

This implementation is tickless. It does not use periodic interrupts to count “ticks” (like systick-monotonic) but only to obtain actual desired compare events and to manage overflows.

The frequency of the DWT and SysTick is encoded using the parameter TIMER_HZ. They must be equal.

Note that the SysTick interrupt must not be disabled longer than half the cycle counter overflow period (typically a couple seconds).

When the extend feature is enabled, the cycle counter width is extended to u64 by detecting and counting overflows.

Implementations

Enable the DWT and provide a new Monotonic based on DWT and SysTick.

Note that the sysclk parameter should come from e.g. the HAL’s clock generation function so the speed calculated at runtime and the declared speed (generic parameter TIMER_HZ) can be compared.

Trait Implementations

This tells RTIC if it should disable the interrupt bound to the monotonic if there are no scheduled tasks. One may want to set this to false if one is using the on_interrupt method to perform housekeeping and need overflow interrupts to happen, such as when extending a 16 bit timer to 32/64 bits, even if there are no scheduled tasks. Read more
The type for instant, defining an instant in time. Read more
The type for duration, defining an duration of time. Read more
Get the current time.
Optionally resets the counter to zero for a fixed baseline in a system. Read more
Set the compare value of the timer interrupt. Read more
The time at time zero. Used by RTIC before the monotonic has been initialized.
Clear the compare interrupt flag.
Optional. Commonly used for performing housekeeping of a timer when it has been extended, e.g. a 16 bit timer extended to 32/64 bits. This will be called at the end of the interrupt handler after all other operations have finished. Read more
Optional. This is used to save power, this is called when the Monotonic interrupt is enabled. Read more
Optional. This is used to save power, this is called when the Monotonic interrupt is disabled. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.