[−][src]Trait embedded_hal::pwm::Pwm
Pulse Width Modulation
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.try_set_period(1.khz()).unwrap(); let max_duty = pwm.try_get_max_duty().unwrap(); // brightest LED pwm.try_set_duty(Channel::_1, max_duty).unwrap(); // dimmer LED pwm.try_set_duty(Channel::_2, max_duty / 4).unwrap(); }
Associated Types
type Error
Enumeration of Pwm
errors
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 try_disable(&mut self, channel: Self::Channel) -> Result<(), Self::Error>
Disables a PWM channel
fn try_enable(&mut self, channel: Self::Channel) -> Result<(), Self::Error>
Enables a PWM channel
fn try_get_period(&self) -> Result<Self::Time, Self::Error>
Returns the current PWM period
fn try_get_duty(
&self,
channel: Self::Channel
) -> Result<Self::Duty, Self::Error>
&self,
channel: Self::Channel
) -> Result<Self::Duty, Self::Error>
Returns the current duty cycle
While the pin is transitioning to the new duty cycle after a try_set_duty
call, this may
return the old or the new duty cycle depending on the implementation.
fn try_get_max_duty(&self) -> Result<Self::Duty, Self::Error>
Returns the maximum duty cycle value
fn try_set_duty(
&mut self,
channel: Self::Channel,
duty: Self::Duty
) -> Result<(), Self::Error>
&mut self,
channel: Self::Channel,
duty: Self::Duty
) -> Result<(), Self::Error>
Sets a new duty cycle
fn try_set_period<P>(&mut self, period: P) -> Result<(), Self::Error> where
P: Into<Self::Time>,
P: Into<Self::Time>,
Sets a new PWM period