3 K < REXT < 100 K CEXT>20 pF
2.1.15. WATCHDOG TIMER (WDT)
Watchdog timer (WDT) là bộ đếm độc lập dùng nguồn xung đếm từ bộ tạo xung được tích hợp sẵn trong vi điều khiển và khơng phụ thuộc vào bất kì nguồn xung clock ngoại vi nào. Điều đĩ cĩ nghĩa là WDT vẫn hoạt động ngay cả khi xung clock được lấy từ pin OSC1/CLKI và pin OSC2/CLKO của vi điều khiển ngưng hoạt động (chẳng hạn như do tác động của lệnh sleep). Bit điều khiển của WDT là bit WDTE nằm trong bộ nhớ chương trình ở địa chỉ 2007h (Configuration bit).
WDT sẽ tự động reset vi điều khiển (Watchdog Timer Reset) khi bộ đếm của WDT bị tràn (nếu WDT được cho phép hoạt động), đồng thời bit tự động được xĩa. Nếu vi điều khiển đang ở chế độ sleep thì WDT sẽ đánh thức vi điều khiển (Watchdog Timer Wake-up) khi bộ đếm bị tràn. Như vậy WDT cĩ tác dụng reset vi điều khiển ở thời điểm cần thiết mà khơng cần đến sự tác động từ bên ngồi, chẳng hạn như trong quá trình thực thi lệnh, vi điều khiển bị “kẹt” ở một chổ nào đĩ mà khơng thốt ra đươc, khi đĩ vi điều khiển sẽ tự động được reset khi WDT bị tràn ể chương trình hoạt động đúng trở lại. Tuy nhiên khi sử dụng WDT cũng cĩ sự phiền tối vì vi điều khiển sẽ thường xuyên
được reset sau một thời gian nhất định, do đĩi cần tính tốn thời gian thích hợp để xĩa WDT (dùng lệnh CLRWDT). Và để việc ấn định thời gian reset được linh động, WDT cịn được hỗ trợ một bộ chia tần số prescaler được điều khiển bởi thanh ghi OPTION_REG (prescaler này được chia xẻ với Timer0).
Một điểm cần chú ý nữa là lệnh sleep sẽ xĩa bộ đếm WDT và prescaler. Ngồi ralệnh xĩa CLRWDT chỉ xĩa bộ đếm chứ khơng làm thay đổi đối tượng tác động của prescaler (WDT hay Timer0).