- 论坛徽章:
- 0
|
static void Scan_Keyboard(void)
{
unsigned char IOValue = 0;
这一行是没有的-----//IOValue |= 0xfff8; // 0 1 2是输出值0
writel(0xfff8,S3C64XX_GPNDAT);
Port_Init();/*012 output 4 5 6 9 是input*/
IOValue = readl(S3C64XX_GPNDAT);
printk("4569IOVAlue = %d...\n",IOValue);
if((IOValue & (1 << 4)) == 0)
COLVAL = 1;
else if((IOValue & (1 << 5)) == 0)
COLVAL = 2;
else if ((IOValue & (1 << 6)) == 0)
COLVAL = 3;
else if((IOValue & (1 << 9)) == 0)
COLVAL = 4;
//反转
writel(0xfd8f,S3C64XX_GPNDAT);
port_init();/*012是input 4 5 6 9是output*/
IOValue = readl(S3C64XX_GPNDAT);
printk("123IOvalue = %d...\n",IOValue);
if((IOValue & 1) == 0)
ROWVAL = 1;
else if((IOValue & (1 << 1)) == 0)
ROWVAL = 2;
else if((IOValue & (1 << 2)) == 0)
ROWVAL = 3;
writel(0x2a,S3C64XX_GPNCON);//把0 1 2 重新设置成中断模式
} |
|