4081|19

66

帖子

0

资源

一粒金砂(中级)

还是矩阵键盘,想自己做个标准键盘~~

买的键盘矩阵部分,想自己用AVR单片机写扫描软件,HID做usb发送,让这个键盘能做到和标准键盘使用起来一样,主要是能够实现 短按、长按、组合键,  现在卡在这个部分了 。 有没有大神做过这样的工作,能有键盘scan部分的源码最好了,或者给思路也行,谢谢!

点评

具体没参与过,不过据介绍应该代码固件都有开源,自己做小键盘应该也不是问题吧。  发表于 2015-4-30 11:35

回复

3411

帖子

0

资源

纯净的硅(高级)

楼主可以搜索一下GH60键盘项目
是一群玩机械键盘的geek整的,有些也是开源的
好像也是用AVR的片子
就是DIY一个完整的键盘了
注意前方烧钱示警......

点评

我大致看了一遍 玩这个键盘的烧钱之处在于 买机械键盘的东西 跟我写代码搭电路关系不大哦  详情 回复 发表于 2015-4-30 10:21
哈哈 谢啦 钱不是问题啊 现在是单位想做这个事情 在标准键盘的矩阵上还加自己的功能键 但是现在用的是很不正规的扫描机制 神奇的地方是所有想要的功能都能用。。  详情 回复 发表于 2015-4-30 08:38
个人签名So what......

回复

27

帖子

0

资源

一粒金砂(中级)

使用状态转移法写程序

点评

有8*16 个按键 这么多的按键的组合键要怎么样写  详情 回复 发表于 2015-4-22 21:26
能给具体思路吗?主要是按键扫描部分 hid已经实现  详情 回复 发表于 2015-4-22 21:07
个人签名最近研究STM32,会对库函数的源代码进行解读,会陆续更新

回复

66

帖子

0

资源

一粒金砂(中级)

盛夏之蝉 发表于 2015-4-22 20:36
使用状态转移法写程序

能给具体思路吗?主要是按键扫描部分    hid已经实现

回复

66

帖子

0

资源

一粒金砂(中级)

盛夏之蝉 发表于 2015-4-22 20:36
使用状态转移法写程序

有8*16 个按键    这么多的按键的组合键要怎么样写

点评

可以每个按键占用一个bit位,那么组合按键就很容易确定  详情 回复 发表于 2015-4-23 10:43

回复

27

帖子

0

资源

一粒金砂(中级)

哦,小法 发表于 2015-4-22 21:26
有8*16 个按键    这么多的按键的组合键要怎么样写

可以每个按键占用一个bit位,那么组合按键就很容易确定

点评

16字节?128位 然后循环128次读到1就存下位数 ? 是这个思路吗  详情 回复 发表于 2015-4-29 08:53
个人签名最近研究STM32,会对库函数的源代码进行解读,会陆续更新

回复

66

帖子

0

资源

一粒金砂(中级)

盛夏之蝉 发表于 2015-4-23 10:43
可以每个按键占用一个bit位,那么组合按键就很容易确定

16字节?128位      然后循环128次读到1就存下位数 ?



是这个思路吗

点评

嗯,使每一个按键都对应一个bit位,比如有键按下就置1,用完清零。组合键的那就同时查询对应位就可以了。  详情 回复 发表于 2015-4-29 12:23

回复

3757

帖子

0

资源

版主

8+16=24,整个状态占24位,再加上按下,抬起,长按状态32位的数据类型肯定够了.

回复

27

帖子

0

资源

一粒金砂(中级)

哦,小法 发表于 2015-4-29 08:53
16字节?128位      然后循环128次读到1就存下位数 ?



是这个思路吗

嗯,使每一个按键都对应一个bit位,比如有键按下就置1,用完清零。组合键的那就同时查询对应位就可以了。
个人签名最近研究STM32,会对库函数的源代码进行解读,会陆续更新

回复

3757

帖子

0

资源

版主

不需要循环,每个按键一个io状态对应一个键盘扫描的结果,定义一下哪个数对应哪个按键就行了.组合键是两个按键的逻辑与

回复

66

帖子

0

资源

一粒金砂(中级)

ljj3166 发表于 2015-4-30 00:35
楼主可以搜索一下GH60键盘项目
是一群玩机械键盘的geek整的,有些也是开源的
好像也是用AVR的片子
就是DIY一个完整的键盘了
注意前方烧钱示警......

哈哈  谢啦  钱不是问题啊   现在是单位想做这个事情   在标准键盘的矩阵上还加自己的功能键   


但是现在用的是很不正规的扫描机制   神奇的地方是所有想要的功能都能用。。


回复

66

帖子

0

资源

一粒金砂(中级)

ljj3166 发表于 2015-4-30 00:35
楼主可以搜索一下GH60键盘项目
是一群玩机械键盘的geek整的,有些也是开源的
好像也是用AVR的片子
就是DIY一个完整的键盘了
注意前方烧钱示警......

我大致看了一遍    玩这个键盘的烧钱之处在于 买机械键盘的东西  跟我写代码搭电路关系不大哦

回复

3757

帖子

0

资源

版主

标准键盘的键码是固定的,扩展功能键是有预留的.
怀疑你走错路了.

点评

我介绍下这个小项目 1.购买了一个笔记本的小键盘 , 出来是排线, 这个小键盘是没有mcu的 只是交出来它的矩阵的row0-7 和 col0-15 2.所以在8*16的矩阵中的键位是固定的 ,128个位置中 笔记本的键  详情 回复 发表于 2015-4-30 13:32

