主题:9710 非标准键盘的端口扫描函数 如何实现 共有37107人关注过本帖 |
---|
客人 |
1楼 |
9710 非标准键盘的端口扫描函数 如何实现 Post By:2014-4-24 16:11:00 [只看该作者]
你好。
我们之前使用的是9161的板子, 现在换用9170的开发板, 把原来的程序移植到9170上。 原来使用9161的时候, 自己做了一个8×8的键盘扫描程序, 不是标准键盘。 当时你们通过动态链接库的方式,提供了对键盘端口的查询与设置函数, 分别为: /////////////////////////////////////////////////////////////////////////////////////// // 功能描述:返回DIN的8bit状态。 /////////////////////////////////////////////////////////////////////////////////////// UCHAR DIN( ); /////////////////////////////////////////////////////////////////////////////////////// // 功能描述:设置DOUT的8bit状态。 /////////////////////////////////////////////////////////////////////////////////////// void DOUT( UCHAR ucValue ); 现在换为9170之后, SDK中没有相应的函数。 我仔细看了稳定, 没有找到 DOUT对应的管脚, 而且, 也不能通过ISA总线获得其值。 看看你们能不能再提供以下这两个函数的实现方法。 十分感谢。 |
|
单帖管理 | 引用 | 回复 |
客人 |
2楼 |
联系方式 Post By:2014-4-24 16:14:00 [只看该作者]
忘了留联系方式了 ,我的邮箱是 250855061@qq.com。
:) |
|
单帖管理 | 引用 | 回复 |
lqk |
3楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2014-4-24 16:55:00 [只看该作者]
针对EM9161,我们做了一个升级板本EM9171,EM9171硬件完全兼容EM9161,可以直接插在你原来针对EM9161做的应用底板上。
下面是EM9171的介绍,供参考:http://www.emtronix.com/case/case2014641.html
[此贴子已经被作者于2014-4-24 16:58:29编辑过]
|
单帖管理 | 引用 | 回复 |
yy |
4楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2014-4-24 17:02:00 [只看该作者]
是的,看手册,9170只有DIN,没有DOUT。但是你可以用GPIO来实现DIN和DOUT的功能。这个要看你9170引脚准备用哪些GPIO引脚来做这个功能了。
如果你就用9170的DIN的引脚做DIN,那么可以这么实现 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; // 读写数据块长度,以字节为单位
sa_block.dwSeg = 2; // 使用ISA_CS2#
isa_block.pBuf = &Buf; // 读写数据buffer指针
bRet = ReadFile( m_hISA, (LPVOID)&isa_block, sizeof(ISA_BUS_BLOCK_ACCESS), &dwLen, NULL );
return Buf; } 如果你用GPIO16-23来做DOUT那么可以这样 void
DOUT(UCHAR ucValue){
BOOL bRet;
unsigned int uBits;
//设置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:");得来的。 这些是一个参考的思路。实际上,我们针对9161的老客户,弄了个9171,芯片和9170一样,但是接口完全兼容9161,程序移植比较方便,你可以考虑下。
[此贴子已经被作者于2014-4-24 17:04:32编辑过]
|
单帖管理 | 引用 | 回复 |