poll机制按键驱动

poll机制按键驱动

ID:5563695

大小:180.50 KB

页数:14页

时间:2017-12-18

poll机制按键驱动_第1页
poll机制按键驱动_第2页
poll机制按键驱动_第3页
poll机制按键驱动_第4页
poll机制按键驱动_第5页
资源描述:

《poll机制按键驱动》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Poll机制按键驱动实验器材:ok6410开发板RedHat5.0实验目的:利用poll机制来测试按键驱动实验原理:从上图可以得出:<1>当按键没有按下时,为高电平;当按下时,为低电平<2>S[2-7]按键分别对应的是外部中断XEINT[0-5]驱动程序:#include#include#include#include#include#include#include#in

2、clude#include#include#include#include#include#include#include#defineGPNCON0x7F008830#defineGPNDAT0x7F008834volatileunsignedlong*s3c6410_GPNCON;volatileunsignedlong*s3c6410_GPNDAT;s

3、taticstructclass*mythird_key_class;staticstructdevice*mythird_key_class_dev;staticDECLARE_WAIT_QUEUE_HEAD(key_waitq);//定义一个等待队列头/*中断事件标志, 中断服务程序将它置1, read函数将它置0*/staticvolatileintev_press=0;/*键值:按下时,0x01,0x02,0x03,0x04,0x05,0x06*//*键值:松开时,0x81,0x82,0x83,0x84,0x85,0x86*/staticunsignedintkeyvals;stru

4、ctmythird_key{unsignedintirq_no;unsignedintkey_val;unsignedintnum;char*name;};staticstructmythird_keythird_keys[6]={{IRQ_EINT(0),0x01,0,"KEY1"},{IRQ_EINT(1),0x02,1,"KEY2"},{IRQ_EINT(2),0x03,2,"KEY3"},{IRQ_EINT(3),0x04,3,"KEY4"},{IRQ_EINT(4),0x05,4,"KEY5"},{IRQ_EINT(5),0x06,5,"KEY6"},};staticirqretu

5、rn_tmykey_handle(intirq,void*dev_id){intnum;unsignedinttmp;unsignedintpinval;structmythird_key*pindesc=(structmythird_key*)dev_id;num=pindesc->num;tmp=readl(S3C64XX_GPNDAT);pinval=(tmp&(1<key_val

6、0x80;}else//按下{keyvals=pindesc->key_val;}ev_press=1;wake_up_inte

7、rruptible(&key_waitq);returnIRQ_RETVAL(IRQ_HANDLED);}staticintmythird_key_open(structinode*inode,structfile*file){/*配置GPN[0-5]为中断引脚*/inti=0;interr;for(i=0;i

8、third_keys[i]);}return0;}staticintmythird_key_close(structinode*inode,structfile*file){inti=0;for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。