[−][src]Trait bl602_hal::prelude::_embedded_hal_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