Trait embedded_hal::Pwm
source · pub trait Pwm {
type Channel;
type Time;
type Duty;
// Required methods
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);
}
Required Associated Types§
Required Methods§
sourcefn get_period(&self) -> Self::Time
fn get_period(&self) -> Self::Time
Returns the current PWM period
sourcefn get_max_duty(&self) -> Self::Duty
fn get_max_duty(&self) -> Self::Duty
Returns the maximum duty cycle value
sourcefn 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