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.

[参考译文] MSP430FR5949:MSP430FR5949

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/836084/msp430fr5949-msp430fr5949

器件型号:MSP430FR5949

它工作正常、但我对这个 SYSRSTIV 在我们进行计算时变为0x0016有一些疑问、但在条件 SYSTIV 变为0x000之后、为什么呢? 请您解释一下  

#include

int main (void){
// WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

if (SYSRSTIV =SYSRSTIV_WDTTO){

switch (SYSRSTIV_WDTTO){
案例 SYSRSTIV_NONE://无中断挂起*/
_no_operation();
中断;
案例 SYSRSTIV_BOR://* SYSRSTIV:BOR */
_no_operation();
中断;
案例 SYSRSTIV_RSTNMI://* SYSRSTIV:RST/NMI *
_no_operation();
中断;
案例 SYSRSTIV_DOBOR://* SYSRSTIV:执行 BOR */
_no_operation();
中断;
案例 SYSRSTIV_LPM5WU://* SYSRSTIV:端口 LPM5唤醒*/
_no_operation();
中断;
案例 SYSRSTIV_SECYV://* SYSRSTIV:安全违规*/
_no_operation();
中断;
案例 SYSRSTIV_RES0C://* SYSRSTIV:保留*/
_no_operation();
中断;
案例 SYSRSTIV_SVSHIFG://* SYSRSTIV:SVSHIFG */
_no_operation();

中断;
案例 SYSRSTIV_RES10://* SYSRSTIV:保留*/
_no_operation();
中断;
案例 SYSRSTIV_RES12://* SYSRSTIV:保留*/
_no_operation();
中断;
案例 SYSRSTIV_DOPOR://* SYSRSTIV:执行 POR */
_no_operation();
中断;
案例 SYSRSTIV_WDTTO://* SYSRSTIV:WDT 超时*/
_no_operation();
中断;
案例 SYSRSTIV_WDTKEY://* SYSRSTIV:WDTKEY 违反*/
_no_operation();
中断;
案例 SYSRSTIV_FRCTLPW://* SYSRSTIV:FRAM 密钥违反*/
_no_operation();
中断;
案例 SYSRSTIV_UBDIFG://* SYSRSTIV:FRAM 不可纠正的位错误*/
_no_operation();
中断;
案例 SYSRSTIV_PERF:// SYSRSTIV:peripheral/config area fetch */
_no_operation();
中断;
案例 SYSRSTIV_PMMPW://* SYSRSTIV:PMM 密码违规*/
_no_operation();
中断;
案例 SYSRSTIV_MPUPW://* SYSRSTIV:MPU 密码违规*/
_no_operation();
中断;
案例 SYSRSTIV_CSPW://* SYSRSTIV:CS 密码违规*/
_no_operation();
中断;
案例 SYSRSTIV_MPUSEGPIFG://* SYSRSTIV:MPUSEGPIFG 违规*
_no_operation();
中断;
案例 SYSRSTIV_MPUSEGIIFG://* SYSRSTIV:MPUSEGIIFG 违反*/
_no_operation();
中断;
案例 SYSRSTIV_MPUSEG1IFG://* SYSRSTIV:MPUSEG1IFG 违规*
_no_operation();
中断;
案例 SYSRSTIV_MPUSEG2IFG://* SYSRSTIV:MPUSEG2IFG 违规*
_no_operation();
中断;
案例 SYSRSTIV_MPUSEG3IFG://* SYSRSTIV:MPUSEG3IFG 违规*
_no_operation();
中断;
案例 SYSRSTIV_ACCTEIFG://* SYSRSTIV:ACCTEIFG 访问时间错误*/
_no_operation();
中断;
默认值:

中断;


while (1);

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

    你好、Santhosh

    默认情况下、WDT 的超时间隔为 看门狗时钟源/ 2^15。 首次加电 时、SYSRSTIV 不应为0x0016。

    此致

    Gary  

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

    感谢您的回复。 当我第一次加电时、SYSRSTIV 会像0x0004一样出现、通过使用调试器、我转到 (断点) 如果条件现在、SYSRSTIV 变为0x000、因为条件不是真的、它会转到 while、我按下运行按钮、它会在我放置之后再次变为条件 如果条件现在 SYSRSTIV 为0x0016、则会在中设置断点。 但是、如果之后条件成功完成、它会像 SYSRSTIV 0x0000为什么?

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

    > IF (SYSRSTIV =SYSRSTIV_WDTTO){

    读取 SYSRSTIV 会复位相关标志。 通常、读取它两次将为您提供不同的值。 当它耗尽标志时、它返回0。 [参考用户指南(SLAU367O)第1.3.7节]

    > switch (SYSRSTIV_WDTTO){

    此开关()使用常量(=0x16)作为标签。 这(几乎)是无用的。 这正是您想要的吗?

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

    非常感谢您的回答、我从您的发言中得到了一些想法。 但  我对 SYSRSTIV 有一些疑问、因为当我休息设备时、它突然挂起。 我不是为什么? 我开始分析 SYSRSTIV  

    switch (__evo_in_range (SYSRSTIV、SYSRSTIV_ACCTEIFG)){
    案例 SYSRSTIV_NONE://无中断挂起
    _no_operation();
    中断;
    案例 SYSRSTIV_BOR:// SYSRSTIV:BOR
    _no_operation();
    中断;
    案例 SYSRSTIV_RSTNMI://SYSRSTIV:RST/NMI (BOR)
    _no_operation();
    中断;
    案例 SYSRSTIV_DOBOR://SYSRSTIV:执行 BOR
    _no_operation();
    中断;
    案例 SYSRSTIV_LPM5WU://SYSRSTIV:端口 LPM5唤醒(BOR)
    _no_operation();
    //_bis_SR_register (LPM4_bits);
    中断;
    案例 SYSRSTIV_SECYV://SYSRSTIV:安全违规(BOR)
    _no_operation();
    中断;
    案例 SYSRSTIV_RES0C://SYSRSTIV:SVSHIFG
    _no_operation();
    中断;
    案例 SYSRSTIV_SVSHIFG:// SYSRSTIV:执行 POR
    _no_operation();

    中断;
    案例 SYSRSTIV_RES10:// SYSRSTIV:WDT 超时
    _no_operation();
    中断;
    案例 SYSRSTIV_RES12://SYSRSTIV:WDTKEY 违反
    _no_operation();
    中断;
    案例 SYSRSTIV_DOPOR:// SYSRSTIV:FRAM 密钥违反
    _no_operation();
    中断;
    案例 SYSRSTIV_WDTTO://SYSRSTIV:FRAM 不可纠正的位错误
    _no_operation();
    中断;
    案例 SYSRSTIV_WDTKEY:// SYSRSTIV:外设/配置区域获取
    _no_operation();
    中断;
    案例 SYSRSTIV_FRCTLPW:// SYSRSTIV:PMM 密码违规
    _no_operation();
    中断;
    案例 SYSRSTIV_UBDIFG://SYSRSTIV:MPU 密码违规
    _no_operation();
    中断;
    案例 SYSRSTIV_PERF:// SYSRSTIV:CS 密码违规
    _no_operation();
    中断;
    案例 SYSRSTIV_PMMPW://SYSRSTIV:MPUSEGPIFG 违反
    _no_operation();
    中断;
    案例 SYSRSTIV_MPUPW://SYSRSTIV:MPUSEGIIFG 违反
    _no_operation();
    中断;
    案例 SYSRSTIV_CSPW://SYSRSTIV:MPUSEG1IFG 违规
    _no_operation();
    中断;
    案例 SYSRSTIV_MPUSEGPIFG:// SYSRSTIV:MPUSEG2IFG 违规
    _no_operation();
    中断;
    案例 SYSRSTIV_MPUSEGIIFG:// SYSRSTIV:MPUSEG3IFG 违规
    _no_operation();
    中断;
    案例 SYSRSTIV_MPUSEG1IFG://SYSRSTIV:ACCTEIFG 访问时间错误
    _no_operation();
    中断;
    案例 SYSRSTIV_MPUSEG2IFG://SYSRSTIV:ACCTEIFG 访问时间错误
    _no_operation();
    中断;
    案例 SYSRSTIV_MPUSEG3IFG:// SYSRSTIV:ACCTEIFG 访问时间错误
    _no_operation();
    中断;
    案例 SYSRSTIV_ACCTEIFG://SYSRSTIV:ACCTEIFG 访问时间错误
    _no_operation();
    中断;
    默认值:

    中断;

    在此代码中,我想逐一介绍每个中断事件,我  想知道它何时进入  SYSRSTIV:BOR、SYSRSTIV:SVSHIFG 等。您可以提供帮助,以便它对我非常有用。非常感谢您的快速回复

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

    你(们)好  

    您可以这样做  

    unsigned short reset_event;

    RESET_EVENT_=SYSRSTIV;

    switch (RESET_EVENT)

    案例 SYSRSTIV_NONE://无中断挂起
    //切换 LED 一次;
    中断;
    案例 SYSRSTIV_BOR:// SYSRSTIV:BOR
    //两次切换 LED;
    中断;
    案例 SYSRSTIV_RSTNMI://SYSRSTIV:RST/NMI (BOR)
    //切换 LED 三次
    中断;

    因此、您可以通过 LED 信号了解复位事件。

    此致

    Gary