看門狗是用來防止萬一單片機程序出錯造成重大損失的。
防錯的原理很簡單,它在硬件上就是一個定時器,當它溢出的時候就會讓單片機強制復位使程序重新開始執行。
正常的情況下是不能讓它溢出的,所以在程序上每隔一段時間要給他置一次值(俗稱喂狗),只要程序中正常給它喂他就不會溢出。
一旦程序跑飛了,有干擾或者進入死循環之類的情況時,不能正常執行程序了,那么就永遠執行不到喂狗的指令了,但此時定時器是硬件控制的,仍然會走,所以溢出了,單片機就復位了。
一般安全性要求比較高的,系統跑飛了會造成重大事故的都會加一個“狗”保安全。
通常,看門狗的溢出時間越短越靈敏,跑飛之后復位的時間越短,也就越安全,但是,你喂狗的操作也要更頻繁。