[−][src]Trait embedded_hal::Pwm
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
type Channel
Enumeration of channels that can be used with this Pwm
interface
If your Pwm
interface has no channels you can use the type ()
here
type Time
A time unit that can be converted into a human time unit (e.g. seconds)
type Duty
Type for the duty
methods
The implementer is free to choose a float / percentage representation
(e.g. 0.0 .. 1.0
) or an integer representation (e.g. 0 .. 65535
)
Required methods
fn disable(&mut self, channel: Self::Channel)
Disables a PWM channel
fn enable(&mut self, channel: Self::Channel)
Enables a PWM channel
fn get_period(&self) -> Self::Time
Returns the current PWM period
fn get_duty(&self, channel: Self::Channel) -> Self::Duty
Returns the current duty cycle
fn get_max_duty(&self) -> Self::Duty
Returns the maximum duty cycle value
fn set_duty(&mut self, channel: Self::Channel, duty: Self::Duty)
Sets a new duty cycle
fn set_period<P>(&mut self, period: P) where
P: Into<Self::Time>,
P: Into<Self::Time>,
Sets a new PWM period