今天在设计重启功能的时候,发现 arduino avr 板子没有软件 reset 的功能。 不过这个难不倒我,我记得以前为了防止arduino板子意外故障而使用的软件看门狗。
#include <avr/wdt.h>
我们先导入 avr 看门狗的头文件。
void setup() {
MCUSR = 0;
wdt_disable();
}
在 setup 里初始化看门狗,默认将其禁用。
void reset() {
wdt_enable(WDTO_15MS);
for (;;) {}
}
我们将看门狗设为 15ms,然后来一个死循环。 这样子就可以重启我们的 板子。