diff --git a/rp2040_42/src/button_matrix.rs b/rp2040_42/src/button_matrix.rs index 355f605..8803d46 100644 --- a/rp2040_42/src/button_matrix.rs +++ b/rp2040_42/src/button_matrix.rs @@ -62,10 +62,10 @@ impl<'a, const R: usize, const C: usize, const N: usize> ButtonMatrix<'a, R, C, pub fn scan_matrix(&mut self, delay: &mut Delay) { for col_index in 0..self.cols.len() { self.cols[col_index].set_low().unwrap(); - delay.delay_us(1); + delay.delay_us(5); self.process_column(col_index); self.cols[col_index].set_high().unwrap(); - delay.delay_us(1); + delay.delay_us(5); } } diff --git a/rp2040_42/src/main.rs b/rp2040_42/src/main.rs index e888380..b557c77 100644 --- a/rp2040_42/src/main.rs +++ b/rp2040_42/src/main.rs @@ -156,7 +156,7 @@ fn main() -> ! { button_matrix.init_pins(); // Scan matrix to get initial state - for _ in 0..10 { + for _ in 0..50 { button_matrix.scan_matrix(&mut delay); } @@ -212,9 +212,8 @@ fn main() -> ! { Err(UsbHidError::WouldBlock) => {} Err(UsbHidError::Duplicate) => {} Ok(_) => {} - Err(e) => { - status_led.update(StatusMode::Error); - core::panic!("Failed to write keyboard report: {:?}", e) + Err(_) => { + started = false; } }; } @@ -225,9 +224,8 @@ fn main() -> ! { match keyboard.tick() { Err(UsbHidError::WouldBlock) => {} Ok(_) => {} - Err(e) => { - status_led.update(StatusMode::Error); - core::panic!("Failed to process keyboard tick: {:?}", e) + Err(_) => { + started = false; } }; } @@ -235,9 +233,8 @@ fn main() -> ! { if usb_dev.poll(&mut [&mut keyboard]) { match keyboard.device().read_report() { Err(UsbError::WouldBlock) => {} - Err(e) => { - status_led.update(StatusMode::Error); - core::panic!("Failed to read keyboard report: {:?}", e) + Err(_) => { + started = false; } Ok(leds) => { caps_lock_active = leds.caps_lock;