atsamd-hal 0.23.3

HAL and Peripheral access API for ATSAMD11, ATSAMD21, ATSAMD51, ATSAME51, ATSAME53 and ATSAME54 microcontrollers
Documentation
use crate::adc::*;
use crate::gpio::pin::*;
use atsamd_hal_macros::hal_cfg;

macro_rules! adc_pins {
    (
        $(
            $( #[$cfg:meta] )?
            $PinId:ident: ($Adc:ident, $CHAN:literal)
        ),+
        $(,)?
    ) => {
        crate::paste::item! {
            $(
                $( #[$cfg] )?
                impl AdcPin<$Adc> for Pin<$PinId, AlternateB> {
                    const CHANNEL: u8 = $CHAN;
                }
            )+
        }
    };
}

#[hal_cfg(any("adc-d21"))]
adc_pins! {
    #[hal_cfg("pa02")]
    PA02: (Adc0, 0),
    #[hal_cfg("pa03")]
    PA03: (Adc0, 1),

    #[hal_cfg("pb08")]
    PB08: (Adc0, 2),
    #[hal_cfg("pb09")]
    PB09: (Adc0, 3),

    #[hal_cfg("pa04")]
    PA04: (Adc0, 4),
    #[hal_cfg("pa05")]
    PA05: (Adc0, 5),
    #[hal_cfg("pa06")]
    PA06: (Adc0, 6),
    #[hal_cfg("pa07")]
    PA07: (Adc0, 7),

    #[hal_cfg("pb00")]
    PB00: (Adc0, 8),
    #[hal_cfg("pb01")]
    PB01: (Adc0, 9),
    #[hal_cfg("pb02")]
    PB02: (Adc0, 10),
    #[hal_cfg("pb03")]
    PB03: (Adc0, 11),

    #[hal_cfg("pb04")]
    PB04: (Adc0, 12),
    #[hal_cfg("pb05")]
    PB05: (Adc0, 13),
    #[hal_cfg("pb06")]
    PB06: (Adc0, 14),
    #[hal_cfg("pb07")]
    PB07: (Adc0, 15),

    #[hal_cfg("pa08")]
    PA08: (Adc0, 16),
    #[hal_cfg("pa09")]
    PA09: (Adc0, 17),
    #[hal_cfg("pa10")]
    PA10: (Adc0, 18),
    #[hal_cfg("pa11")]
    PA11: (Adc0, 19),
}

#[hal_cfg(any("adc-d11"))]
adc_pins! {
    #[hal_cfg("pa02")]
    PA02: (Adc0, 0),
    #[hal_cfg("pa03")]
    PA03: (Adc0, 1),
    #[hal_cfg("pa04")]
    PA04: (Adc0, 2),
    #[hal_cfg("pa05")]
    PA05: (Adc0, 3),
    #[hal_cfg("pa06")]
    PA06: (Adc0, 4),
    #[hal_cfg("pa07")]
    PA07: (Adc0, 5),
    #[hal_cfg("pa14")]
    PA14: (Adc0, 6),
    #[hal_cfg("pa15")]
    PA15: (Adc0, 7),
    #[hal_cfg("pa10")]
    PA10: (Adc0, 8),
    #[hal_cfg("pa11")]
    PA11: (Adc0, 9),
}