MSP430F2272 P2口中断 中断标志问题

[复制链接]
3077|8
 楼主| gdmgb520 发表于 2010-11-24 17:01 | 显示全部楼层 |阅读模式
问题描述:IO口的某些位在没有开启中断的情况,如果把DIR设置为输出,会产生中断标志IFG。

测试代码:
  1. #pragma vector=PORT2_VECTOR
  2. __interrupt void P2__ISR(void)
  3. {
  4.         if ( P2IFG & BIT3 )
  5.         {
  6.                 asm("NOP");
  7.         }
  8.         if ( P2IFG & BIT5 )
  9.         {
  10.                 asm("NOP");
  11.         }
  12.         P2IFG = 0;
  13. }
  14. void main(void)
  15. {
  16.     WDTCTL = WDTPW + WDTHOLD;                 // Stop Watchdog Timer
  17.         BCSCTL1 = CALBC1_1MHZ;                    // Set DCO to 16MHz
  18.         DCOCTL = CALDCO_1MHZ;

  19.         P2DIR |= BIT0 + BIT4;        //执行该语句时P2IFG会变为0x10,即P2IFG4=1;
  20.         //由于F2272IO口方向默认为输入,所以这里省掉了配置中断时的方向设置
  21.         P2IES |= BIT3 + BIT5;        //下降沿触发
  22.         P2IE |= BIT3 + BIT5;
  23.     _EINT();     //开总中断

  24.         while(1)
  25.         {
  26.                
  27.         }
  28. }





P2DIR |= BIT0 + BIT4;
//执行该语句时P2IFG会变为0x10,即P2IFG4=1;
感觉问题很奇怪,虽然不影响我现在的程序,但是希望搞清楚原因。

希望大家指点一下。

评分

参与人数 1威望 +1 收起 理由
zsbest7736 + 1 我很赞同

查看全部评分

3B1105 发表于 2010-11-25 20:47 | 显示全部楼层
不应该呀,如果是这样的话,bit0的IFG也应该置位吧
dl_shuang 发表于 2010-11-25 21:17 | 显示全部楼层
P2IN在P2DIR为输入态设置时,是一个状态。在 P2DIR设为输出态时,P2IN与外界的联系断了,又变为另一个状态,这触发了中断标志。
看看你的硬件,当P2.4为输入态时,引脚电平是否为低?
 楼主| gdmgb520 发表于 2010-12-3 11:22 | 显示全部楼层
谢谢楼上,我检查一下。
 楼主| gdmgb520 发表于 2010-12-3 16:58 | 显示全部楼层
我有看了下,得到了一下结论

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而产生。

另外,我把IO口中断的使用要注意的几点总结了一下,大家可以帮我指正一下。我的博客http://www.benp366.com/article.asp?id=215
金鱼木鱼 发表于 2010-12-5 18:17 | 显示全部楼层
你断点调试试试!
流泪鲨鱼 发表于 2010-12-10 08:45 | 显示全部楼层
dewcwso 发表于 2010-12-10 10:27 | 显示全部楼层
dewcwso 发表于 2010-12-10 10:28 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:了解新东西才知道自己的不足。 www.elecbench.com

67

主题

452

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部