blink/
blink.rs

1#![no_main]
2#![no_std]
3
4use nrf52840_hal as hal;
5use rtt_target::{rprintln, rtt_init_print};
6use particle_argon::{ModeButton, Led};
7
8#[panic_handler] // panicking behavior
9fn panic(_: &core::panic::PanicInfo) -> ! {
10    loop {
11        cortex_m::asm::bkpt();
12    }
13}
14
15#[cortex_m_rt::entry]
16fn main() -> ! {
17    rtt_init_print!();
18    let p = hal::pac::Peripherals::take().unwrap();
19    let port0 = hal::gpio::p0::Parts::new(p.P0);
20    let port1 = hal::gpio::p1::Parts::new(p.P1);
21    let button = ModeButton::new(port0.p0_11);
22    let mut led  = Led::new(port1.p1_12);
23
24    rprintln!("Blinky button demo starting");
25    loop {
26        if button.is_held_down() {
27            led.on();
28        } else {
29            led.off();
30        }
31    }
32}