LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1448|回复: 0

如何配置AT91RM9200 PA16/EMDIO/IRQ6 引脚为功能B的IRQ6功能

[复制链接]
发表于 2007-11-6 13:30:53 | 显示全部楼层 |阅读模式
linux-2.4.27 触摸屏驱动程序 硬件连接如下:触摸屏芯片7843 的中断输出引脚/PENIRQ <-----> PA16/EMDIO/IRQ6也就是要使用PIOA 的第16线的IRQ功能接受 触摸屏产生的中断信号。我对这个中断线的配置如下:AT91C_SYS->MC_PCER = 1 << AT91C_ID_PIOA; //打开PIOA外围时钟AT91C_SYS->IOA_PDR = AT91C_PA16_IRQ6; // 禁止PIOA功能AT91C_SYS->IOA_BSR = AT91C_PA16_IRQ6; // 选择功能B,即IRQ在内核中的触摸屏驱动已经成功编译,中断分配也成功了,分配的中断号为31(AT91C_ID_IRQ6),但是当执行读取触摸屏文件/dev/touchscreen/0raw,即cat 此文件时,显然打开成功,但用手按下屏幕,此时好像LINUX内核不能接受到产生的中断,因为没有进入中断服务函数ads7843_ts_interrupt,这个函数是在request_irq中指定的,我已经跟踪了这个信息,但此时电平是有正常的,即按下屏时,电平拉低,并且 cat /proc/interrupts 显示的关于这个中断次数也不会变化,总之一句话,内核没有很“正常”的采集到中断信号,而中断信号的产生是正常的,即/PenIrq引脚的电平变化正常,触摸时,电平为低;松开为高;如果想使用PIOA的16引脚 的IRQ功能的话,应该如何配置 ?我上面的三项可以了吗?已经配置为使用外设功能B了吧?其它地方还要注意吗?就拿使用中断线来说 另外问一下:怎么样才算触摸屏的驱动成功了呢?如果编写一个用户测试程序,利用read读取触摸屏文件/dev/touchscreen/0raw,并打印出读取的值信息,因为read默认要阻塞,如果不按下触摸屏闺将会阻塞,如果按下触摸屏此时应该立即打印出读取的值信息,这样算不算驱动程序已经“好”了呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表