Skip to main content

bind_interrupts

Macro bind_interrupts 

Source
macro_rules! bind_interrupts {
    ($(#[$outer:meta])* $vis:vis struct $name:ident {
        $(
            $(#[doc = $doc:literal])*
            $(#[cfg($cond_irq:meta)])?
            $irq:ident => $(
                $(#[cfg($cond_handler:meta)])?
                $handler:ty
            ),*;
        )*
    }) => { ... };
    (@inner $($t:tt)*) => { ... };
}
Expand description

Macro to bind interrupts to interrupt handlers.

For example:

ⓘ
use ra_hal::{bind_interrupts, peripherals::SCI1, uart};

bind_interrupts!(struct Irqs {
    IEL2 => uart::RxInterruptHandler<SCI1>;
    IEL3 => uart::TxInterruptHandler<SCI1>;
    IEL4 => uart::TeInterruptHandler<SCI1>;
});

Any interrupt IEL2..=IEL31 can be assigned to any one handler. Note that IEL0 and IEL1 are used by the time driver and are unavailable for general use.