diff --git a/src/main.rs b/src/main.rs index bf3118e..787fb7a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -102,37 +102,17 @@ fn main() -> ! { log::info!("Sleeping for 0.5s..."); // delay.delay(500.millis()); - let mut gpio2 = Input::new(io.pins.gpio2, Pull::Up); - let mut gpio3 = Input::new(io.pins.gpio3, Pull::Up); - let mut gpio4 = Input::new(io.pins.gpio4, Pull::Up); - let mut gpio5 = Input::new(io.pins.gpio5, Pull::Up); - - let mut gpio6 = OutputOpenDrain::new(io.pins.gpio6, Level::Low, Pull::Up); - let mut gpio7 = OutputOpenDrain::new(io.pins.gpio7, Level::Low, Pull::Up); - let mut gpio8 = OutputOpenDrain::new(io.pins.gpio8, Level::Low, Pull::Up); - let mut gpio10 = OutputOpenDrain::new(io.pins.gpio10, Level::Low, Pull::Up); - - let mut kbd = Keypad(( - (&mut gpio2, &mut gpio6), - (&mut gpio3, &mut gpio6), - (&mut gpio4, &mut gpio6), - (&mut gpio5, &mut gpio6), - // -------------------------------------- - (&mut gpio2, &mut gpio7), - (&mut gpio3, &mut gpio7), - (&mut gpio4, &mut gpio7), - (&mut gpio5, &mut gpio7), - // -------------------------------------- - (&mut gpio2, &mut gpio8), - (&mut gpio3, &mut gpio8), - (&mut gpio4, &mut gpio8), - (&mut gpio5, &mut gpio8), - // -------------------------------------- - (&mut gpio2, &mut gpio10), - (&mut gpio3, &mut gpio10), - (&mut gpio4, &mut gpio10), - (&mut gpio5, &mut gpio10), - )); + let mut kbd = Keypad { + i1: Input::new(io.pins.gpio2, Pull::Up), + i2: Input::new(io.pins.gpio3, Pull::Up), + i3: Input::new(io.pins.gpio4, Pull::Up), + i4: Input::new(io.pins.gpio5, Pull::Up), + //--------------------------- + o1: OutputOpenDrain::new(io.pins.gpio6, Level::Low, Pull::Up), + o2: OutputOpenDrain::new(io.pins.gpio7, Level::Low, Pull::Up), + o3: OutputOpenDrain::new(io.pins.gpio8, Level::Low, Pull::Up), + o4: OutputOpenDrain::new(io.pins.gpio10, Level::Low, Pull::Up), + }; let mut ctx = Context { button_pressed: None, @@ -197,101 +177,62 @@ pub enum Button { pub struct Context { button_pressed: Option