aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32f3
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-01-22 20:12:36 +0100
committerDario Nieuwenhuis <[email protected]>2024-01-22 21:31:06 +0100
commit3387ee7238f1c9c4eeccb732ba543cbe38ab7ccd (patch)
tree0b2353dcc0c44c6415a1d765427b59318c6e3a63 /examples/stm32f3
parent9f76dbb93b4ab5efc8a0d51b4507ab7eb144fcd9 (diff)
stm32/gpio: remove generics.
Diffstat (limited to 'examples/stm32f3')
-rw-r--r--examples/stm32f3/src/bin/button_events.rs28
-rw-r--r--examples/stm32f3/src/bin/button_exti.rs5
2 files changed, 15 insertions, 18 deletions
diff --git a/examples/stm32f3/src/bin/button_events.rs b/examples/stm32f3/src/bin/button_events.rs
index 2f7da4ef5..f5ed5d2c9 100644
--- a/examples/stm32f3/src/bin/button_events.rs
+++ b/examples/stm32f3/src/bin/button_events.rs
@@ -12,21 +12,20 @@
12use defmt::*; 12use defmt::*;
13use embassy_executor::Spawner; 13use embassy_executor::Spawner;
14use embassy_stm32::exti::ExtiInput; 14use embassy_stm32::exti::ExtiInput;
15use embassy_stm32::gpio::{AnyPin, Input, Level, Output, Pin, Pull, Speed}; 15use embassy_stm32::gpio::{Level, Output, Pull, Speed};
16use embassy_stm32::peripherals::PA0;
17use embassy_sync::blocking_mutex::raw::ThreadModeRawMutex; 16use embassy_sync::blocking_mutex::raw::ThreadModeRawMutex;
18use embassy_sync::channel::Channel; 17use embassy_sync::channel::Channel;
19use embassy_time::{with_timeout, Duration, Timer}; 18use embassy_time::{with_timeout, Duration, Timer};
20use {defmt_rtt as _, panic_probe as _}; 19use {defmt_rtt as _, panic_probe as _};
21 20
22struct Leds<'a> { 21struct Leds<'a> {
23 leds: [Output<'a, AnyPin>; 8], 22 leds: [Output<'a>; 8],
24 direction: i8, 23 direction: i8,
25 current_led: usize, 24 current_led: usize,
26} 25}
27 26
28impl<'a> Leds<'a> { 27impl<'a> Leds<'a> {
29 fn new(pins: [Output<'a, AnyPin>; 8]) -> Self { 28 fn new(pins: [Output<'a>; 8]) -> Self {
30 Self { 29 Self {
31 leds: pins, 30 leds: pins,
32 direction: 1, 31 direction: 1,
@@ -100,18 +99,17 @@ static CHANNEL: Channel<ThreadModeRawMutex, ButtonEvent, 4> = Channel::new();
100#[embassy_executor::main] 99#[embassy_executor::main]
101async fn main(spawner: Spawner) { 100async fn main(spawner: Spawner) {
102 let p = embassy_stm32::init(Default::default()); 101 let p = embassy_stm32::init(Default::default());
103 let button = Input::new(p.PA0, Pull::Down); 102 let button = ExtiInput::new(p.PA0, p.EXTI0, Pull::Down);
104 let button = ExtiInput::new(button, p.EXTI0);
105 info!("Press the USER button..."); 103 info!("Press the USER button...");
106 let leds = [ 104 let leds = [
107 Output::new(p.PE9.degrade(), Level::Low, Speed::Low), 105 Output::new(p.PE9, Level::Low, Speed::Low),
108 Output::new(p.PE10.degrade(), Level::Low, Speed::Low), 106 Output::new(p.PE10, Level::Low, Speed::Low),
109 Output::new(p.PE11.degrade(), Level::Low, Speed::Low), 107 Output::new(p.PE11, Level::Low, Speed::Low),
110 Output::new(p.PE12.degrade(), Level::Low, Speed::Low), 108 Output::new(p.PE12, Level::Low, Speed::Low),
111 Output::new(p.PE13.degrade(), Level::Low, Speed::Low), 109 Output::new(p.PE13, Level::Low, Speed::Low),
112 Output::new(p.PE14.degrade(), Level::Low, Speed::Low), 110 Output::new(p.PE14, Level::Low, Speed::Low),
113 Output::new(p.PE15.degrade(), Level::Low, Speed::Low), 111 Output::new(p.PE15, Level::Low, Speed::Low),
114 Output::new(p.PE8.degrade(), Level::Low, Speed::Low), 112 Output::new(p.PE8, Level::Low, Speed::Low),
115 ]; 113 ];
116 let leds = Leds::new(leds); 114 let leds = Leds::new(leds);
117 115
@@ -127,7 +125,7 @@ async fn led_blinker(mut leds: Leds<'static>) {
127} 125}
128 126
129#[embassy_executor::task] 127#[embassy_executor::task]
130async fn button_waiter(mut button: ExtiInput<'static, PA0>) { 128async fn button_waiter(mut button: ExtiInput<'static>) {
131 const DOUBLE_CLICK_DELAY: u64 = 250; 129 const DOUBLE_CLICK_DELAY: u64 = 250;
132 const HOLD_DELAY: u64 = 1000; 130 const HOLD_DELAY: u64 = 1000;
133 131
diff --git a/examples/stm32f3/src/bin/button_exti.rs b/examples/stm32f3/src/bin/button_exti.rs
index 86ff68492..a55530e0e 100644
--- a/examples/stm32f3/src/bin/button_exti.rs
+++ b/examples/stm32f3/src/bin/button_exti.rs
@@ -4,7 +4,7 @@
4use defmt::*; 4use defmt::*;
5use embassy_executor::Spawner; 5use embassy_executor::Spawner;
6use embassy_stm32::exti::ExtiInput; 6use embassy_stm32::exti::ExtiInput;
7use embassy_stm32::gpio::{Input, Pull}; 7use embassy_stm32::gpio::Pull;
8use {defmt_rtt as _, panic_probe as _}; 8use {defmt_rtt as _, panic_probe as _};
9 9
10#[embassy_executor::main] 10#[embassy_executor::main]
@@ -12,8 +12,7 @@ async fn main(_spawner: Spawner) {
12 let p = embassy_stm32::init(Default::default()); 12 let p = embassy_stm32::init(Default::default());
13 info!("Hello World!"); 13 info!("Hello World!");
14 14
15 let button = Input::new(p.PA0, Pull::Down); 15 let mut button = ExtiInput::new(p.PA0, p.EXTI0, Pull::Down);
16 let mut button = ExtiInput::new(button, p.EXTI0);
17 16
18 info!("Press the USER button..."); 17 info!("Press the USER button...");
19 18