- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
s3c2410按键驱动完整版
/* 2410 中断按键驱动*基于s3c2410的16个按键驱动,采用中断的方式,实现了阻塞和非阻塞,并用定时*器进行了消抖处理消抖,也实现的异步通知,POLL机制,每个源文件我都加了比较 *详细的注释。各位刚刚学习ARM/Linux *驱动的同学可以参考。*/// button_irq_driver .c 驱动源文件 // button_irq_test.c 应用程序---按键测试(open可实现阻塞和非阻塞)// button_poll_test.c 应用程序---poll机制按键测试// button_fasync.c 应用程序---异步通知方式按键测试/* button_irq_driver .c */#includelinux/module.h#includelinux/init.h#includelinux/fs.h#includelinux/device.h#includelinux/cdev.h#includeasm/uaccess.h#includelinux/io.h#includelinux/interrupt.h#includeasm/arch/regs-gpio.h#includelinux/poll.hstatic unsigned int buttons_major = 0;//本地结构体,表示一个按键struct fsbuttons_cdev{struct cdev *buttons_cdev; //按键设备结构体struct class *buttons_class;//所属类unsigned int key_buttons; //按键管脚电?1 /0wait_queue_head_t buttons_wq;struct timer_list button_timer;};static struct fsbuttons_cdev *fs_buttons ;//构建一个结构体,用来描述中断管脚struct fspin{int irq;int pin;char *name;int num;int row_input;int row_output;int int_put;int key_val;};static struct fspin fspin_desc[4]={{IRQ_EINT0,S3C2410_GPF0,row0, 0, S3C2410_GPF0_INP,S3C2410_GPF0_OUTP,S3C2410_GPF0_EINT0},{IRQ_EINT2,S3C2410_GPF2,row1, 1, S3C2410_GPF2_INP, S3C2410_GPF2_OUTP,S3C2410_GPF2_EINT2},{IRQ_EINT11,S3C2410_GPG3,row2, 2,S3C2410_GPG3_INP, S3C2410_GPG3_OUTP,S3C2410_GPG3_EINT11},{IRQ_EINT19,S3C2410_GPG11,row3,3, S3C2410_GPG11_INP, S3C2410_GPG11_OUTP,S3C2410_GPG11_EINT19},};struct pin_col {int pin;int col_input;int col_output;};static struct pin_col col_line[4] = {{S3C2410_GPE11,S3C2410_GPE11_INP,S3C2410_GPE11_OUTP},{S3C2410_GPG6,S3C2410_GPG6_INP,S3C2410_GPG6_OUTP},{S3C2410_GPE13,S3C2410_GPE13_INP,S3C2410_GPE13_OUTP},{S3C2410_GPG2,S3C2410_GPG2_INP,S3C2410_GPG2_OUTP},};static int key_comfirm[4][4]={{10,11,12,16},{7,8,9,15},{4,5,6,14},{1,2,3,13},};/*构建异步通知注册函数用到的结构体*/struct fasync_struct *fsbuttons_fasync;struct fspin *cur_pin;static void set_col_output(void){int i;for(i = 0;i4;i++){s3c2410_gpio_cfgpin(col_line[i].pin, col_line[i].col_output);s3c2410_gpio_setpin(col_line[i].pin,0);}}static void set_col_input(void){inti;for(i = 0;i4;i
您可能关注的文档
- 四年级语文2009—2010学年度期中检测试题(无答案) 语文S版.doc
- 新概念英语65课讲义.doc
- 八年级上英语7单元自测题.doc
- Healthy eating活页练习.doc
- java程序设计_实验5.doc
- 九年级单词2.doc
- Module 3 Heroes Unit 3 Language in use 单元学案.doc
- 黑龙江省哈三中2016届高三上学期第二次检测英语试题(word版).docx
- Cracker Recipes 四种饼干菜谱(英文).doc
- VC++6.0_一个简单的图片按钮示例.docx
- 2025年专题党课讲稿:统筹推进深层次改革和高水平开放与2025年党风廉政建设专题党课讲稿:统一思想、提高认识,推动党风廉政建设工作不断向纵深发展(2篇文).docx
- 2025年纪检机关纪委监委专题党课讲稿:继承光荣传统,做自我革命的表率、遵规守纪的标杆,打造忠诚干净担当、敢于善于斗争的纪检监察铁军与2025年学校教师专题学习党课讲稿:牢记嘱托以新气象新作为推进学校思政课建设【2篇文】.docx
- 2025年【3篇】高等学校教师专题党课学习讲稿例文.docx
- 2025年党风廉政建设专题学习辅导党课讲稿:加强党风廉政建设,勇于担当敢于作为与2024年铸牢中华民族共同体意识党课讲稿:铸牢中华民族共同体意识,书写同心共筑中国梦的崭新篇章2篇文.docx
- 2025年学校教师专题学习党课讲稿3篇范文.docx
- 2025年民政局民政系统专题党课学习讲稿【3篇】供参考.docx
- 2025年铸牢中华民族共同体意识党课讲稿:铸牢中华民族共同体意识,书写同心共筑中国梦的崭新篇章与2025年纪检监察机关专题党课讲稿:做好“四为”,做一名合格纪检监察干部(2篇文).docx
- 三篇文2025年学校教师专题学习党课讲稿.docx
- 2025年纪检监察机关专题党课讲稿:用好纪律这把管党治党“戒尺”与2025年民政局民政系统专题学习党课讲稿:强化党建引领,奋力推进民政事业高质量发展2篇文.docx
- 2025年党风廉政建设专题学习辅导党课讲稿:坚守底线,廉洁从政,以忠诚担当的干劲加强队伍党风廉政建设与2025年专题党课讲稿:坚守底线,廉洁从政,以忠诚担当的干劲加强队伍党风廉政建设【2篇文】.docx
文档评论(0)