我正在 Raspberry Pi Pico 上的 Circuitpython 中实现一个键矩阵。
我已经到了可以扫描和阅读的地步。现在我需要添加去抖动。我想为此使用 adafruit_debouncer。
首先,我犯了一个错误,即简单地将列输入引脚去抖动,结果很有趣,因为去抖动器试图在扫描行时理解这些值......
现在我想为每个键创建一个去抖动器,我认为我应该能够使用 adafruit_debouncer,方法是不给它一个 DigitalIO 实例来处理它,而是一个 lambda,它查看我的二维键状态数组中的特定单元格。
给定两个适当大小的键状态和去抖动器的二维数组,我这样创建它们:
for rowindex in range(len(rowpins)):
for colindex in range(len(colpins)):
debouncers[rowindex][colindex] = adafruit_debouncer.Debouncer(lambda: keystates[rowindex][colindex])
在进行每次更新的扫描后,keystates[][]
根据键是否关闭输入 Trues 和 Falses,然后我迭代debouncers[][]
,调用update()
每个然后查询它们的value
.
不幸的是,似乎没有去抖器能够看到True
数组中的值。至少没有人报告True
自己。
我的错误是什么?