5 个版本
0.2.0 | 2023年5月19日 |
---|---|
0.1.3 | 2022年11月29日 |
0.1.2 | 2022年11月17日 |
0.1.1 | 2022年6月2日 |
0.1.0 | 2022年4月30日 |
#2134 在 嵌入式开发
102 每月下载量
125KB
2K SLoC
kiibohd-hall-effect-keyscanning
为kiibohd-hall-effect提供的嵌入式hal驱动程序按键扫描。可以与单次、中断或DMA连接的ADC驱动程序一起使用。
使用方法
const ADC_SAMPLES: usize = 1;
const RSIZE: usize = 6; // Matrix rows
const CSIZE: usize = 12; // Matrix columns
const MSIZE: usize = RSIZE * CSIZE; // Total matrix size
type Matrix = kiibohd_hall_effect_keyscanning::Matrix<PioX<Output<PushPull>>, CSIZE, MSIZE>;
let mut matrix = Matrix::new(cols).unwrap();
matrix.next_strobe().unwrap(); // Strobe first column
// Retrieve adc sample and key index
let sample = read_adc();
let index = determine_key_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::<ADC_SAMPLES>(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);
}
构建
cargo build
许可证
许可为以下之一
- Apache许可证2.0版本 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),任选其一。
贡献
除非您明确说明,否则您提交给工作以供包含的任何贡献,如Apache-2.0许可证中定义的,应如上双重许可,不附加任何额外条款或条件。
依赖关系
~0.7–1MB
~19K SLoC