主題:鍵盤問題 共有45007人關注過本帖 |
---|
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()讀出所需要的鍵碼值。
|
|
單帖管理 | 引用 | 回復 |