Trait embedded_hal::Pwm
source · [−]pub trait Pwm {
type Channel;
type Time;
type Duty;
fn disable(&mut self, channel: Self::Channel);
fn enable(&mut self, channel: Self::Channel);
fn get_period(&self) -> Self::Time;
fn get_duty(&self, channel: Self::Channel) -> Self::Duty;
fn get_max_duty(&self) -> Self::Duty;
fn set_duty(&mut self, channel: Self::Channel, duty: Self::Duty);
fn set_period<P>(&mut self, period: P)
where
P: Into<Self::Time>;
}
Expand description
Pulse Width Modulation
This trait is available if embedded-hal is built with the "unproven"
feature.
Examples
Use this interface to control the power output of some actuator
extern crate embedded_hal as hal;
use hal::prelude::*;
fn main() {
let mut pwm: Pwm1 = {
// ..
};
pwm.set_period(1.khz());
let max_duty = pwm.get_max_duty();
// brightest LED
pwm.set_duty(Channel::_1, max_duty);
// dimmer LED
pwm.set_duty(Channel::_2, max_duty / 4);
}
Associated Types
Enumeration of channels that can be used with this Pwm
interface
If your Pwm
interface has no channels you can use the type ()
here
Required methods
fn get_period(&self) -> Self::Time
fn get_period(&self) -> Self::Time
Returns the current PWM period
fn get_max_duty(&self) -> Self::Duty
fn get_max_duty(&self) -> Self::Duty
Returns the maximum duty cycle value
fn set_period<P>(&mut self, period: P) where
P: Into<Self::Time>,
fn set_period<P>(&mut self, period: P) where
P: Into<Self::Time>,
Sets a new PWM period