Omap3530 的GPIO中断设置

Omap3530 的GPIO中断设置:

 

1.配置成GPIO,申请GPIO中断

omap_cfg_reg(OMAP3_KBD_GPIO);配置成gpio

if (gpio_request(OMAP3_KBD_GPIO, "kbd7279 IRQ") < 0)

printk(KERN_ERR "Failed to request GPIO%d for kbd IRQ/n");//申请GPIO为中断引脚。

2. 设置中断触发模式

set_irq_type(OMAP_GPIO_IRQ(OMAP3_KBD_GPIO),IRQ_TYPE_EDGE_FALLING);

 

3.使能中断

enable_irq(gpio_to_irq(OMAP3_KBD_GPIO));

gpio_to_irq()函数将OMAP3_KBD_GPIO映射为中断管脚,enable_irq()函数将其使能,这样该端口就设置为中断了。

 

4.申请中断

if(result = request_irq(OMAP_GPIO_IRQ(OMAP3_KBD_GPIO), &Kbd7279_ISR,0, "Ds7279", NULL))

{

printk(KERN_INFO"[FALLED: Cannot register Kbd7279_Interrupt!]/n");

return -EBUSY;

}

else

printk("[OK]/n");

 

下面是完整的设置程序:

void Setup_Kbd7279(void)

{

int i,result;

 

omap_cfg_reg(OMAP3_KBD_GPIO);

if (gpio_request(OMAP3_KBD_GPIO, "kbd7279 IRQ") < 0)

printk(KERN_ERR "Failed to request GPIO%d for kbd IRQ/n");

gpio_direction_input(OMAP3_KBD_GPIO);

set_irq_type(OMAP_GPIO_IRQ(OMAP3_KBD_GPIO),IRQ_TYPE_EDGE_FALLING);//IRQ_TYPE_EDGE_RISING

enable_irq(gpio_to_irq(OMAP3_KBD_GPIO));

//set_irq_type(OMAP_GPIO_IRQ(OMAP3_KBD_GPIO),0 );IRQ_TYPE_LEVEL_LOW

if(result = request_irq(OMAP_GPIO_IRQ(OMAP3_KBD_GPIO), &Kbd7279_ISR,0, "Ds7279", NULL))

{

printk(KERN_INFO"[FALLED: Cannot register Kbd7279_Interrupt!]/n");

return -EBUSY;

}

else

printk("[OK]/n");

send_byte(cmd_reset);

setcs1;

printk("HD7279 setup complete! --- > [OK]/n");

for(i=0;i<1000;i++);

 

write7279(decode1+7,0x1);

write7279(decode1+6,0x2);

}

 

 

这里有个地方一定要注意的,一定要确定设为中断的引脚工作在GPIO模式,如果不是,先要设置为GPIO模式。
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H5项目开发分享——用Canvas合成文字

以前曾用Canvas合成、裁剪、图片等《用H5中的Canvas等技术制作海报》。这次用Canvas来画文字。 下图中“老王考到驾照后”这几个字是画在Canvas上的&#xff0c;与在PS中打入的字非常接近&#xff0c;毫无违和感。 前面一段时间也在研读JavaScript设计模式相关的知识&#xff0…

SQLServer约束介绍

约束定义 对于数据库来说&#xff0c;基本表的完整性约束分为列级约束条件和表级约束条件&#xff1a; 列级约束条件 列级约束条件是对某一个特定列的约束&#xff0c;包含在列定义中&#xff0c;可以直接跟在该列的其他定义之后&#xff0c;用空格分隔&#xff0c;不用指定列名…

CMOS图像传感器——SNR计算

图像质量评价在计算机视觉,人工智能,高清视频传输上面有很广泛的应用。目前,图像质量评价主要分为三个方向,有参考图像的质量评价,半参考的图像质量评价,以及无参考的图像质量评价。许多时候,我们利用CIS采集的RAW DATA本身就是含噪信号,因为我们往往不知道感兴趣的像素…

Java this 关键字的用法

this 关键字的用法 this 在类中就是代表当前对象&#xff0c;可以通过 this 关键字完成当前 对象的成员属性、成员方法和构造方法的调用。 那么何时用 this? 当在定义类中的方法时&#xff0c;如果需要调用该类对象&#xff0c;就可以用 this 来表示这个对象。也就是说&#x…

TMDS——最小化传输差分信号及其协议

过渡调制差分信号&#xff0c;也被称为最小化传输差分信号&#xff0c;是指通过异或及异或非等逻辑算法将原始信号数据转换成10位&#xff0c;前8为数据由原始信号经运算后获得&#xff0c;第9位指示运算的方式&#xff0c;第10位用来对应直流平衡&#xff08;DC-balanced&…

顺大势逆小势策略之代码实现及可行性分析

