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.

[参考译文] MSP430FR5969:写入 I/O 端口 PxIFG 寄存器失败。 (Launchpad)

Guru**** 2541550 points
Other Parts Discussed in Thread: MSP430FR5969

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/904758/msp430fr5969-writing-to-i-o-port-pxifg-register-fails-launchpad

器件型号:MSP430FR5969

多年来、我很少在这里用汇编语言进行编码、多年来、我一直在使用 Launchpad 的 MSP430FR5969平台上运行非常复杂的算法。

但我今天遇到的问题是、I/O 端口寄存器 PxIFG 在清零时无法清零。  我以端口3为例、但端口1或2也是如此。

- 我已验证端口中的其他寄存器可以无问题地被写回  

-端口3具有中断功能

-已清除 SR 中的 GIE 位为0 (不允许可屏蔽中断)

P3IE 寄存器首先被清零、尽管这一点不重要、因为它只影响中断请求而不影响中断标志寄存器。

- P3OUT、P3IES 不被写入、所以 P3IFG 不能被意外的 IFG 标志置位。   

但 P3IFG 拒绝清除!

我已将主代码降至最低、以调查此问题。  

CLR.b  &P3IFG

MOV.b &P3IFG ,R4

但在 CCS 调试器中、R4值为53h 而不是0。 如果我断开电路板电源(USB 电缆)并重新连接并重新启动所有器件、我将获得另一个不会清除的随机值。

我尝试使用 CCS 调试器内存浏览器"fill memory"覆盖它。 我命令它在0x23C 处填充1个字 、这是 P3IFG 的物理地址。 我遇到错误

窗口显示:“Fill Memory Failed (填充内存失败)”。 地址0x23C 处的内存验证失败。"  P1IFG 或 P2IFG 也会发生同样的情况。 但我验证了它可以毫无问题地写入其他位置。

用户指南指出 PxIFG 是读取/写入寄存器、端口中断可由软件通过写入来触发。   

????  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Howard、

    写入这些寄存器通常不会有问题、因此我认为设置错误、可能已经过监督。 有时体验是陷阱(从我自己知道),所以尝试找出一些简单的事情发生了什么:

    1.您在 IDE 中选择了正确的器件(CCS 或 IAR)?

    2.没有任何设备连接到相应的 GPIO 引脚?

    3. PIN 寄存器是怎样的?

    LOCKLPM5位是否被清零?

    5.您能否驱动引脚?

    6.次要功能(PxSEL 寄存器)没有置位?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Dietmar Walther、

    非常感谢、 我同意。 我已经完成了您的检查清单:

    1.正确的设备2. 未连接任何设备6. 未选择辅助功能 PxSEL reg  

    5. 尝试将某些引脚驱动为高电平或低电平,但它们保持悬空,电压表显示 OL (开环)不稳定值...AHA。

    4. bingo、位 LOCKLPM5仍然被置位。 !! 我清除了它、一切都正常工作。 :-)

    感谢你的帮助。