巧用看门狗重启arduino

1,062 阅读1分钟

今天在设计重启功能的时候,发现 arduino avr 板子没有软件 reset 的功能。 不过这个难不倒我,我记得以前为了防止arduino板子意外故障而使用的软件看门狗。

#include <avr/wdt.h>

我们先导入 avr 看门狗的头文件。

void setup() {
    MCUSR = 0;
    wdt_disable();
}

在 setup 里初始化看门狗,默认将其禁用。

void reset() {
    wdt_enable(WDTO_15MS);
    for (;;) {}
}

我们将看门狗设为 15ms,然后来一个死循环。 这样子就可以重启我们的 板子。