主題:9710 非標(biāo)準(zhǔn)鍵盤(pán)的端口掃描函數(shù) 如何實(shí)現(xiàn) 共有41831人關(guān)注過(guò)本帖 |
---|
客人 |
1樓 |
9710 非標(biāo)準(zhǔn)鍵盤(pán)的端口掃描函數(shù) 如何實(shí)現(xiàn) Post By:2014-4-24 16:11:00 [只看該作者]
你好。
我們之前使用的是9161的板子, 現(xiàn)在換用9170的開(kāi)發(fā)板, 把原來(lái)的程序移植到9170上。 原來(lái)使用9161的時(shí)候, 自己做了一個(gè)8×8的鍵盤(pán)掃描程序, 不是標(biāo)準(zhǔn)鍵盤(pán)。 當(dāng)時(shí)你們通過(guò)動(dòng)態(tài)鏈接庫(kù)的方式,提供了對(duì)鍵盤(pán)端口的查詢(xún)與設(shè)置函數(shù), 分別為: /////////////////////////////////////////////////////////////////////////////////////// // 功能描述:返回DIN的8bit狀態(tài)。 /////////////////////////////////////////////////////////////////////////////////////// UCHAR DIN( ); /////////////////////////////////////////////////////////////////////////////////////// // 功能描述:設(shè)置DOUT的8bit狀態(tài)。 /////////////////////////////////////////////////////////////////////////////////////// void DOUT( UCHAR ucValue ); 現(xiàn)在換為9170之后, SDK中沒(méi)有相應(yīng)的函數(shù)。 我仔細(xì)看了穩(wěn)定, 沒(méi)有找到 DOUT對(duì)應(yīng)的管腳, 而且, 也不能通過(guò)ISA總線(xiàn)獲得其值。 看看你們能不能再提供以下這兩個(gè)函數(shù)的實(shí)現(xiàn)方法。 十分感謝。 |
|
單帖管理 | 引用 | 回復(fù) |
客人 |
2樓 |
聯(lián)系方式 Post By:2014-4-24 16:14:00 [只看該作者]
忘了留聯(lián)系方式了 ,我的郵箱是 250855061@qq.com。
:) |
|
單帖管理 | 引用 | 回復(fù) |
lqk |
3樓 信息 | 搜索 | 郵箱 |
加好友 發(fā)短信 |
Post By:2014-4-24 16:55:00 [只看該作者]
針對(duì)EM9161,我們做了一個(gè)升級(jí)板本EM9171,EM9171硬件完全兼容EM9161,可以直接插在你原來(lái)針對(duì)EM9161做的應(yīng)用底板上。
下面是EM9171的介紹,供參考:http://www.huochepiao123.com.cn/case/case2014641.html
[此貼子已經(jīng)被作者于2014-4-24 16:58:29編輯過(guò)]
|
單帖管理 | 引用 | 回復(fù) |
yy |
4樓 信息 | 搜索 | 郵箱 |
加好友 發(fā)短信 |
Post By:2014-4-24 17:02:00 [只看該作者]
是的,看手冊(cè),9170只有DIN,沒(méi)有DOUT。但是你可以用GPIO來(lái)實(shí)現(xiàn)DIN和DOUT的功能。這個(gè)要看你9170引腳準(zhǔn)備用哪些GPIO引腳來(lái)做這個(gè)功能了。
如果你就用9170的DIN的引腳做DIN,那么可以這么實(shí)現(xiàn) UCHAR DIN()
{
BOOL bRet;
ISA_BUS_BLOCK_ACCESS isa_block;
UCHAR Buf;
DWORD dwLen;
isa_block.dwCmd = 0; // 恒為0
isa_block.dwOffset = 0; //偏移地址為0
isa_block.dwLength = 1; // 讀寫(xiě)數(shù)據(jù)塊長(zhǎng)度,以字節(jié)為單位
sa_block.dwSeg = 2; // 使用ISA_CS2#
isa_block.pBuf = &Buf; // 讀寫(xiě)數(shù)據(jù)buffer指針
bRet = ReadFile( m_hISA, (LPVOID)&isa_block, sizeof(ISA_BUS_BLOCK_ACCESS), &dwLen, NULL );
return Buf; } 如果你用GPIO16-23來(lái)做DOUT那么可以這樣 void
DOUT(UCHAR ucValue){
BOOL bRet;
unsigned int uBits;
//設(shè)置GPIO16-23
b0000 0000 1111 1111 0000 0000 0000 0000
bRet = GPIO_OutEnable(m_hISA, DOUT);
uBits = (ucValue << 16) & DOUT;
bRet = GPIO_OutSet(m_hISA, uBits);
uBits = (~(ucValue << 16)) & DOUT;
bRet = GPIO_OutClear(m_hISA, uBits);
return; } m_hISA是m_hISA = OpenISA_DIO(L"ISA1:");得來(lái)的。 這些是一個(gè)參考的思路。實(shí)際上,我們針對(duì)9161的老客戶(hù),弄了個(gè)9171,芯片和9170一樣,但是接口完全兼容9161,程序移植比較方便,你可以考慮下。
[此貼子已經(jīng)被作者于2014-4-24 17:04:32編輯過(guò)]
|
單帖管理 | 引用 | 回復(fù) |