阅读原文&#xff1a;quant.la/Article/Vie… 前言 资产配置多元化是投资的唯一免费午餐 —— 马克维茨。 在市场中有两种策略&#xff1a;趋势策略和震荡策略。趋势追踪策略的特点在大行情的波动段找到有效的交易信号。而震荡策略则是一种反趋势策略&#xff0c;一波大幅上涨后…

数字图像处理——中值滤波及其改进算法

一、算法介绍 中值滤波器是非线性滤波器的一个例子&#xff0c;它在保留图像特征方面非常有效。 但是&#xff0c;滤波器的窗口大小直接影响中值滤波器的性能。 较小的窗口保留了特征&#xff0c;但会导致噪声抑制的减少。 在较大窗口的情况下&#xff0c;噪声抑制很高&#xf…

Spring整合web开发

正常整合Servlet和Spring没有问题的 public class UserServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {ApplicationContext applicationContext new ClassPathXmlApplica…

环信快速集成,以及实际集成中遇到的坑

一.pod集成遇到的问题 1.直接pod 安装 pod EaseUI, :git > https://github.com/easemob/easeui-ios-hyphenate-cocoapods.git 在这个过程中&#xff0c;如果你pod已经安装了sdwebimage&#xff0c;mjrefresh等他自身包含的三方&#xff0c;就需要在你的podfile里面把这个给删…

PAFF 和MBAFF

PAFF 和MBAFF&#xff1a;当对隔行扫描图像进行编码时&#xff0c;每帧包括两个场&#xff0c;由于两个场之间存在较大的扫描间隔&#xff0c;这样&#xff0c;对运动图像来说&#xff0c;帧中相邻两行之间的空间相关性相对于逐行扫描时就会减小&#xff0c;因此这时对两个场分…

Test435678

2345鱼57洋炮456789转载于:https://www.cnblogs.com/rhxuza1993/p/9534938.html

用NPOI从DataBase到Excel '2

NPOI的C# Helper代码2 1 public static MemoryStream ExportXls(DataTable dt)2 {3 HSSFWorkbook wk new HSSFWorkbook();4 ISheet sheet null;5 6 string sheetName "Sheet1";7 if (!string.Is…

CMOS图像传感器——噪声模型

由于CMOS图像传感噪声的复杂性和不可控性,学者们一直在寻求一种能对其比较精确表的噪声模型。在图像降噪领域,为了降低算法设计的复杂度,人们普遍采用基于信道相关噪声的模型(即加性噪声),但其缺点就是不能精确地表示传感器的噪声。于是Hirakawa提出了一 种精确CMOS传感器…

TCp传输粘包问题

解决TCP网络传输“粘包”问题 当前在网络传输应用中&#xff0c;广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口&#xff08;API&#xff09;。TCP/IP传输层有两个并列的协 议&#xff1a;TCP和UDP。其中TCP&#xff08;transport control protocol&#xff0c;传…

AtomicIntegerArray和AtomicIntegerFieldUpdater

2019独角兽企业重金招聘Python工程师标准>>> AtomicIntegerArray 对int数组中元素的操作不是原子性的&#xff0c;所以存在并发操作时&#xff0c;我们应该使用AtomicIntegerArray类来代替int数组。 下面是验证演示代码&#xff1a; public class AtomicIntegerArra…

CMOS图像传感器——高动态范围

动态范围是CMOS 图像传感器中很重要的一项评价指标。动态范围指示了CMOS 图像传感器能够在同一帧图像中同时探测到的最大光强信号和最小光强信号的范围。动态范围通常用dB 形式来表示,其计算公式如下 其中Pmax 和Pmin 分别是最大非饱和光强与最小可探测光强。对于线性…

键盘绑定

1.理论: 从击键到内核,前后的执行情况,之间没有必然关联 按键->csrss.exe->win32!RawInputThread->win32k!OpenDevice->ZwCreateFile->NtCreateFile->ntIopParseDevice->nt!IoGetAttachedDevice ->IoAllocateIrp->nt!ObCreateObject->nt!IopfCal…

《Linux内核设计与实现》读书笔记(七)- 中断处理

中断处理一般不是纯软件来实现的&#xff0c;需要硬件的支持。通过对中断的学习有助于更深入的了解系统的一些底层原理&#xff0c;特别是驱动程序的开发。 主要内容&#xff1a; 什么是中断中断类型中断相关函数中断处理机制中断控制方法总结1. 什么是中断 为了提高CPU和外围硬…

入门视频采集与处理(学会分析YUV数据)

标签&#xff1a;分析码流 视频采集 RGB YUV 原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/555791做视频采集与处理&#xff0c;自然少不了要学会分析…

数字后端——时序验证

时序验证则是采用时序分析等方法验证设计是否满足时序收敛&#xff0c;这些时序检验工作包括反向标定(back-annotation)、时序与功耗的检验、时序与信号完整性的检验和当代低功耗纳米先进设计中的“多模式多端角”(MMMC&#xff0c;multi-mode multi-comer)检验。 一、反向标定…