[][src]Struct rppal::gpio::OutputPin

pub struct OutputPin { /* fields omitted */ }

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.

Methods

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]

Toggles the pin's output state between Low and High.

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]

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 Eq for OutputPin[src]

impl PartialEq<OutputPin> for OutputPin[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<'a> PartialEq<&'a OutputPin> for OutputPin[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<'a> PartialEq<OutputPin> for &'a OutputPin[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

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 Debug for OutputPin[src]

impl OutputPin for OutputPin[src]

impl StatefulOutputPin for OutputPin[src]

impl ToggleableOutputPin for OutputPin[src]

impl InputPin for OutputPin[src]

impl PwmPin for OutputPin[src]

type Duty = f64

Type for the duty methods Read more

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]

Sets a new PWM period

Auto Trait Implementations

impl Send for OutputPin

impl Sync for OutputPin

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<P> ToggleableOutputPin for P where
    P: Default
[src]

fn toggle(&mut self)[src]

Toggle pin output