免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: liutaolinux
打印 上一主题 下一主题

高手们!帮忙看一下!矩阵键盘扫描,程序! [复制链接]

论坛徽章:
0
21 [报告]
发表于 2011-12-02 13:17 |只看该作者
Port_Init();/*012 output 4 5 6 9 是input*/

为什么在这里面初始化呢?是不是放在的类似于open 或 probe 里面?

论坛徽章:
0
22 [报告]
发表于 2011-12-03 10:02 |只看该作者
回复 21# npuazm


    哦 我写的是input类型的驱动!没有open read 之类的函数!input类型的其实很简单的一类驱动模型!

论坛徽章:
0
23 [报告]
发表于 2011-12-03 10:04 |只看该作者
static void Scan_Keyboard(void)
{
        unsigned int IOValue = 0;
        unsigned int temp = 0;
        int i;
       
                        /*
        temp |= 0xffff;
        temp &= 0xfff0;
        writel(temp,S3C64XX_GPNDAT);
        */
        Port_Init();/*to set GPIO GPNCON*/
       
        IOValue = readl(S3C64XX_GPNDAT);
        //printk("\n 1...IOVAlue = %x...\n",IOValue);
       
        if((IOValue & (1 << 0)) == 0)
        {
                ROWVAL = 1;       
        }
        else if((IOValue & (1 << 1)) == 0)
        {
                ROWVAL = 2;               
        }
        else if((IOValue & (1 << 2)) == 0)
        {
                ROWVAL = 3;       
        }
       
        printk("\n");   //不加这句话  COLVAL没有值!!!!!!!

        for (i = 0; i<10000;i++){}  //delay

        temp |= 0xffff;
        temp &= 0xfd8f;
        writel(temp,S3C64XX_GPNDAT);
        port_init();/*to set GPIO GPNCON*/
       

        IOValue = readl(S3C64XX_GPNDAT);
       
        if((IOValue & (1 << 4)) == 0x10)
        {
                COLVAL = 1;
        }
        else if((IOValue & (1 << 5)) == 0x20)
        {
                COLVAL = 2;
        }
        else if((IOValue & (1 << 6))        == 0x40)
        {
                COLVAL = 3;       
        }
        else if((IOValue & (1 << 9))        == 0x200)
                {
                COLVAL = 4;       
        }
               
}


有printk()   COLVAL 判断正确,没有就没值!大牛们帮俺看一看呗!

论坛徽章:
0
24 [报告]
发表于 2011-12-03 10:05 |只看该作者
本帖最后由 liutaolinux 于 2011-12-03 16:06 编辑

回复 21# npuazm


    其实那是扫描函数的 反转扫描!不算初始化!只是改变CON输出 输入状态!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP