Trait embedded_hal::Pwm[][src]

pub trait Pwm {
    type Channel;
    type Time;
    type Duty;
    fn disable(&mut self, channel: Self::Channel);
fn enable(&mut self, channel: Self::Channel);
fn get_period(&self) -> Self::Time;
fn get_duty(&self, channel: Self::Channel) -> Self::Duty;
fn get_max_duty(&self) -> Self::Duty;
fn set_duty(&mut self, channel: Self::Channel, duty: Self::Duty);
fn set_period<P>(&mut self, period: P)
    where
        P: Into<Self::Time>
; }

Pulse Width Modulation

This trait is available if embedded-hal is built with the "unproven" feature.

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.set_period(1.khz());

    let max_duty = pwm.get_max_duty();

    // brightest LED
    pwm.set_duty(Channel::_1, max_duty);

    // dimmer LED
    pwm.set_duty(Channel::_2, max_duty / 4);
}

Associated Types

type Channel[src]

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[src]

A time unit that can be converted into a human time unit (e.g. seconds)

type Duty[src]

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)

Loading content...

Required methods

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

Loading content...

Implementors

Loading content...