主题:SysConfig 中讨论的其他器件
工具/软件:
您好专家
您能提供帮助来指导我如何在 SysConfig 中配置 IWDT 吗? 我查看 SDK IWDT 演示代码、无法找到配置此规格的位置、但可以看到配置是在 ti_msp_dl_config.c 文件中生成的。 另一个问题是 C1106 演示中没有 GPIO 中断处理程序、我在 G3507 演示中发现处理程序是 Group1_IQRHandler、该处理程序是否适用于 C1106?
谢谢
Joe
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.
工具/软件:
您好专家
您能提供帮助来指导我如何在 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
您好 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