Mục lục:

Arduino Hang Guardian - Hướng dẫn hẹn giờ Arduino Watchdog: 6 bước
Arduino Hang Guardian - Hướng dẫn hẹn giờ Arduino Watchdog: 6 bước

Video: Arduino Hang Guardian - Hướng dẫn hẹn giờ Arduino Watchdog: 6 bước

Video: Arduino Hang Guardian - Hướng dẫn hẹn giờ Arduino Watchdog: 6 bước
Video: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, Tháng bảy
Anonim
Image
Image

Chào mọi người, Nó xảy ra cho tất cả chúng ta. Bạn xây dựng một dự án, nhiệt tình kết nối tất cả các cảm biến và đột nhiên, Arduino bị treo và không có đầu vào nào được xử lý.

“Chuyện gì đang xảy ra vậy?”, Bạn sẽ hỏi và bắt đầu tìm hiểu mã của mình, chỉ để nhận ra rằng bạn đã bị mắc kẹt trong một vòng lặp vô hạn. Cảm ơn Chúa vì Arduino đã ở trên băng ghế của bạn chứ không phải ở một nơi hẻo lánh.

Hôm nay, chúng ta sẽ xem xét cách chúng ta có thể sử dụng bộ hẹn giờ cơ quan giám sát trên Arduino để ngăn điều này xảy ra.

Bước 1: Bộ đếm thời gian Watchdog này là gì?

Làm thế nào để Kích hoạt Bộ hẹn giờ Cơ quan giám sát?
Làm thế nào để Kích hoạt Bộ hẹn giờ Cơ quan giám sát?

Bộ đếm thời gian cho cơ quan giám sát Arduino như tên của nó là bộ hẹn giờ chạy riêng biệt với CPU chính trên bo mạch. Bộ đếm thời gian này có thể được sử dụng để kiểm tra định kỳ trạng thái của bo mạch và trong trường hợp bo mạch bị mắc kẹt trong vòng lặp phần mềm hoặc bị kẹt do lỗi phần cứng, bộ đếm thời gian của cơ quan giám sát có thể đặt lại Arduino và bắt đầu lại toàn bộ.

Theo mặc định khi không sử dụng, bộ đếm thời gian này bị tắt trên tất cả các dự án và chỉ khi chúng tôi bật nó, chúng tôi cần đảm bảo định kỳ thông báo cho nó biết để không đặt lại bảng của chúng tôi nếu nó vẫn hoạt động như mong đợi.

Để có thể sử dụng bộ đếm thời gian của cơ quan giám sát, trước tiên chúng ta cần đưa tệp avr / wdt.h vào bản phác thảo Arduino của mình. Đây là thư viện tiêu chuẩn chứa các hành động của cơ quan giám sát.

Bước 2: Làm thế nào để Kích hoạt Bộ hẹn giờ Cơ quan giám sát?

Làm thế nào để kích hoạt bộ hẹn giờ cơ quan giám sát?
Làm thế nào để kích hoạt bộ hẹn giờ cơ quan giám sát?
Làm thế nào để Kích hoạt Bộ hẹn giờ Cơ quan giám sát?
Làm thế nào để Kích hoạt Bộ hẹn giờ Cơ quan giám sát?

Để bật bộ đếm thời gian, chúng tôi sử dụng chức năng “wdt_enable”, nơi chúng tôi cần vượt qua khoảng ngưỡng mà tại đó bảng sẽ được đặt lại. Tùy thuộc vào trường hợp sử dụng của chúng tôi, điều này có thể ở bất kỳ đâu từ 15 mili giây đến tối đa 8 giây trong các cài đặt được xác định trước được chứa trong thư viện cơ quan giám sát.

THRESHOLD - TÊN HỢP LỆ

15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S

Bước 3: Tiếp tục chạy chương trình của bạn

Tiếp tục chạy chương trình của bạn
Tiếp tục chạy chương trình của bạn

Bây giờ, với bộ đếm thời gian được bật, để ngăn nó đặt lại Arduino của chúng ta, chúng ta cần gọi hàm “wdt_reset” định kỳ để đặt lại bộ hẹn giờ của cơ quan giám sát trước khi hết thời gian ngưỡng.

Khi chọn khoảng thời gian đặt lại, điều quan trọng là chúng tôi phải xem xét bất kỳ hoạt động kéo dài nào như đọc hoặc gửi dữ liệu hoặc kết nối với các cảm biến bên ngoài. Ngưỡng đặt lại phải lớn hơn ít nhất một lần rưỡi so với những thời điểm này để tránh bất kỳ thiết lập lại ngẫu nhiên nào.

Bước 4: Cách sử dụng ví dụ

Cách sử dụng ví dụ
Cách sử dụng ví dụ
Cách sử dụng ví dụ
Cách sử dụng ví dụ
Cách sử dụng ví dụ
Cách sử dụng ví dụ

Trong chương trình ví dụ mà bạn có thể tải xuống tại đây, trước tiên chúng tôi thiết lập bộ đếm thời gian cho cơ quan giám sát với khoảng thời gian đặt lại là 4 giây. Sau đó, để biết rằng chúng ta đang ở trong chức năng thiết lập, chúng ta nhấp nháy đèn LED 3 lần nhanh chóng và sau đó trong vòng lặp chính, trước tiên chúng ta đặt lại bộ đếm thời gian, thắp sáng đèn LED với khoảng thời gian dài hơn và sau đó chúng ta tắt nó đi. Vòng tiếp theo đặt lại bộ đếm thời gian một lần nữa cho đến khi thời gian sáng lâu hơn 4 giây.

Khi điều này xảy ra, bộ đếm thời gian của cơ quan giám sát sẽ đặt lại bo mạch và quá trình thiết lập được thực hiện lại.

Bước 5: Vấn đề về bộ hẹn giờ của cơ quan giám sát

Một vấn đề có thể xảy ra với bộ đếm thời gian của cơ quan giám sát, tùy thuộc vào bộ nạp khởi động của Arduino của bạn là nếu giá trị bộ hẹn giờ của cơ quan giám sát quá thấp và bộ nạp khởi động không đặt lại bộ hẹn giờ khi tải lên mã mới, bạn có thể làm hỏng bảng Arduino của mình theo cách nó sẽ luôn bị kẹt trong giai đoạn khởi động. Bộ nạp khởi động sẽ cố gắng khởi động, nhưng bộ đếm thời gian sẽ tiếp tục đặt lại bo mạch, không bao giờ cho phép nó khởi động đúng cách. Để ngăn chặn các vấn đề như thế này, hãy đảm bảo luôn sử dụng các khoảng thời gian ngưỡng từ 2 giây trở lên.

Bước 6: Thưởng thức

Thưởng thức
Thưởng thức

Nếu bạn có ví dụ về nơi bạn đã sử dụng bộ đếm thời gian của cơ quan giám sát trong một dự án thực tế, hãy cho tôi biết trong phần nhận xét, hãy nhớ thích video và đừng quên đăng ký.

Chúc mừng và cảm ơn vì đã đọc / xem!

Đề xuất: