中断标志问题

[复制链接]
2654|18
 楼主| jiaxw 发表于 2011-9-22 19:02 | 显示全部楼层 |阅读模式
IO口的某些位在没有开启中断的情况,如果把DIR设置为输出,会产生中断标志IFG。
shimx 发表于 2011-9-22 19:04 | 显示全部楼层
代码呢
 楼主| jiaxw 发表于 2011-9-22 19:05 | 显示全部楼层
正要发呢,#pragma vector=PORT2_VECTOR

__interrupt void P2__ISR(void)

{

        if ( P2IFG & BIT3 )

        {

                asm("NOP");

        }

        if ( P2IFG & BIT5 )

        {

                asm("NOP");

        }

        P2IFG = 0;

}

void main(void)

{

    WDTCTL = WDTPW + WDTHOLD;                 // Stop Watchdog Timer

        BCSCTL1 = CALBC1_1MHZ;                    // Set DCO to 16MHz

        DCOCTL = CALDCO_1MHZ;



        P2DIR |= BIT0 + BIT4;        //执行该语句时P2IFG会变为0x10,即P2IFG4=1;

        //由于F2272IO口方向默认为输入,所以这里省掉了配置中断时的方向设置

        P2IES |= BIT3 + BIT5;        //下降沿触发

        P2IE |= BIT3 + BIT5;

    _EINT();     //开总中断



        while(1)

        {

               

        }

}
 楼主| jiaxw 发表于 2011-9-22 19:06 | 显示全部楼层
P2DIR |= BIT0 + BIT4;
//执行该语句时P2IFG会变为0x10,即P2IFG4=1;
感觉问题很奇怪,虽然不影响我现在的程序,但是希望搞清楚原因。
五谷道场 发表于 2011-9-22 19:08 | 显示全部楼层
不应该呀,如果是这样的话,bit0的IFG也应该置位吧
午夜粪车 发表于 2011-9-22 19:09 | 显示全部楼层
P2IN在P2DIR为输入态设置时,是一个状态。在 P2DIR设为输出态时,P2IN与外界的联系断了,又变为另一个状态,这触发了中断标志。
zhaoxqi 发表于 2011-9-22 19:10 | 显示全部楼层
当P2.4为输入态时,引脚电平是否为低?
 楼主| jiaxw 发表于 2011-9-22 19:12 | 显示全部楼层
谢谢楼上,我检查一下。
 楼主| jiaxw 发表于 2011-9-22 19:13 | 显示全部楼层
我有看了下,得到了一下结论

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.
午夜粪车 发表于 2011-9-22 19:14 | 显示全部楼层
P2IN产生跳变就会是中断标志位置位,P2IN的跳变可能由于改变P2OUT或者P2DIR或者P2REN而产生。
 楼主| jiaxw 发表于 2011-9-22 19:17 | 显示全部楼层
是啊,我得把IO口中断的使用好好总结下
huangchui 发表于 2011-9-22 19:25 | 显示全部楼层
我记得430的IO口设置为输出也会产生中断标志位的。
jiajs 发表于 2011-9-22 19:26 | 显示全部楼层
看datesheet,设置out和sel寄存器都会导致IFG未知
 楼主| jiaxw 发表于 2011-9-22 19:28 | 显示全部楼层
OK,结贴了,多谢大家
tuzihog 发表于 2011-9-22 23:02 | 显示全部楼层
留名明天仔细研究
teet 发表于 2011-9-23 21:31 | 显示全部楼层
嗯嗯原来如此呀
teet 发表于 2011-9-23 21:32 | 显示全部楼层
:victory:
lilihua0721 发表于 2011-9-27 21:32 | 显示全部楼层
看下datesheet就清楚了,设置out和sel寄存器都会导致IFG未知
jiahy 发表于 2011-9-27 21:50 | 显示全部楼层
老帖子了,还翻出来。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

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