This crate provides simple functions to pause execution on the current core for a given amount of time. It uses the free-running counter of the Raspberry Pi to provide micro second accurate pause timings.
Feature | Description |
---|---|
pi3 |
active to use the proper timer MMIO base memory address for Raspberry Pi 3 when accessing the system timer peripheral |
pi4_low |
active to use the proper timer MMIO base memory address for Raspberry Pi 4 in Low-Peripheral mode when accessing the system timer peripheral |
pi4_high |
active to use the proper timer MMIO base memory address for Raspberry Pi 4 in High-Peripheral mode when accessing the system timer peripheral |
To use the crate just add the following dependency to your Cargo.toml
file:
[dependencies]
ruspiro-timer = "||VERSION||"
Once done the access to the timer functions is available in your rust files like so:
use rusprio_timer::*;
fn foo() {
sleep(Duration::from_millis(1)); // pause for 1 millisecond
sleepcycles(200); // pause for 200 CPU cycles
}
Scheduling the execution of a function/closure is as simple as this:
use ruspiro_timer::*;
fn foo() {
// print after 100 milliseconds
schedule(Duration:from_millis(100), || println!("delayed execution"));
}
Licensed under Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) or MIT (LICENSE-MIT or http://opensource.org/licenses/MIT)) at your choice.