#[macro_export]
macro_rules! display_pins {
($peripherals:expr) => {
$crate::DisplayPins {
spi: $peripherals.SPI2,
sck: $peripherals.GPIO36,
mosi: $peripherals.GPIO35,
cs: $peripherals.GPIO37,
dc: $peripherals.GPIO34,
reset: $peripherals.GPIO33,
backlight: $peripherals.GPIO38,
ledc: $peripherals.LEDC,
}
};
}
#[macro_export]
macro_rules! i2c_pins {
($peripherals:expr) => {
$crate::I2cPins {
i2c: $peripherals.I2C0,
sda: $peripherals.GPIO8,
scl: $peripherals.GPIO9,
}
};
}
#[macro_export]
macro_rules! keyboard_pins {
($peripherals:expr) => {
$crate::KeyboardPins {
i2c: $crate::i2c_pins!($peripherals),
interrupt: $peripherals.GPIO11,
}
};
}
#[macro_export]
macro_rules! speaker_pins {
($peripherals:expr) => {
$crate::SpeakerPins {
i2s: $peripherals.I2S0,
dma: $peripherals.DMA_CH0,
bclk: $peripherals.GPIO41,
ws: $peripherals.GPIO43,
dout: $peripherals.GPIO42,
}
};
}
#[macro_export]
macro_rules! audio_pins {
($peripherals:expr) => {
$crate::AudioPins {
speaker: $crate::speaker_pins!($peripherals),
din: $peripherals.GPIO46,
}
};
}
#[macro_export]
macro_rules! battery_pins {
($peripherals:expr) => {
$crate::BatteryPins {
adc: $peripherals.ADC1,
pin: $peripherals.GPIO10,
}
};
}
#[cfg(feature = "sd-card")]
#[macro_export]
macro_rules! sd_card_pins {
($peripherals:expr) => {
$crate::SdCardPins {
spi: $peripherals.SPI3,
sck: $peripherals.GPIO40,
mosi: $peripherals.GPIO14,
miso: $peripherals.GPIO39,
cs: $peripherals.GPIO12,
}
};
}