-
让我自己分析这算法,属于是自取其辱了。所以有没有dalao能解释解释? 当然如果1:1复刻瀚文的话,每个按键对应的时序就不用调了。 但是如果想自己画PCB,应该得逐个按键去调时序吧?至少改变键盘配列之后肯定要改软件部分。 这是我的理解,如果到这里都没错的话,是不是可以做个可视化的校准程序?类似“键盘触发测试”那种,让使用者按指示按下要校对的按键。 之所以有这个想法,也是因为单看视频我感觉这种误差和老化后可能会造成时序的偏移。视频里说道精度似乎很高,但还是想到了这,于是就问问。求指点 |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 4 replies
-
这个算法其实十分好理解。STM32的SPI1_MISO接在了U3这第一颗74HC165的串行输出上,而第二颗(U4)的串行输出又接在了第一颗的串行输入上。以此类推,总共有11颗74HC165。 用大白话说,软件上从SPI1一口气读取11个字节,那么第1个字节就是U3,第2个字节就是U4…第11个字节是U13。而每个字节,第1位对应这颗74HC165的D0,第2位对应D1…第8位对应D7。话虽如此,如果大幅度改动了按键顺序的话,重新对位也是个不小的工作量。 不知道你所值的时序偏移是什么意思(抱歉,我入行不久,还没足够的时间让我遇到老化问题【),是指时钟误差?。但是我的理解,74HC165的输出可以看作是SPI协议,它是依靠从MCU往CP脚输出的时钟信号(的上升沿)给出对应输出的。所以快点或者慢点都没关系。 |
Beta Was this translation helpful? Give feedback.
-
不需要调时序,就是标准的边沿采样不会有任何误差。这个方案layout也随便走线,所有键位映射都在代码里调整,ReMap函数的第0层就是用来映射实际按键走线布局和标准布局的,后面的1、2、3、4...层就是映射从标准布局到自定义布局,可以去看看代码 |
Beta Was this translation helpful? Give feedback.
-
感谢讲解,明白了 |
Beta Was this translation helpful? Give feedback.
这个算法其实十分好理解。STM32的SPI1_MISO接在了U3这第一颗74HC165的串行输出上,而第二颗(U4)的串行输出又接在了第一颗的串行输入上。以此类推,总共有11颗74HC165。
用大白话说,软件上从SPI1一口气读取11个字节,那么第1个字节就是U3,第2个字节就是U4…第11个字节是U13。而每个字节,第1位对应这颗74HC165的D0,第2位对应D1…第8位对应D7。话虽如此,如果大幅度改动了按键顺序的话,重新对位也是个不小的工作量。
不知道你所值的时序偏移是什么意思(抱歉,我入行不久,还没足够的时间让我遇到老化问题【),是指时钟误差?。但是我的理解,74HC165的输出可以看作是SPI协议,它是依靠从MCU往CP脚输出的时钟信号(的上升沿)给出对应输出的。所以快点或者慢点都没关系。