[−][src]Struct rppal::pwm::Pwm
Provides access to the Raspberry Pi's PWM peripheral.
Before using Pwm
, make sure the selected PWM channel has been configured
and activated. More information can be found here.
The embedded-hal
PwmPin
trait implementation for Pwm
can be enabled
by specifying the optional hal
feature in the dependency declaration for
the rppal
crate.
The unproven
embedded-hal
Pwm
trait implementation for Pwm
can be enabled
by specifying the optional hal-unproven
feature in the dependency declaration for
the rppal
crate.
Methods
impl Pwm
[src]
pub fn new(channel: Channel) -> Result<Pwm>
[src]
Constructs a new Pwm
.
new
doesn't change the channel's period, pulse width or polarity. The channel
will remain disabled until enable
is called.
pub fn with_period(
channel: Channel,
period: Duration,
pulse_width: Duration,
polarity: Polarity,
enabled: bool
) -> Result<Pwm>
[src]
channel: Channel,
period: Duration,
pulse_width: Duration,
polarity: Polarity,
enabled: bool
) -> Result<Pwm>
Constructs a new Pwm
using the specified settings.
period
indicates the time it takes for the PWM channel to complete one cycle.
pulse_width
indicates the amount of time the PWM channel is active during a
single period.
polarity
configures the active logic level as either high (Normal
)
or low (Inverse
).
enabled
enables PWM on the selected channel. If enabled
is set to false
,
the channel will remain disabled until enable
is called.
This method will fail if period
is shorter than pulse_width
.
pub fn with_frequency(
channel: Channel,
frequency: f64,
duty_cycle: f64,
polarity: Polarity,
enabled: bool
) -> Result<Pwm>
[src]
channel: Channel,
frequency: f64,
duty_cycle: f64,
polarity: Polarity,
enabled: bool
) -> Result<Pwm>
Constructs a new Pwm
using the specified settings.
with_frequency
is a convenience method that converts frequency
to a period,
and calculates the duty cycle as a percentage of the frequency.
frequency
is specified in hertz (Hz).
duty_cycle
is specified as a floating point value between 0.0
(0%) and 1.0
(100%).
polarity
configures the active logic level as either high (Normal
)
or low (Inverse
).
enabled
enables PWM on the selected channel. If enabled
is set to false
,
the channel will remain disabled until enable
is called.
pub fn period(&self) -> Result<Duration>
[src]
Returns the period.
pub fn set_period(&self, period: Duration) -> Result<()>
[src]
Sets the period.
period
indicates the time it takes for the PWM channel to complete one cycle.
This method will fail if period
is shorter than the current pulse width.
pub fn pulse_width(&self) -> Result<Duration>
[src]
Returns the pulse width.
pub fn set_pulse_width(&self, pulse_width: Duration) -> Result<()>
[src]
Sets the pulse width.
pulse_width
indicates the amount of time the PWM channel is active during a
single period.
This method will fail if pulse_width
is longer than the current period.
pub fn frequency(&self) -> Result<f64>
[src]
Returns the frequency.
frequency
is a convenience method that calculates the frequency in hertz (Hz)
based on the configured period.
pub fn set_frequency(&self, frequency: f64, duty_cycle: f64) -> Result<()>
[src]
Sets the frequency and duty cycle.
set_frequency
is a convenience method that converts frequency
to a period,
and calculates the duty cycle as a percentage of the frequency.
frequency
is specified in hertz (Hz).
duty_cycle
is specified as a floating point value between 0.0
(0%) and 1.0
(100%).
pub fn duty_cycle(&self) -> Result<f64>
[src]
Returns the duty cycle.
duty_cycle
is a convenience method that calculates the duty cycle as a
floating point value between 0.0
(0%) and 1.0
(100%) based on the configured
period and pulse width.
pub fn set_duty_cycle(&self, duty_cycle: f64) -> Result<()>
[src]
Sets the duty cycle.
set_duty_cycle
is a convenience method that converts duty_cycle
to a
pulse width based on the configured period.
duty_cycle
is specified as a floating point value between 0.0
(0%) and 1.0
(100%).
pub fn polarity(&self) -> Result<Polarity>
[src]
Returns the polarity.
pub fn set_polarity(&self, polarity: Polarity) -> Result<()>
[src]
Sets the polarity.
polarity
configures the active logic level as either high
(Normal
) or low (Inverse
).
pub fn is_enabled(&self) -> Result<bool>
[src]
Returns true
if the PWM channel is enabled.
pub fn enable(&self) -> Result<()>
[src]
Enables the PWM channel.
pub fn disable(&self) -> Result<()>
[src]
Disables the PWM channel.
pub fn reset_on_drop(&self) -> bool
[src]
Returns the value of reset_on_drop
.
pub fn set_reset_on_drop(&mut self, reset_on_drop: bool)
[src]
When enabled, disables the PWM channel when the Pwm
instance
goes out of scope. By default, this is set to true
.
Note
Drop methods aren't called when a process is abnormally terminated, for
instance when a user presses Ctrl + C, and the SIGINT
signal
isn't caught. You can catch those using crates such as simple_signal
.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Pwm
impl Send for Pwm
impl Sync for Pwm
impl Unpin for Pwm
impl UnwindSafe for Pwm
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,