回复

66

帖子

0

资源

一粒金砂(中级)

huo_hu 发表于 2015-4-30 11:18
标准键盘的键码是固定的,扩展功能键是有预留的.
怀疑你走错路了.

我介绍下这个小项目   



1.购买了一个笔记本的小键盘 , 出来是排线, 这个小键盘是没有mcu的  只是交出来它的矩阵的row0-7 和 col0-15



2.所以在8*16的矩阵中的键位是固定的 ,128个位置中 笔记本的键盘只占用了其中的80+个, 剩下的做成设备上需要添加的的专门的功能键 ,也在键盘扫描里一起扫



3.标准键盘键码保持固定,也还是用usb发,   添加的按键用串口协议与上位机通信

点评

标准键盘能够同时检测到多按键,不知道怎么实现的。 我曾写过一个3*2的矩阵键盘,其实就6个按键,检测的时候最多能检测出按下特定的3个键,某些情况下分辨不出是按下了3个键还是4个键。 所以关于矩阵键盘,估  详情 回复 发表于 2015-5-9 16:18

回复

24

帖子

0

资源

一粒金砂(初级)

做完后能分享吗~~~~~~~~~~~~

回复

1199

帖子

0

资源

纯净的硅(高级)

哦,小法 发表于 2015-4-30 13:32
我介绍下这个小项目   



1.购买了一个笔记本的小键盘 , 出来是排线, 这个小键盘是没有mcu的  只是交出来它的矩阵的row0-7 和 col0-15



2.所以在8*16的矩阵中的键位是固定的 ,128个位置中 笔记本的键盘只占用了其中的80+个, 剩下的做成设备上需要添加的的专门的功能键 ,也在键盘扫描里一起扫



3.标准键盘键码保持固定,也还是用usb发,   添加的按键用串口协议与上位机通信

标准键盘能够同时检测到多按键,不知道怎么实现的。
我曾写过一个3*2的矩阵键盘,其实就6个按键,检测的时候最多能检测出按下特定的3个键,某些情况下分辨不出是按下了3个键还是4个键。


所以关于矩阵键盘,估计最多也是只能检测出三个键来,还是特定的三个键。同时按下4个键恐怕很多时候都无法检测出来。

点评

调试过程中出现了一种情况 如果按下的三个键组成一个直角三角形,那么能与这三个键构成矩形的那个键也会被识别为低电平 我以为这就是四个按键被舍弃的原因吧  详情 回复 发表于 2015-5-11 08:26

回复

1199

帖子

0

资源

纯净的硅(高级)

http://bbs.eeworld.com.cn/thread-461639-1-1.html
昨天刚刚发的帖子,关于矩阵键盘的一些思路。

回复

66

帖子

0

资源

一粒金砂(中级)

qiushenghua 发表于 2015-5-9 16:18
标准键盘能够同时检测到多按键,不知道怎么实现的。
我曾写过一个3*2的矩阵键盘,其实就6个按键,检测的时候最多能检测出按下特定的3个键,某些情况下分辨不出是按下了3个键还是4个键。


所以关于矩阵键盘,估计最多也是只能检测出三个键来,还是特定的三个键。同时按下4个键恐怕很多时候都无法检测出来。

调试过程中出现了一种情况


  如果按下的三个键组成一个直角三角形,那么能与这三个键构成矩形的那个键也会被识别为低电平  



我以为这就是四个按键被舍弃的原因吧

点评

算法问题吧。我做的2*3键盘在很多时候能够分辨出按下了哪3个键。所以你的标准键盘应该能分辨出更多按键吧 估计为了保证特定组合键的识别率,它们在矩阵的排布上有特殊的设计,可以参考我上一条回复链接中的帖子,  详情 回复 发表于 2015-5-11 10:43

回复

1199

帖子

0

资源

纯净的硅(高级)

哦,小法 发表于 2015-5-11 08:26
调试过程中出现了一种情况


  如果按下的三个键组成一个直角三角形,那么能与这三个键构成矩形的那个键也会被识别为低电平  



我以为这就是四个按键被舍弃的原因吧

算法问题吧。我做的2*3键盘在很多时候能够分辨出按下了哪3个键。所以你的标准键盘应该能分辨出更多按键吧

估计为了保证特定组合键的识别率,它们在矩阵的排布上有特殊的设计,可以参考我上一条回复链接中的帖子,不过我这个是2*3的按键,你要识别多按键,势必需要更为复杂的逻辑。

点评

我这个设计没有去指定特定的组合键 只是舍弃了四个按键 若按下第四个键我是直接舍弃的  详情 回复 发表于 2015-5-11 14:09

回复

66

帖子

0

资源

一粒金砂(中级)

qiushenghua 发表于 2015-5-11 10:43
算法问题吧。我做的2*3键盘在很多时候能够分辨出按下了哪3个键。所以你的标准键盘应该能分辨出更多按键吧

估计为了保证特定组合键的识别率,它们在矩阵的排布上有特殊的设计,可以参考我上一条回复链接中的帖子,不过我这个是2*3的按键,你要识别多按键,势必需要更为复杂的逻辑。

我这个设计没有去指定特定的组合键     只是舍弃了四个按键  若按下第四个键我是直接舍弃的

回复
您需要登录后才可以回帖 登录 | 注册

关闭
站长推荐上一条 1/6 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表