Struct arduino_leonardo::pins::Pins[]

pub struct Pins {
    pub d0: PD2<Input<Floating>>,
    pub d1: PD3<Input<Floating>>,
    pub d2: PD1<Input<Floating>>,
    pub d3: PD0<Input<Floating>>,
    pub d4: PD4<Input<Floating>>,
    pub d5: PC6<Input<Floating>>,
    pub d6: PD7<Input<Floating>>,
    pub d7: PE6<Input<Floating>>,
    pub d8: PB4<Input<Floating>>,
    pub d9: PB5<Input<Floating>>,
    pub d10: PB6<Input<Floating>>,
    pub d11: PB7<Input<Floating>>,
    pub d12: PD6<Input<Floating>>,
    pub d13: PC7<Input<Floating>>,
    pub led_rx: PB0<Input<Floating>>,
    pub led_tx: PD5<Input<Floating>>,
    pub ddr: DDR,
}

Convenience wrapper for easy access to Arduino Leonardo pins

Example

let dp = arduino_leonardo::Peripherals::take().unwrap();

let mut pins = arduino_leonardo::Pins::new(dp.PORTB, dp.PORTC, dp.PORTD, dp.PORTE);

// Notic that we can use `pins.ddr` for all pins.  It is generic over the
// different ports.
let mut led = pins.d13.into_output(pins.ddr);

Fields

D0 / RX

  • RX (UART)
  • INT2: External Interrupt

D1 / TX

  • TX (UART)
  • INT3: External Interrupt

D2 / SDA

  • SDA: i2c/twi data
  • INT1: External Interrupt

D3 / SCL

D4

D5

  • PWM: atmega32u4_hal::timer::Timer3Pwm
  • OC3A: Output Compare Channel A for Timer/Counter3
  • #OC4A: Inverted Output Compare Channel A for Timer/Counter4 (Not implemented)

D6

D7

  • INT6: External Interrupt

D8

D9

  • PWM: atmega32u4_hal::timer::Timer1Pwm
  • OC1A: Output Compare Channel A for Timer/Counter1
  • #OC4B: Inverted Output Compare Channel B for Timer/Counter4 (Not implemented)

D10

D11

D12

  • #OC4D: Inverted Output Compare Channel D for Timer/Counter4 (Not implemented)

D13 / LED_BUILTIN

RX

Led for indicating inbound data

TX

Led for indicating outbound data

Data Direction Register

This ddr is generic and can be used for all pins

Methods

impl Pins

Initialize pins

Auto Trait Implementations

impl Send for Pins

impl Sync for Pins