主题:键盘问题

  共有25035人关注过本帖    
kchmn
1楼


键盘问题  发帖心情 Post By:2005-10-31 21:05:00   [只看该作者]

我用的是RS232i系统,在键盘接口方案里,提到“英创嵌入式网络模块用户手册提供了标准4×5矩阵键盘的键码对照表”,请问对照表在什么文件里?我没有找到。pc_key.cpp为4X5键盘驱动?

在ETR232i 嵌入式网络模块开发评估底板手册V5.02中,提到“接口可接标准4×5 矩阵键盘,使用1—9 脚”,在阅读pc_key.cpp后,发现GPIO等PIN脚都有用到。 如果只用CN10的1-9键作为keypad输入,是否可行?(GPIO想用做IO)

问中还提到“ETR232i 本身提供的GPIO 为8 位,由于评估底板上用GPIO5-GPIO7 作了实时时钟的扩展电路”,然而在pc_key.cpp文件中,keycode定义了4X7的键位?并且GPIO0-7都被赋予了定义,请问,GPIO5-7的重复定义是否有影响? 

最后,在keypad.cpp中,timer1被用做interrupt,timer1在ETR232I。CPP中,还被用做schedular,这样的重复应用,会对时钟控制系统的准确性造成影响。

  单帖管理 | 引用 | 回复 回到顶部
x10
2楼


  发帖心情 Post By:2005-10-31 22:12:00   [只看该作者]

在ETR232i V8的中,GPIO[0..7]的配置如下:
(1)GPIO5, GPIO6, GPIO7作为接评估底板的串行RTC芯片HT1380
(2)若需要用4x7矩阵键盘,GPIO1, GPIO3, GPRS_PWR, GPRS_STB作为矩阵键盘的扫描输入,而GPIO0, GPIO2, GPIO4作为编码的扫描输出,通过评估底板上的74HC138译码生成KOUT[0..6]。所以说可以实现4x7的矩阵键盘。
(3)若在应用中需要用GPRS/CDMA功能,则只能实现2x7的矩阵键盘。
(4)我记得在PC_KEY.CPP中没有用到所有的GPIO吧?明天会确认一下,并给出答复。

在新板的ETR232i(V11)中,
(5)RTC被移至ETR232i模块内部,这样GPIO5,GPIO6,GPIO7就被释放出来,可以用做别的功能。
(6)新板的4x7矩阵键盘配置,用GPIO5和GPIO7作为扫描输入,这样矩阵键盘就和GPRS没关系,而GPIO6还可以用来作LCD的背光控制。
(7)在矩阵键盘中确实用了timer1的定时中断,而ETR232i.cpp中只是给出timer1定时中断服务程序的框架,并不意味着给timer1加载不同的功能,原则上讲,一个硬件资源只能实现一个用途,除非软件上做专门设计。

请告诉你的模块的版本号,由于我们目前ETR232i正处于版本升级的过度期,可能会给客户造成一些误会,还请广大客户多多指出,便于我们进一步改进工作,更好地为大家服务,谢谢。

  单帖管理 | 引用 | 回复 回到顶部
kchmn
3楼


  发帖心情 Post By:2005-10-31 23:28:00   [只看该作者]

我的板子版本是v9,我不需要用到4X7的键盘,虽然从贵公司购买了一个4X5的键盘,但是还是觉得太多,可能会自己做个3X4 或3X2的。 也就是一说只用得了7/5个PIN。

还有多一个问题,贵公司提供的4X5标准键盘一共连出去了16了PIN,既然标准键盘只需n + m的PIN(n x m 键盘)。请问是怎么连的?在做的过程中有什么要注意的吗?

  单帖管理 | 引用 | 回复 回到顶部
x10
4楼


  发帖心情 Post By:2005-11-1 9:11:00   [只看该作者]

那就使用2x7的配置:GPIO0,2,4做编码扫描,生成KOUT,你可只用KOUT[0..5],扫描输入GPIO1, GPIO3,这样可实现12个键,在制作上排成3x4或3x2即可。其余的GPIO[5..7]可以用作它用。16PIN的“键盘”接口是考虑有些客户需要从该接口接复位键,面板的LED指示等需求。

  单帖管理 | 引用 | 回复 回到顶部
kchmn
5楼


  发帖心情 Post By:2005-11-1 9:51:00   [只看该作者]

好的,我试试。 谢谢。你们的回复确实很及时:D

  单帖管理 | 引用 | 回复 回到顶部
kchmn
6楼


  发帖心情 Post By:2005-11-3 11:05:00   [只看该作者]

x10先生,在你的回答中提到“在矩阵键盘中确实用了timer1的定时中断,而ETR232i.cpp中只是给出timer1定时中断服务程序的框架,并不意味着给timer1加载不同的功能,原则上讲,一个硬件资源只能实现一个用途,除非软件上做专门设计。”

想顺便问一下,R1610C的timer0在底层程序中有用到吗?如果没有的话,可不可以自己编译一个程序来运用timer0?

 再有,ETR232i用的R1610C timer0, timer1的默认时钟频率是96MHz,16bit, 每8个cycle产生一个tick, 也就是说12MHz, 理论最小interrupt是83.3micro-s. 16bit overflow 可以产生5.46ms的中断。 而贵公司给timer1的定义是1MHz,请问这1MHz是一个外加的时钟产生的吗?

  单帖管理 | 引用 | 回复 回到顶部
x10
7楼


  发帖心情 Post By:2005-11-3 11:23:00   [只看该作者]

timer0是系统时钟,按照IBM PC的规范,每秒中断18.2次,如果需要使用timer0定时,可以简单的加载int 1Ch即可,具体用法可参考我们最近在网上发布的用int 1CH实现长时间间隔watchdog的应用文章。1MHz是用内部的timer2生成的。

  单帖管理 | 引用 | 回复 回到顶部
jethawk
8楼


  发帖心情 Post By:2005-11-10 4:24:00   [只看该作者]

x10你好,v11版的gpio能不能直接挂3.3v的元件上去?很急.

  单帖管理 | 引用 | 回复 回到顶部
hellen
9楼


  发帖心情 Post By:2005-11-10 9:21:00   [只看该作者]

ETR232I 的GPIO原本就是3.3V的,当然可以

  单帖管理 | 引用 | 回复 回到顶部
潘凤晓
10楼


  发帖心情 Post By:2006-7-12 8:31:00   [只看该作者]

我想知道键盘上的各键位的键码表。例如ALT_F为0x2100,其他的为多少?

  单帖管理 | 引用 | 回复 回到顶部
x10
11楼


  发帖心情 Post By:2006-7-12 9:00:00   [只看该作者]

找一本PC的书,上面有所有的键码表,或则用bioskey()读出所需要的键码值。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

键盘问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: