Chào các cao thủ, em nghe bác Bình Anh có nói rằng chức năng Watchdog gần như ko thể thiếu trong các ứng dụng cho VĐK, vậy nó để làm gì? nó hoạt động như thê nào? sao em thấy con 89C52 ko có chức năng này nhỉ?Bác nào có thêm 1 ví dụ mẫu về code sử dụng watchdog thì hay quá!
Đang xem: Intel watchdog timer driver là gì
Xem thêm: Ux Ui Là Gì? Làm Sao Để Trở Thành Ux/Ui Là Gì ? Khóa Học Thiết Kế Ui/Ux
Xem thêm: Dđiện Toán Đám Mây Là Gì ? Thời Đại Cách Mạng Cloud Computing Là Gì?
Watchdog là thế này…Đó chẳng qua là một bộ đếm có chức năng reset lại vi điều khiển khi xảy ra sự kiện tràn (overflow). Giả sử nó là bộ đếm 8 bit thì khi đếm từ 255 lên 256 (tức là tràn về 0) thì sẽ tự động reset lại vi điều khiển. Xung nhịp clock đưa vào đếm thường được lấy từ clock cung cấp cho CPU, sau đó cho qua một bộ chia tần trước khi đưa vào watchdog.Tất nhiên là chúng ta không dùng watchdog để “reset vi điều khiển theo chu kỳ”! Chúng ta cho nó chạy, nhưng trong thân chương trình của chúng ta sẽ có các lệnh reset lại watchdog (tức là xóa giá trị đếm của nó để nó không thể đếm lên cao và gây ra tràn). Các vi điều khiển khác nhau thì có các phương pháp reset watchdog riêng của chúng, có thể là ghi giá trị 0 vào thanh ghi đếm của watchdog, có thể là tác động lên một bit nào đó, cũng có loại cung cấp sẵn một lệnh reset watchdog trong tập lệnh của nó… Đương nhiên chúng ta phải tính toán (chọn tần số clock, vị trí đặt lệnh reset watchdog…) để luôn reset watchdog trước khi nó tràn. Mục đích chính của việc sử dụng watchdog là chống lại các tình huống lỗi do phần mềm, khi mà vi điều khiển thực hiện một vòng lặp chết (dead loop), không thoát ra được. Khi đó do không thực hiện được các lệnh reset watchdog nên nó sẽ tràn, tự động reset lại hệ thống, thoát khỏi tình trạng “bị treo” trong vòng lặp chết.