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.
To use sysfs-pwm
, first add this to your Cargo.toml
:
```toml [dependencies]
sysfs-pwm = "^0.1.0" ```
Then, add this to your crate root:
rust
extern crate sysfs_pwm;
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.
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.
Cross-compiling can be done by specifying an appropriate target. You can then move that to your device by whatever means and run it.
$ cargo build --target=arm-unknown-linux-gnueabihf --example breathe
$ scp target/arm-unknown-linux-gnueabihf/debug/examples/breathe ...
``` Copyright (c) 2016, Paul Osborne ospbau@gmail.com
Licensed under the Apache License, Version 2.0