You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rust-sysfs-pwm is a rust library/crate providing access to the Linux
sysfs PWM interface.
It seeks to provide an API that is safe, convenient, and efficient.
Install/Use
To use sysfs-pwm, first add this to your Cargo.toml:
[dependencies]
# or latest versionsysfs-pwm = "0.2.0"
Then, add this to your crate root:
use sysfs_pwm;
MSRV (Minimum Supported Rust Version)
This crate is guaranteed to compile on stable Rust 1.28.0 and up. It might
compile with older versions but that may change in any new patch release.
Example/API
The main API consists of a Pwm struct with the following methods:
Pwm::new - Create a Pwm instance
pwm.with_exported - Execute a block with the Pwm exported
pwm.set_active - Enable/Disable the Pwm
pwm.get_duty_cycle - Get duty cycle as percentage of period
pwm.set_duty_cycle - Set duty cycle as percentage of period
pwm.get_duty_cycle_ns - Get duty cycle in nanoseconds
pwm.set_duty_cycle_ns - Set duty cyle in nanoseconds
pwm.get_period_ns - Get the Pwm period in nanoseconds
pwm.set_period_ns - Set the Pwm period in nanoseconds
Check out the Breathing LED example for a usage
example.
Cross Compiling
Most likely, the machine you are running on is not your development
machine (although it could be). In those cases, you will need to
cross-compile. The instructions here provide great details on cross
compiling for your platform.
Running the Example
Cross-compiling can be done by specifying an appropriate target. You
can then move that to your device by whatever means and run it.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
Code of Conduct
Contribution to this crate is organized under the terms of the Rust Code of
Conduct, the maintainer of this crate, the Embedded Linux Team, promises
to intervene to uphold that code of conduct.