kiibohd-hall-effect-keyscanning

Rust docs.rs Crates.io Crates.io Crates.io

Keyscanning embedded-hal driver for kiibohd-hall-effect. Can be used with single-shot, interrupt or DMA-connected ADC drivers.

Usage

```rust const ADCSAMPLES: usize = 1; const RSIZE: usize = 6; // Matrix rows const CSIZE: usize = 12; // Matrix columns const MSIZE: usize = RSIZE * CSIZE; // Total matrix size type Matrix = kiibohdhalleffectkeyscanning::Matrix>, CSIZE, MSIZE>;

let mut matrix = Matrix::new(cols).unwrap(); matrix.next_strobe().unwrap(); // Strobe first column

// Retrieve adc sample and key index let sample = readadc(); let index = determinekey_index();

// Store the sample value at the specified index // ADC_SAMPLES specifies how many samples are needed (averaged) until a processed sense value is returned match matrix.record::(index, sample) { Ok(val) => { // If data bucket has accumulated enough samples, pass to the next stage if let Some(sense) = val { // Processed ADC data } } Err(e) => { // Usually this is an index error defmt::error!("Sample record failed ({}, {}, {}):{} -> {}", i, strobe, index, sample, e); }

```

Building

bash cargo build

License

Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.