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.

[参考译文] CCS/MSP430FR59941:启用 SYSNMI 中断

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/943880/ccs-msp430fr59941-enabling-of-the-sysnmi-interrupt

器件型号:MSP430FR59941

工具/软件:Code Composer Studio

您好 MSP430团队、

我有一位客户对启用 SYSNMI 中断的示例代码提出疑问。 Resource Explorer 中是否有我可以指向他的代码? 下面是他 的背景问题。

"

我正在尝试在电路板上设置 MPU、并使用 TI 提供的示例代码作为我的基础。 代码丢失了 SYSNMI 中断的使能。 您能否提供一个示例说明如何执行此操作。 我在网上发现了很多内容、但大部分内容都是 NMI、而不是 SYSNMI。

 

   //在 RST~/NMI 引脚的下降边沿上触发 NMI 中断
   SFRRPCR |= SYSNMIIES__FALLING;

   //将 RST~/NMI 引脚配置为 NMI
   SFRRPCR |= SYSNMI_NMI_L;      // RST~/NMI

 

   //启用 NMI 中断
   SFRIE1 |= NMIIE__ENABLE;

 

不过、上述代码用于 UNMI_Vector 而不是 SYSNMI_Vector。"

如果您 有任何疑问、请告诉我。

感谢您的支持!

Connor Connaughton

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

    您好 Connor、

    我不认为代码示例包含这一点、因为 NMI 源是内部的、而不是外部的。 在查看用户指南后、您客户的代码看起来正确。 我唯一的意见是在 更改 SYSNMIIES 之前手动清除该位、以确保 SFRRPCR 寄存器中的 SYSNMI 为0。 复位后、SYSNMI 位应该为0、但这可以保证它。

    //确保 SYSNMI 为零以避免触发意外的 NMI
    SFRRPCR &=~SYSNMI;
    
    // NMI 中断在 RST~/NMI 引脚
    SFRRPCR 的下降沿触发|= SYSNMIIES_FALLING;
    
    //将 RST~/NMI 引脚配置为 NMI
    SFRRPCR ||= SYSNMI_NMI/L; // RST~/NMI
    
    //启用 NMI 中断
    SFRIE1 |= NMIIE__ENABLE; 

    此致、

    James