ruspiro-timer 0.6.0

This crates provides simple timing functions to pause the current processing for a specific amount of time. The core pausing is called on will block.
docs.rs failed to build ruspiro-timer-0.6.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: ruspiro-timer-0.3.0

Timer RusPiRo crate

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.

CI Latest Version Documentation License

Features

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

Usage

To use the crate just add the following dependency to your Cargo.toml file:

[dependencies]
ruspiro-timer = "0.6.0"

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"));
}

License

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.