From b3c546ae4e04a722353d9e92bed371309547c561 Mon Sep 17 00:00:00 2001 From: Stephen D <webmaster@scd31.com> Date: Tue, 6 Feb 2024 18:19:34 -0400 Subject: [PATCH] fix keyboard bug --- src/keyboard.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/keyboard.rs b/src/keyboard.rs index 7a0ae4e..e787964 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -5,6 +5,7 @@ use embedded_hal::{ digital::v2::{InputPin, OutputPin}, }; use rp2040_hal::Timer; +use rtt_target::rprintln; pub struct Keyboard< // col @@ -60,7 +61,8 @@ impl< let mut out = 0; for x in 0..6 { - self.write_cols(1 << x); + // +2 gets us to QF (col 6) + self.write_cols(1 << (x + 2)); self.timer.delay_ms(1); @@ -75,16 +77,17 @@ impl< out } - fn write_cols(&mut self, val: u8) { - for i in 0..8 { + // 1s in val are low + // 0s are high + // indexes from furthest pin (QH on second shift register) + fn write_cols(&mut self, val: u16) { + for i in 0..16 { self.col_ser - .set_state(((val & (1 << i)) > 0).into()) + .set_state(((val & (1 << i)) == 0).into()) .unwrap(); - self.timer.delay_ms(1); + self.col_clk.set_low().unwrap(); - self.timer.delay_ms(1); self.col_clk.set_high().unwrap(); - self.timer.delay_ms(1); } self.col_rclk.set_low().unwrap(); -- GitLab