mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-09-26 20:00:27 +00:00
53 lines
1.4 KiB
Rust
53 lines
1.4 KiB
Rust
use crate::pac;
|
|
use crate::pac::interrupt;
|
|
|
|
#[cfg(feature = "rt")]
|
|
#[interrupt]
|
|
fn GROUP0() {
|
|
use mspm0_metapac::Group0;
|
|
|
|
let group = pac::CPUSS.int_group(0);
|
|
|
|
// Must subtract by 1 since NO_INTR is value 0
|
|
let iidx = group.iidx().read().stat().to_bits() - 1;
|
|
|
|
let Ok(group) = pac::Group0::try_from(iidx as u8) else {
|
|
debug!("Invalid IIDX for group 0: {}", iidx);
|
|
return;
|
|
};
|
|
|
|
match group {
|
|
Group0::WWDT0 => todo!("implement WWDT0"),
|
|
Group0::WWDT1 => todo!("implement WWDT1"),
|
|
Group0::DEBUGSS => todo!("implement DEBUGSS"),
|
|
Group0::FLASHCTL => todo!("implement FLASHCTL"),
|
|
Group0::SYSCTL => todo!("implement SYSCTL"),
|
|
}
|
|
}
|
|
|
|
#[cfg(feature = "rt")]
|
|
#[interrupt]
|
|
fn GROUP1() {
|
|
use mspm0_metapac::Group1;
|
|
|
|
let group = pac::CPUSS.int_group(1);
|
|
|
|
// Must subtract by 1 since NO_INTR is value 0
|
|
let iidx = group.iidx().read().stat().to_bits() - 1;
|
|
|
|
let Ok(group) = pac::Group1::try_from(iidx as u8) else {
|
|
debug!("Invalid IIDX for group 1: {}", iidx);
|
|
return;
|
|
};
|
|
|
|
match group {
|
|
Group1::GPIOA => crate::gpio::gpioa_interrupt(),
|
|
Group1::GPIOB => crate::gpio::gpiob_interrupt(),
|
|
Group1::COMP0 => todo!("implement COMP0"),
|
|
Group1::COMP1 => todo!("implement COMP1"),
|
|
Group1::COMP2 => todo!("implement COMP2"),
|
|
Group1::TRNG => todo!("implement TRNG"),
|
|
Group1::GPIOC => crate::gpio::gpioc_interrupt(),
|
|
}
|
|
}
|