34 lines
815 B
Rust
34 lines
815 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
use cortex_m_rt::entry;
|
|
use defmt::info;
|
|
use nb::block;
|
|
use stm32f1xx_hal::{pac, prelude::*, timer::Timer};
|
|
use {defmt_rtt as _, panic_probe as _};
|
|
|
|
#[entry]
|
|
fn main() -> ! {
|
|
let cp = cortex_m::Peripherals::take().unwrap();
|
|
let dp = pac::Peripherals::take().unwrap();
|
|
|
|
let mut rcc = dp.RCC.constrain();
|
|
let mut gpioa = dp.GPIOA.split(&mut rcc);
|
|
|
|
// TODO: Button wiring: PA0 -> button -> GND
|
|
|
|
let mut timer = Timer::syst(cp.SYST, &rcc.clocks).counter_hz();
|
|
timer.start(40.Hz()).unwrap();
|
|
|
|
let mut last_pressed = false;
|
|
|
|
loop {
|
|
|
|
// TODO: get the current button status
|
|
// TODO: print a message when the button is pressed and released
|
|
|
|
// Poll at 25ms to avoid too much log spam.
|
|
block!(timer.wait()).unwrap();
|
|
}
|
|
}
|