【问题标题】:Watch Dog Timer看门狗定时器
【发布时间】:2012-02-23 11:32:35
【问题描述】:

有什么方法可以编写类似于 WDT 的代码吗?如果您有任何建议或 src 代码非常感谢。我没有找到合适的解决方案。

我在网上得到的答案几乎都是针对特定芯片组的。但我需要类似于 WDT 类型的实现。众所周知,WDT 是一个从某个初始值倒数到零的计数器。在达到最小值之前,程序必须响应,否则会触发中断。

int counter = reset_counter();
while(counter!=0) {
     // mode = return value of function which is boolean.
     if (mode) {
      // check return if true reset counter
      reset_counter();
     }
     counter--;

}

我不知道我的代码是否正常工作! 我想使用的语言是 C/C++。

【问题讨论】:

  • "我想使用的语言是 C/C++。"恐怕没有这种语言
  • 不好意思,第一次看到代码,可能是c# ;) 更正了。
  • C/C++ 是当您将 printf/scanf 与 cout 和 vector 一起使用时:)
  • 是嵌入式系统吗?如果是,您应该真正使用该系统提供的那个,而不是尝试自己实现一个。
  • 除了发布消息之外,还可以使用其他概念,例如命名事件。我在 WindowsCE 上处理这种机制,如果一个函数没有被足够频繁地调用,设备就会自行重置。所以任何长循环和应用程序都死了。最后我最终创建了单独的线程来调用这个函数。我想如果您的应用程序由于数据中止而停止运行,WDT 会很有帮助,然后设备将重置应用程序并且用户将能够再次使用软件。我想 Visual Studio 使用某种 WDT 机制,当它挂断时它总是会自行重启。

标签: c++ c timer watchdog


【解决方案1】:

您在嵌入式系统上工作吗?为什么不使用计时器?通常他们会数数......但这没关系。最后它会在溢出时创建一个中断。

要确定您的代码是否正常工作,您必须自己进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2012-10-24
    • 1970-01-01
    相关资源
    最近更新 更多