1 unstable release
Uses old Rust 2015
0.1.0 | Dec 16, 2016 |
---|
#813 in Unix APIs
433 downloads per month
11KB
167 lines
rust-sysfs-pwm
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 version
sysfs-pwm = "^0.1.0"
Then, add this to your crate root:
extern crate sysfs_pwm;
Example/API
The main API consists of a Pwm struct with the following methods:
Pwm::new
- Create a Pwm instancepwm.with_exported
- Execute a block with the Pwm exportedpwm.set_active
- Enable/Disable the Pwmpwm.get_duty_cycle
- Get duty cycle as percentage of periodpwm.set_duty_cycle
- Set duty cycle as percentage of periodpwm.get_duty_cycle_ns
- Get duty cycle in nanosecondspwm.set_duty_cycle_ns
- Set duty cyle in nanosecondspwm.get_period_ns
- Get the Pwm period in nanosecondspwm.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.
$ cargo build --target=arm-unknown-linux-gnueabihf --example breathe
$ scp target/arm-unknown-linux-gnueabihf/debug/examples/breathe ...
License
Copyright (c) 2016, Paul Osborne <ospbau@gmail.com>
Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
http://www.apache.org/license/LICENSE-2.0> or the MIT license
<LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
option. This file may not be copied, modified, or distributed
except according to those terms.