1. Tổng quan
  2. Review
  3. Hướng Dẫn Sử Dụng Watchdog Timer Là Gì ? Bài Giới Thiệu Về Timer, Counter Và Watchdog

Hướng Dẫn Sử Dụng Watchdog Timer Là Gì ? Bài Giới Thiệu Về Timer, Counter Và Watchdog

Review

Ở bài này, Mình giới thiệu về Watchdog Timer và tầm quan trọng của nó; làm thế nào để cấu hình watchdog timer cho arduino;

Quý khách hãy đăng ký để nhận Khuyến Mãi bên dưới của nhà cái Fi88

 

Vậy Watchdog Timer là cái gì,

Làm thế nào để cấu hình watchdog timer;

Có một vài ví dụ cụ thể để bạn dễ hiểu hơn về cách cấu hình và sử dụng;

Nào chúng ta cùng tìm hiểu;

I.Watchdog timer là cái gì;

Hầu hết vi điều khiển PIC, Arduino (AVR) đều có bộ dao động riêng, *độc lập với bộ dao động của hệ thống) dành riêng cho Watchdog.

Bạn đang xem: Watchdog timer là gì

Điều này rất hay cụ thể bới lý do sau:

1/ Không phải chia nhiều (ví dụ bộ dao động watchdog timer của PIC khoản 8ms, có thể dùng các bộ presscale để giảm clk watchdog).

AVR: có một bộ dao động độc lập với tốc độ 1Mhz. đây là giá trị cụ thể tại VCC=5V.

Xem thêm: Hack Game Vĩnh Hằng Kỷ Nguyên Lậu Trung Quốc Full Vàng, Kim Cương

2. Watchdog hoạt động được ở cả ở chế độ “ngủ”. Vì tại chế độ ngủ này, CLK của hệ thống ngừng hoạt động.

3. Trong chế độ vừa ngủ vừa watchdog anable, một số vđk đã thiết kế là: Đang ngủ —> Bị Watchdog timer —> Nó không khởi động lại mà là thức MCU thức dậy.

Xem thêm: ‎ 868 – The Agony And The Ecstasy Of 868

Vậy watchdog timer dùng để reset nếu bị lỗi phần mềm:

Do người lập trình, Do vi điều khiển bị treo do nhiễu tác động vài nguồn hay nhiễu kiểu điện từ trường…. cường độ cao xông thẳng vào chip;

Từ đó ta sử dụng watchdog timer để fix lỗi các công đoạn trên;

II. Watchdog Timer làm việc như thế nào;

*

Hầu hết các chương trình thường có một vòng lặp, mà nó liên tục đi qua thực hiện các chức năng khác nhau.

Watchdog Timer được nạp một giá trị ban đầu lớn hơn thời gian trễ của toàn bộ chương trình, trường hợp xấu nhất gặp vòng lặp vô hạn, dùng watchdog timer để thoát khỏi vòng lặp vô han ( hay vòng lặp chết);

Nếu xảy ra lỗi và chương trình chính không quay trở lại để đặt lại bộ hẹn giờ, trước khi nó đếm ngược về 0, một ngắt được tạo ra để đặt lại bộ xử lý;

III. Sử dụng Watchdog Timer cho Arduino:

Bước 1: Cần add thư viên sau:

#include

Để sử dụng watchdog timer cho arduino cần adđ thư viện đó ;

Bước 2: Cho phép và không cho phép Watchdog timer;

Cho phép Watchdog timer hoạt động:

Cú pháp: wdt_enable(WDT Reset Timer);

Ví dụ:

wdt_enable(WDTO_4S);

Watchdog timer có thể cho phép cài đặt thời gian khác nhau, Thời gian thiết lập phải lớn hơn thời gian cần thiết cho vòng lặp chương trình sẽ quay trở lại,

Ở vi điều khiển Arduino (AVR): Tối đa là 8s còn min là 15ms có thể cài đạt;

Dưới đây là bảng Watchdog timer cài đặt;

THRESHOLD VALUECONSTANT NAMESUPPORTED ON
15 ms WDTO_15MS ATMega 8, 168, 328, 1280, 2560
30 ms WDTO_30MS ATMega 8, 168, 328, 1280, 2560
60 ms WDTO_60MS ATMega 8, 168, 328, 1280, 2560
120 ms WDTO_120MS ATMega 8, 168, 328, 1280, 2560
250 ms WDTO_250MS ATMega 8, 168, 328, 1280, 2560
500 ms WDTO_500MS ATMega 8, 168, 328, 1280, 2560
1 s WDTO_1S ATMega 8, 168, 328, 1280, 2560
2 s WDTO_2S ATMega 8, 168, 328, 1280, 2560
4 s WDTO_4S ATMega 168, 328, 1280, 2560
8 s WDTO_8S ATMega 168, 328, 1280, 2560

Không cho phép Watchdog timer hoạt động;

wdt_reset();

chức năng reset vòng lặp để cài đặt lại giá trị về 0 để lặp lại từ đầu;

Example:

#include void setup(){ //watchdog timer với 2s wdt_enable(WDTO_2S);}void loop(){// toàn bộ chương trình chạy wdt_reset(); // thực hiện reset bộ đếm về 0;}Dưới đây là một ví dụ dùng watchdog timer cho arduino để tiết kiệm năng lượng, đánh thức vi điều khiển;

#include #include “nRF24L01.h”#include “RF24.h”#include “LowPower.h”RF24 radio(9, 10);const uint64_t pipe = 0xF0F0F0F0E1LL;void setup() {//Setup Watchdog Timer with 8 Seconds Resetwdt_enable(WDTO_8S);//Setup Wireless nRF24L01 Radioradio.begin();radio.setRetries(15, 15);radio.setPayloadSize(30);radio.setPALevel(RF24_PA_MAX); radio.setDataRate(RF24_250KBPS);radio.openWritingPipe(pipe);radio.stopListening();}void loop() {double Temperature = ((5.0/1024.0) * analogRead(A0)) * 100;radio.powerUp();delay(5);radio.write(Temperature, sizeof(double));//Turn off Radioradio.powerDown();// Set sleep to full power down. Only external interrupts or// the watchdog timer wake the CPU after 8 Secondsset_sleep_mode(SLEEP_MODE_PWR_DOWN);}

Chuyên mục: Công Nghệ

Quý khách hãy đăng ký để nhận Khuyến Mãi bên dưới của nhà cái Fi88

 

https://game24giờ.vn/category/review

You May Also Like

+8 Giàn Phơi Thông Minh Loại Nào Tốt Nhất ? Mua Giàn Phơi Thông Minh Loại Nào Tốt
Tiểu Sử Ca Sĩ Bích Phương Sinh Năm Bao Nhiêu, Tiểu Sử Ca Sĩ Bích Phương

Author

Menu