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.

[参考译文] MSPM0C1106:在哪里配置 IWDT?

Guru**** 2524550 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1556130/mspm0c1106-where-to-configure-the-iwdt

器件型号:MSPM0C1106
主题:SysConfig 中讨论的其他器件

工具/软件:

您好专家

您能提供帮助来指导我如何在 SysConfig 中配置 IWDT 吗? 我查看 SDK IWDT 演示代码、无法找到配置此规格的位置、但可以看到配置是在 ti_msp_dl_config.c 文件中生成的。 另一个问题是 C1106 演示中没有 GPIO 中断处理程序、我在 G3507 演示中发现处理程序是 Group1_IQRHandler、该处理程序是否适用于 C1106?

谢谢

Joe

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

    您好 Joe、

    IWDT 的配置位于 SysConfig 文件中:iwdt_periodic_reset.syscfg。 您看到的 ti_msp_dl_config 文件在构建工程时会从 SysConfig 文件自动生成。

    至于演示、每个外设的每个器件都定义了中断处理程序。 您可以在 ti_msp_dl_config.h 文件中查看定义了哪些中断处理程序。 您将看到  UART_INST_IRQHandler、 BLINK_LED_TIMER_INST_IRQHandler、ADC12_0_INST_IRQHandler  等定义、它们都取决于 SysConfig 中定义的实例名称。

    此致、

    Owen

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

    你好 Owen

    对于 IWDT、我没有找到用于配置 IWDT 的特定部分。 您可以帮助说明哪个 SysConfig 部分用于 IWDT 配置?

    对于 GPIO 中断、如果您使用 SysConfig 添加 GPIO 中断、您将在生成的.h 文件中看到任何中断处理程序定义。  

    谢谢

    Joe

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

    您好 Joe、

    很抱歉混淆。 SysConfig 中似乎有一个错误、用于从 GUI 中“隐藏“IWDT 外设。 我已提交一个 TT、以便尽快修复此问题。

    GUI 应如下所示:

    解决此问题的权变措施是在程序开始时使用 DriverLib 函数、或手动操作寄存器以实现所需的配置。

    以下是 ti_msp_dl_config.c 文件中用于参考的初始化代码:

    SYSCONFIG_WEAK void SYSCFG_DL_IWDT_init(void)
    {
        /*
        *   Initialize IWDT with following settings:
        *   Watchdog Source Clock = (LFOSC Freq) / (IWDT Clock Divider)
        *                         = 32768Hz / 4 = 8.19 kHz
        *   Watchdog Period       = (IWDT Clock Divider) ∗ (IWDT Period Count) / 32768Hz
        *                         = 4 * 2^12 / 32768Hz = 500.00 ms
        */
        DL_IWDT_setClockDivider(IWDT_INST, DL_IWDT_CLOCK_DIVIDE_4);
        DL_IWDT_setTimerPeriod(IWDT_INST, DL_IWDT_TIMER_PERIOD_12_BITS);
    
        DL_IWDT_enableModule(IWDT_INST);
    }

    有关寄存器级操作、请参阅以下 TRM 参考:

    对于 GPIO 中断、没有为 GPIO 生成中断处理程序定义的原因是它们是组的一部分、不直接连接到 NVIC 表:

    您可以按组(例如 GROUP0_IRQHandler)或按端口(例如 GPIOA_IRQHandler)定义处理程序。

    此致、

    Owen

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

    你好 Owen

    您可以顺利查看 SysConfig 将在何时更新来解决此问题吗?

    谢谢

    Joe

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

    您好 Joe、

    我已经检查过、应该会在下一个版本的 SDK 中对其进行更新。

    此致、

    Owen