X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=src%2Fapplication%2Fmain.rs;h=bd1091f3c2bbca3632de41c8c536bd7619b34d80;hb=9cef125c6dc3f96c4475d3b0064d4690ca2cb71e;hp=55214279c599367e8010a578cb597291b7449675;hpb=826f15ec13c6587f5ad6712134cf8bbbf04d33ac;p=gps-watch.git diff --git a/src/application/main.rs b/src/application/main.rs index 5521427..bd1091f 100644 --- a/src/application/main.rs +++ b/src/application/main.rs @@ -30,6 +30,9 @@ extern crate common; use common::buffer::Buffer; use common::clock; use common::systick; +use common::port; +use common::gpio; +use common::nvic; use common::usb_serial; extern { @@ -42,6 +45,12 @@ extern { pub unsafe extern fn main() { clock::configure(); systick::init(); + port::init(); + + // Configure upper right push button. + gpio::set_direction(gpio::GPIOA, 1 << 12, gpio::Direction::Input); + port::set_af(port::PORTA, 12, 1); + port::set_pull(port::PORTA, 12, port::Pull::Up); enable_interrupts(); @@ -55,5 +64,9 @@ pub unsafe extern fn main() { cdc_tx_buf.write(b".\n"); cdc_tx_buf.flush(); + + if (gpio::get(gpio::GPIOA) & (1 << 12)) == 0 { + nvic::system_reset(); + } } }