Hôm nay mình giới thiệu Watchdog timer
Đầu tiên Tại sao lại dùng Watchdog timer cho ESP32 ?
Câu trả lời trong hệ thống công nghiệp các hệ thống đòi hỏi chạy 24/24 Và đảm bảo sự hoạt động liên tục .
Đối với các nhiễu điện từ ,nhiễu tĩnh điện làm treo hệ thống .
Watchdog Timer ESP32 Có tác dụng khôi phục hệ thống khi bị treo .
Các bạn tham khảo code sau
Các bạn thử bỏ hàm esp_task_wdt_reset(); Hệ thống sẽ reset liên tục là Watchdog Timer đã hoạt động
#include <esp_task_wdt.h>
//3 seconds WDT
#define WDT_TIMEOUT 3
void setup() {
Serial.begin(115200);
Serial.println("Configuring WDT...");
esp_task_wdt_init(WDT_TIMEOUT, true); //enable panic so ESP32 restarts
esp_task_wdt_add(NULL); //add current thread to WDT watch
}
int i = 0;
int last = millis();
void loop() {
// resetting WDT every 2s, 5 times only
if (millis() - last >= 2000 && i < 5) {
Serial.println("Resetting WDT...");
esp_task_wdt_reset();
last = millis();
i++;
if (i == 5) {
Serial.println("Stopping WDT reset. CPU should reboot in 3s");
}
}
}
Cảm ơn các bạn đã ghé thăm shop .