Watchdog timer là gì

     

Ở bài này, Mình trình làng về Watchdog Timer cùng tầm đặc biệt của nó; làm vắt nào để cấu hình watchdog timer đến arduino;

Vậy Watchdog Timer là loại gì,

Làm cầm cố nào để thông số kỹ thuật watchdog timer;

Có một vài ba ví dụ cụ thể để bạn dễ nắm bắt hơn về cách thông số kỹ thuật và sử dụng;

Nào họ cùng kiếm tìm hiểu;

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

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

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

Đang xem: Watchdog timer là gì

Điều này rất hay rõ ràng bới lý do sau:

1/ không phải chia các (ví dụ bộ xấp xỉ watchdog timer của PIC khoản 8ms, rất có thể dùng các bộ presscale để bớt clk watchdog).

AVR: bao gồm một cỗ dao động độc lập với tốc độ 1Mhz. đó là giá trị ví dụ tại VCC=5V.

Xem thêm: Miếng Dán Kính Cường Lực Iphone X Full Màn Hình 9D Hàng Chính Hãng

2. Watchdog vận động được sinh hoạt cả ở chính sách “ngủ”. Bởi tại cơ chế ngủ này, CLK của hệ thống chấm dứt hoạt động.

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

Xem thêm: Cài Đặt Mạng Trên Máy Tính, Windows 10: Giải Thích Cài Đặt Mạng & Internet

Vậy watchdog timer dùng làm reset trường hợp bị lỗi phần mềm:


Do bạn lập trình,Do vi tinh chỉnh và điều khiển bị treo do nhiễu ảnh hưởng tác động vài nguồn giỏi nhiễu phong cách điện tự trường…. Cường độ cao xông trực tiếp vào chip;

Từ kia ta sử dụng watchdog timer nhằm fix lỗi các quy trình trên;

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

*
Vai Trò Của Watchdog Timer Là Gì ? Watchdog Là Gì 3Hầu hết các chương trình thường có một vòng lặp, mà nó thường xuyên đi qua tiến hành các chức năng khác nhau.

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

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

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

Bước 1: Cần địa chỉ cửa hàng thư viên sau:

#include

Để thực hiện watchdog timer mang lại arduino nên adđ thư viện đó ;

Bước 2: có thể chấp nhận được và không chất nhận được 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 hoàn toàn có thể cho phép cài đặt thời gian không giống nhau, Thời gian thiết lập cấu hình phải lớn hơn thời gian cần thiết cho vòng lặp lịch trình sẽ quay trở lại,

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


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

THRESHOLD VALUECONSTANT NAMESUPPORTED ON
15 msWDTO_15MSATMega 8, 168, 328, 1280, 2560
30 msWDTO_30MSATMega 8, 168, 328, 1280, 2560
60 msWDTO_60MSATMega 8, 168, 328, 1280, 2560
120 msWDTO_120MSATMega 8, 168, 328, 1280, 2560
250 msWDTO_250MSATMega 8, 168, 328, 1280, 2560
500 msWDTO_500MSATMega 8, 168, 328, 1280, 2560
1 sWDTO_1SATMega 8, 168, 328, 1280, 2560
2 sWDTO_2SATMega 8, 168, 328, 1280, 2560
4 sWDTO_4SATMega 168, 328, 1280, 2560
8 sWDTO_8SATMega 168, 328, 1280, 2560

Không chất nhận được 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 để tái diễn từ đầu;

Example:

#include void setup() //watchdog timer cùng với 2s wdt_enable(WDTO_2S);void loop()// cục 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ụ cần sử dụng watchdog timer cho arduino để tiết kiệm năng lượng, thức tỉnh 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();// phối sleep to lớn full power nguồn down. Only external interrupts or// the watchdog timer wake the CPU after 8 Secondsset_sleep_mode(SLEEP_MODE_PWR_DOWN);


Điều hướng bài viết

” Tháo cởi Tiếng Anh Là Gì, Nghĩa Của từ Dismantling, Nghĩa Của Từ dỡ Dỡ
Giờ Lễ thánh địa Tân Phú 90 Nguyễn Hậu, p. Hú, Giáo Xứ Tân Phú