TI中文支持网
TI专业的中文技术问题搜集分享网站

为什么改变IO口PxIN或则PxOUT 会进入IO口中断

项目采用MSP430F4152,P1口使能了BIT0中断,P1.5是按键,按键输入,为什么P1IN检测到按键按下会进入IO口中断?中断BIT5的确置位了。。。。

这种现象是否正常?

灰小子:

 是不是P1口的中断都使能了?

方便的话建议上传下源代码。

P1口的所有io都使用的同一个中断向量,但是如果没使能的io应该不会进入中断服务程序。

也可以在中断服务程序里做下判断,看是哪个io引起的中断,不是期望的io不进行任何操作。

user3673947:

回复 灰小子:

// P1.0 IO口中断
P1DIR &=~ BIT0//输入
P1IES &=~ BIT0; //上升沿
P1IFG &=~ BIT0; //清零标志
P1IE |= BIT0;//开中断
//P1.5按键
P1DIR &=~ BIT5;
按照上面初始化,IO口中断能够看到按键对应的P1IFG BIT5置位了。。。。。

灰小子:

回复 user3673947:

P1IFG BIT5置位之后,真的进入中断服务程序了吗?没使能应该是不会进入中断服务程序的,可以不管他。

Susan Yang:

请您给出详细的源码

另外建议您在中断服务程序内打断点试试,看能否能执行到

user3673947:

回复 Susan Yang:

仿真确实按键按下进入中断了,现在要确认的问题是改变IO口PxIN或则PxOUT会不会进入IO口中断,网上其他地方的帖子http://bbs.21ic.com/forum.php?mod=viewthread&tid=2396748

user3673947:

回复 Susan Yang:

网上有一个类似的帖子在中国电子网,“msp430g2553的IO中断问题”您可以搜索下。。我很确定的是改变PxIN或则PxOUT 会进入IO口中断,现在问题是怎么解决?

gaoyang9992006:

可在中断函数里进行判断是不是自己设置中断标志位发生的中断,如果不是,清理P1IFG,退出中断。如果是,处理对应 中断函数。

gaoyang9992006:

这个是设计的问题,msp430为了保证每次中断都能被捕获,只要发生中断条件都会触发中断。
依据:
PxIFG是IO口中断标志寄存器:0=中断标志不成立,1=中断条件曾经成立
无论中断是否被允许,也无论是否可以执行中断服务程序,只要对应IO口满足中断条件,PxIFG中相应位都会立即置1并保持,只能通过软件人工清除。这种机制的目的在于最大可能的保证不会漏掉每一次中断。在MSP430系列单片机中,P1口的8个中断各共用了一个中断入口,因此该寄存器另一重要作用在于判断是哪一位IO产生了中断。

gaoyang9992006:

e2echina.ti.com/…/183990
推荐下载我上传的这个资料学习,内容非常棒。

gaoyang9992006:

e2echina.ti.com/…/183990
推荐下载我上传的这个资料学习,内容非常棒。

赞(0)
未经允许不得转载:TI中文支持网 » 为什么改变IO口PxIN或则PxOUT 会进入IO口中断
分享到: 更多 (0)