aboutsummaryrefslogtreecommitdiff
path: root/examples/mimxrt1062-evk/src/bin/button.rs
diff options
context:
space:
mode:
authorGerzain Mata <[email protected]>2025-07-23 00:53:10 -0700
committerGerzain Mata <[email protected]>2025-07-23 00:53:10 -0700
commite2cec28805a66fa913fcdc3af2de07b95b06aa0d (patch)
tree1ea685cd96ceef15a7b0f2975a55495598c0e5ef /examples/mimxrt1062-evk/src/bin/button.rs
parenta80eb48e67d486ace9b9a4733f2b54d58a80eb52 (diff)
parent8f5e4ac06d1d06dd6520a8eecf8697b199005f34 (diff)
Merge branch 'main' into feat/stm32wba-usb-example
Diffstat (limited to 'examples/mimxrt1062-evk/src/bin/button.rs')
-rw-r--r--examples/mimxrt1062-evk/src/bin/button.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/mimxrt1062-evk/src/bin/button.rs b/examples/mimxrt1062-evk/src/bin/button.rs
new file mode 100644
index 000000000..d60fa3dac
--- /dev/null
+++ b/examples/mimxrt1062-evk/src/bin/button.rs
@@ -0,0 +1,36 @@
1#![no_std]
2#![no_main]
3
4use defmt::info;
5use embassy_executor::Spawner;
6use embassy_nxp::gpio::{Input, Level, Output, Pull};
7use {defmt_rtt as _, embassy_imxrt1062_evk_examples as _, panic_probe as _};
8
9#[embassy_executor::main]
10async fn main(_spawner: Spawner) -> ! {
11 let p = embassy_nxp::init(Default::default());
12 info!("Hello world!");
13
14 // User LED (D8)
15 let led = p.GPIO_AD_B0_08;
16 // User button (SW5)
17 let button = p.WAKEUP;
18 let mut button = Input::new(button, Pull::Up100K);
19 let mut led = Output::new(led, Level::Low);
20 led.set_high();
21
22 loop {
23 button.wait_for_falling_edge().await;
24
25 info!("Toggled");
26 led.toggle();
27
28 // Software debounce.
29 button.wait_for_rising_edge().await;
30
31 // Stabilization.
32 for _ in 0..100_000 {
33 cortex_m::asm::nop();
34 }
35 }
36}