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.

[参考译文] CC2530:终端器件中的 WDT 不被清除

Guru**** 2611705 points
Other Parts Discussed in Thread: CC2530

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/761224/cc2530-wdt-in-end-device-not-cleared

器件型号:CC2530

您好!

我们正在尝试在终端器件代码(ZStack 3.0.1)中实现看门狗计时器。

我们正在使用的器件  

WatchDogEnable( WDTIMX ); 

以启用主函数中的看门狗计时器

为了清除计数器、我们将执行以下操作:

在 OSAL_RUN_SYSTEM()中完成每个任务。

activeTaskID = idx;
事件=(TasksArr[idx])( idx,事件);
activeTaskID = task_no_task;

WDCTL |=(0xA0);<------ 已添加
WDCTL ^=(0xF0);<--- 已添加 

问题:由于看门狗计时器、它正在被复位。

问题:

1) 1)这是清除 WD 计数器的正确方法和位置吗?

2) 2)在哪里可以看到 WDT 计数器值(哪个寄存器)?

3) 3)在具有断点的调试模式下运行器件是否会导致 WDT 过期?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您必须启动周期性计时器事件才能唤醒 CC2530以启动看门狗。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、您是否意味着看门狗计时器甚至在睡眠模式(电源模式3)下也在运行?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否、但它在 PM2中运行。

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

    您建议执行以下操作:

    WatchDogEnable( WDTIMX ); 
    OSAL_START_RELOAD_TIMER (zclSampleLight_TaskID、WDT_CLEAR_EVENT、50000);

    在 main 中

    然后

    if (Events & WDT_CLEAR_EVENT)
    {
    WDCTL |=(0xA0);
    WDCTL ^=(0xF0);
    返回(事件^ WDT_CLEAR_EVENT);
    } 

    发生什么情况?

    您能否确认第一个帖子中问题的答案?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、您可以在示例光事件环路中执行该操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不管用。 复位 WD 计数器的代码是否正确?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该使用以下代码来清除看门狗。
    if (事件和 WDT_CLEAR_EVENT)

    WDCTL = 0xa0;
    WDCTL = 0x50;
    返回(事件^ WDT_CLEAR_EVENT);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Yikai、

    我们没有正确复位 WDT 计数器。

    我们已经将这个 WDT 清除序列放置在 osal_run_system()中,谢谢。