This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

问一个F5xx P1和P2中断标志的问题



手册 http://www.ti.com.cn/cn/lit/ug/slau208k/slau208k.pdf  的第409页最开头的地方有个标注:

NOTE: PxIFG flags when changing PxOUT, PxDIR, or PxREN
Writing to P1OUT, P1DIR, P1REN, P2OUT, P2DIR, or P2REN can result in setting the
corresponding P1IFG or P2IFG flags.

这句话的意思我不确定,看英文说的是 改变PxOUT, PxDIR, or PxREN 的内容会置位中断标志PxIFG。

当对P1OUT, P1DIR, P1REN 和 P2OUT, P2DIR,  P2REN 寄存器进行写操作时,会置位相应的中断标志位。

 

我想问的是:

如果刚开始P1IFG的值是 0x00,P1OUT的值是0x55,那么当我对P1OUT写0x15的时候,P1IFG的值是0xFF 还是 0x40?

换句话说,如果我对P1OUT写入一个值,P1IFG的8个位全都置位 还是说只有P1OUT改变的位对应的IFG位才置位?

  • 你好!

    这个问题应当这样理解。因为MSP430IO引脚配置成输出的时候,IO输入部分机制仍旧可以工作。那么,修改PXOUT、PXDIR、PxREN会影响对应IO状态,触发对应引脚的中断标志位。如果将对应引脚配置成输入,修改PXOUT不会触发对应引脚中断标志。但是修改PXDIR、PXREN仍会可能触发对应IO状态

  • 你好,请看下面的注释:

    Heng Zhao 说:

    手册 http://www.ti.com.cn/cn/lit/ug/slau208k/slau208k.pdf  的第409页最开头的地方有个标注:

    NOTE: PxIFG flags when changing PxOUT, PxDIR, or PxREN
    Writing to P1OUT, P1DIR, P1REN, P2OUT, P2DIR, or P2REN can result in setting the
    corresponding P1IFG or P2IFG flags.

    这句话的意思我不确定,看英文说的是 改变PxOUT, PxDIR, or PxREN 的内容会置位中断标志PxIFG。

    当对P1OUT, P1DIR, P1REN 和 P2OUT, P2DIR,  P2REN 寄存器进行写操作时,会置位相应的中断标志位。

     

    我想问的是:

    如果刚开始P1IFG的值是 0x00,P1OUT的值是0x55,那么当我对P1OUT写0x15的时候,P1IFG的值是0xFF 还是 0x40?

    换句话说,如果我对P1OUT写入一个值,P1IFG的8个位全都置位 还是说只有P1OUT改变的位对应的IFG位才置位?

    [Leon]
    这句话可以这么理解,当PxOUT, PxDIR, or PxREN 发生改变的时候,那么PxIFG会进行相应的置位操作;
    当对P1OUT, P1DIR, P1REN 和 P2OUT, P2DIR,  P2REN 寄存器进行写操作时,会置位相应的中断标志位,但是这句话的前提是“写入的数据有改变”。
    因此,对于你的例子,P1OUT中状态改变的位的相应PxIFG会置位,产生中断;