#![no_main]
#![no_std]
use alarmo::input::{Button, InterruptMode};
use alarmo::Alarmo;
use cortex_m_rt::{entry, exception};
#[entry]
fn main() -> ! {
let mut alarmo = unsafe { Alarmo::init() };
alarmo.buttons.into_interrupts(
&mut alarmo.ext_interrupts,
InterruptMode::Dial,
|button, _| {
match button {
Button::DialClick => panic!("Dial click!"),
Button::Back => cortex_m::asm::udf(),
_ => {}
}
},
);
loop {}
}
#[exception]
unsafe fn HardFault(ef: &cortex_m_rt::ExceptionFrame) -> ! {
panic!("HardFault at {:#?}", ef)
}
#[exception]
unsafe fn DefaultHandler(irqn: i16) {
panic!("Unhandled exception (IRQn = {})", irqn);
}