mini2440驱动程序tang2440

mini2440驱动程序tang2440

ID:40712992

大小:50.50 KB

页数:13页

时间:2019-08-06

mini2440驱动程序tang2440_第1页
mini2440驱动程序tang2440_第2页
mini2440驱动程序tang2440_第3页
mini2440驱动程序tang2440_第4页
mini2440驱动程序tang2440_第5页
资源描述:

《mini2440驱动程序tang2440》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、迷你2440驱动程序tang2440_buttons.c#include#include#include#include#include#include#include#include#include#include#include

2、.h>#include#include#include#include#include#include#defineDEVICE_NAME"buttons"/*定义中断所用的结构体*/structbutton_irq_desc{    intirq;//按键对应的中断号    intpin;//按键所对应的GPIO端口    intpin_

3、setting;//按键对应的引脚描述,实际并未用到,保留    intnumber;//定义键值,以传递给应用层/用户态    char*name;//每个按键的名称};/*结构体实体定义*/staticstructbutton_irq_descbutton_irqs[]={     {IRQ_EINT8,S3C2410_GPG(0),S3C2410_GPG0_EINT8 ,0,"KEY0"},     {IRQ_EINT11,S3C2410_GPG(3),S3C2410_GPG3_EINT11,1,"KEY1"},     {IRQ_EINT

4、13,S3C2410_GPG(5),S3C2410_GPG5_EINT13,2,"KEY2"},     {IRQ_EINT14,S3C2410_GPG(6),S3C2410_GPG6_EINT14,3,"KEY3"},     {IRQ_EINT15,S3C2410_GPG(7),S3C2410_GPG7_EINT15,4,"KEY4"},     {IRQ_EINT19,S3C2410_GPG(11),S3C2410_GPG11_EINT19,5,"KEY5"},};/*开发板上按键的状态变量,注意这里是’0’,对应的ASCII码为30*/s

5、taticvolatilecharkey_values[]={'0','0','0','0','0','0'};/*因为本驱动是基于中断方式的,在此创建一个等待队列,以配合中断函数使用;当有按键按下并读取到键值时,将会唤醒此队列,并设置中断标志,以便能通过read函数判断和读取键值传递到用户态;当没有按键按下时,系统并不会轮询按键状态,以节省时钟资源*/staticDECLARE_WAIT_QUEUE_HEAD(button_waitq);/*中断标识变量,配合上面的队列使用,中断服务程序会把它设置为1,read函数会把它清零*/staticvo

6、latileintev_press=0;/*本按键驱动的中断服务程序*/staticirqreturn_tbuttons_interrupt(intirq,void*dev_id){     structbutton_irq_desc*button_irqs=(structbutton_irq_desc*)dev_id;     intdown;     /*获取被按下的按键状态*/     down=!s3c2410_gpio_getpin(button_irqs->pin);     /*状态改变,按键被按下,从这句可以看出,当按键没有被按下

7、的时候,寄存器的值为1(上拉),但按 键被按下的时候,寄存器对应的值为0*/     if(down!=(key_values[button_irqs->number]&1)){//Changed     /*如果key1被按下,则key_value[0]就变为’1’,对应的ASCII码为31*/     key_values[button_irqs->number]='0'+down;           ev_press=1;/*设置中断标志为1*/           wake_up_interruptible(&button_waitq)

8、;/*唤醒等待队列*/     }     returnIRQ_RETVAL(IRQ_HANDLED);}/* *在应用程序执行open

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

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

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