Struct rppal::gpio::OutputPin [−][src]
GPIO pin configured as output.
OutputPins are constructed by converting a Pin using Pin::into_output.
The pin's mode is automatically set to Output.
An OutputPin can be used to change a pin's output state.
The embedded-hal digital::OutputPin and PwmPin trait implementations for OutputPin
can be enabled by specifying the optional hal feature in the dependency
declaration for the rppal crate.
The unproven embedded-hal digital::InputPin, digital::StatefulOutputPin,
digital::ToggleableOutputPin and Pwm trait implementations for OutputPin can be enabled
by specifying the optional hal-unproven feature in the dependency declaration for
the rppal crate.
Implementations
impl OutputPin[src]
pub fn pin(&self) -> u8[src]
Returns the GPIO pin number.
Pins are addressed by their BCM numbers, rather than their physical location.
pub fn is_set_low(&self) -> bool[src]
Returns true if the pin's output state is set to Low.
pub fn is_set_high(&self) -> bool[src]
Returns true if the pin's output state is set to High.
pub fn write(&mut self, level: Level)[src]
Sets the pin's output state.
pub fn set_low(&mut self)[src]
Sets the pin's output state to Low.
pub fn set_high(&mut self)[src]
Sets the pin's output state to High.
pub fn toggle(&mut self)[src]
pub fn set_pwm(&mut self, period: Duration, pulse_width: Duration) -> Result<()>[src]
Configures a software-based PWM signal.
period indicates the time it takes to complete one cycle.
pulse_width indicates the amount of time the PWM signal is active during a
single period.
Software-based PWM is inherently inaccurate on a multi-threaded OS due to
scheduling/preemption. If an accurate or faster PWM signal is required, use the
hardware Pwm peripheral instead. More information can be found here.
If set_pwm is called when a PWM thread is already active, the existing thread
will be reconfigured at the end of the current cycle.
pub fn set_pwm_frequency(
&mut self,
frequency: f64,
duty_cycle: f64
) -> Result<()>[src]
&mut self,
frequency: f64,
duty_cycle: f64
) -> Result<()>
Configures a software-based PWM signal.
set_pwm_frequency is a convenience method that converts frequency to a period and
duty_cycle to a pulse width, and then calls set_pwm.
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 clear_pwm(&mut self) -> Result<()>[src]
Stops a previously configured software-based PWM signal.
The thread responsible for emulating the PWM signal is stopped at the end of the current cycle.
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, resets the pin's mode to its original state and disables the
built-in pull-up/pull-down resistors when the pin 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
impl Debug for OutputPin[src]
impl Drop for OutputPin[src]
fn drop(&mut self)[src]
Resets the pin's mode and disables the built-in pull-up/pull-down
resistors if reset_on_drop is set to true (default).
impl Eq for OutputPin[src]
impl InputPin for OutputPin[src]
type Error = Error
Error type
fn is_high(&self) -> Result<bool>[src]
fn is_low(&self) -> Result<bool>[src]
impl OutputPin for OutputPin[src]
type Error = Error
Error type
fn set_low(&mut self) -> Result<()>[src]
fn set_high(&mut self) -> Result<()>[src]
impl<'a> PartialEq<&'a OutputPin> for OutputPin[src]
fn eq(&self, other: &&'a OutputPin) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl PartialEq<OutputPin> for OutputPin[src]
fn eq(&self, other: &OutputPin) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl<'a> PartialEq<OutputPin> for &'a OutputPin[src]
fn eq(&self, other: &OutputPin) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl Pwm for OutputPin[src]
type Duty = f64
Type for the duty methods Read more
type Channel = ()
Enumeration of channels that can be used with this Pwm interface Read more
type Time = Duration
A time unit that can be converted into a human time unit (e.g. seconds)
fn disable(&mut self, _channel: Self::Channel)[src]
Disables a PWM channel
fn enable(&mut self, _channel: Self::Channel)[src]
Enables a PWM channel
fn get_period(&self) -> Self::Time[src]
Returns the current PWM period
fn get_duty(&self, _channel: Self::Channel) -> Self::Duty[src]
Returns the current duty cycle
fn get_max_duty(&self) -> Self::Duty[src]
Returns the maximum duty cycle value
fn set_duty(&mut self, _channel: Self::Channel, duty: Self::Duty)[src]
Sets a new duty cycle
fn set_period<P>(&mut self, period: P) where
P: Into<Self::Time>, [src]
P: Into<Self::Time>,
Sets a new PWM period
impl PwmPin for OutputPin[src]
type Duty = f64
Type for the duty methods Read more
fn disable(&mut self)[src]
fn enable(&mut self)[src]
fn get_duty(&self) -> Self::Duty[src]
fn get_max_duty(&self) -> Self::Duty[src]
fn set_duty(&mut self, duty: Self::Duty)[src]
impl StatefulOutputPin for OutputPin[src]
fn is_set_high(&self) -> Result<bool>[src]
fn is_set_low(&self) -> Result<bool>[src]
impl ToggleableOutputPin for OutputPin[src]
Auto Trait Implementations
impl !RefUnwindSafe for OutputPin[src]
impl Send for OutputPin[src]
impl Sync for OutputPin[src]
impl Unpin for OutputPin[src]
impl !UnwindSafe for OutputPin[src]
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,
pub 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.
pub 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>,