MSP430F2272 IO口中断使用的几点总结

这几天调试430,要求用IO中断唤醒系统。总结了以下几点经验,在使用IO口中断时应该注意。

一、多源中断中断标志需要软件清零。

在TI数据手册指出多源中断中断标志需要由软件清理。但是我在线仿真发现定时器的时钟中断和捕获中断好像会自动清零。不过最好还是加上软件清零。而IO口中断必须使用软件清零。

二、在中断关闭的情况下中断标志仍然会被置位。

当IO口配置为中断功能后,不管是否开启中断允许(PxIE.n),当中断条件满足时,相应的中断标志PxIFG.n都会由硬件自动置1。这样能最大限度的减少丢失中断。如果在程序中要经常开关中断,建议在每次开中断之前先清零对应的中断标志位。不然可能会有问题。例如,在我的项目中需要用输入脉冲信号唤醒系统,当系统被唤醒后应该关闭该中断,而当系统进入休眠状态前应该再次开启该中断。如果此时在开启该中断之前不清零中断标志,开启中断后程序会立即进入中断服务子函数。

三、修改中断触发方式可能会使相应中断标志置位。

IO口中断触发方式有上升沿触发和下降沿触发两种。

四、另外补充两点

1、若P2IN.x = 0, P2OUT.x = 1, P2REN.x = 1, P2DIR.x = 1, P2IES.x = 0(上升沿); 修改P2REN.x = 1 则 P2IN.x = 1, P2IFG.x = 1.

2、若P2IN.x = 1, P2OUT.x = 1, P2REN.x = 0, P2DIR.x = 1, P2IES.x = 1(下降沿); 修改P2OUT.x = 0 则 P2IN.x = 0, P2IFG.x = 1.

结论:P2IN产生跳变就会是中断标志位置位,P2IN的跳变可能由于改变P2OUT或者P2DIR或者P2REN而产生。

至于为什么改变P2OUT、P2REN、P2DIR会使得P2IN发生变化,应该参考IO口的方框图。

永不止步步 发表于03-07 10:39 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号