Testing with higher debounce

This commit is contained in:
Christoffer Martinsson 2025-05-14 07:02:42 +02:00
parent 5da5a16821
commit 80c24038bd
2 changed files with 9 additions and 12 deletions

View File

@ -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) { pub fn scan_matrix(&mut self, delay: &mut Delay) {
for col_index in 0..self.cols.len() { for col_index in 0..self.cols.len() {
self.cols[col_index].set_low().unwrap(); self.cols[col_index].set_low().unwrap();
delay.delay_us(1); delay.delay_us(5);
self.process_column(col_index); self.process_column(col_index);
self.cols[col_index].set_high().unwrap(); self.cols[col_index].set_high().unwrap();
delay.delay_us(1); delay.delay_us(5);
} }
} }

View File

@ -156,7 +156,7 @@ fn main() -> ! {
button_matrix.init_pins(); button_matrix.init_pins();
// Scan matrix to get initial state // Scan matrix to get initial state
for _ in 0..10 { for _ in 0..50 {
button_matrix.scan_matrix(&mut delay); button_matrix.scan_matrix(&mut delay);
} }
@ -212,9 +212,8 @@ fn main() -> ! {
Err(UsbHidError::WouldBlock) => {} Err(UsbHidError::WouldBlock) => {}
Err(UsbHidError::Duplicate) => {} Err(UsbHidError::Duplicate) => {}
Ok(_) => {} Ok(_) => {}
Err(e) => { Err(_) => {
status_led.update(StatusMode::Error); started = false;
core::panic!("Failed to write keyboard report: {:?}", e)
} }
}; };
} }
@ -225,9 +224,8 @@ fn main() -> ! {
match keyboard.tick() { match keyboard.tick() {
Err(UsbHidError::WouldBlock) => {} Err(UsbHidError::WouldBlock) => {}
Ok(_) => {} Ok(_) => {}
Err(e) => { Err(_) => {
status_led.update(StatusMode::Error); started = false;
core::panic!("Failed to process keyboard tick: {:?}", e)
} }
}; };
} }
@ -235,9 +233,8 @@ fn main() -> ! {
if usb_dev.poll(&mut [&mut keyboard]) { if usb_dev.poll(&mut [&mut keyboard]) {
match keyboard.device().read_report() { match keyboard.device().read_report() {
Err(UsbError::WouldBlock) => {} Err(UsbError::WouldBlock) => {}
Err(e) => { Err(_) => {
status_led.update(StatusMode::Error); started = false;
core::panic!("Failed to read keyboard report: {:?}", e)
} }
Ok(leds) => { Ok(leds) => {
caps_lock_active = leds.caps_lock; caps_lock_active = leds.caps_lock;