在默认情况下,Arduino 的 delay() 函数会影响看门狗定时器。看门狗定时器是一个硬件定时器,它在程序没有重置看门狗定时器的情况下计时。当程序执行到 delay() 函数时,它会暂停程序的执行,导致程序在 delay() 函数内部的时间段内无法重置看门狗定时器。如果 delay() 函数的执行时间超过了看门狗定时器的超时时间,看门狗定时器将超时并引发系统复位。

例如,如果看门狗定时器的超时时间为 2 秒,而你在程序中使用了 delay(3000) 函数,这将导致看门狗定时器超时并引发系统复位。

为了避免看门狗定时器超时,你可以选择使用非阻塞的延迟方法,例如使用 millis() 函数或 delayMicroseconds() 函数来实现延迟,而不是使用 delay() 函数。这些非阻塞延迟方法允许程序在延迟期间继续执行,并在需要时重置看门狗定时器。

另外,如果你想要在程序中完全禁用看门狗定时器,可以使用 wdt_disable() 函数将其禁用。这样做的话,delay() 函数将不再影响看门狗定时器。但是,在禁用看门狗定时器之前,请确保你的程序可以正常运行,并使用其他方法来监测和处理故障情况,以确保设备的稳定性和可靠性。

Arduino Delay() 函数对看门狗定时器的影响

原文地址: http://www.cveoy.top/t/topic/gjt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录