ruspiro-timer

Crates.ioruspiro-timer
lib.rsruspiro-timer
version0.6.0
sourcesrc
created_at2019-08-01 16:39:06.704656
updated_at2021-11-26 21:43:04.273935
descriptionThis crates provides simple timing functions to pause the current processing for a specific amount of time. The core pausing is called on will block.
homepage
repositoryhttps://github.com/RusPiRo/ruspiro-timer/tree/v0.6.0
max_upload_size
id153487
size45,238
(2ndTaleStudio)

documentation

https://docs.rs/ruspiro-timer/0.6.0

README

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.

Commit count: 0

cargo fmt