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