單片機(jī)看門狗的描述
WDT_CONTR 位置0xE1; [-] [-] [EN_WDT] [CLR_WDT] [IDLE_WDT] [PS2] [PS1] [PS0]
本文引用地址:http://www.ex-cimer.com/article/201611/320675.htmEN_WDT: 看門狗允許位,置 1 啟動(dòng)看門狗,看門狗不能自動(dòng)啟動(dòng),需要設(shè)置該位后啟動(dòng),一旦啟動(dòng)不能關(guān)閉(只能系統(tǒng)重新上電和看門狗復(fù)位可以關(guān)閉)
CLR_WDT: 看門狗計(jì)數(shù)器清零位,置1 清零看門狗計(jì)數(shù)器,當(dāng)計(jì)數(shù)器開始重新計(jì)數(shù),硬件清零該位。
IDLE_WDT: 單片機(jī)IDLE 模式看門狗允許位,當(dāng)IDLE_WDT=1時(shí),單片機(jī)在 IDLE 模式(空閑模式)依然啟用看門狗
PS2~PS0: 看門狗定時(shí)器預(yù)分頻器,下表中 Prescale 表示預(yù)分頻數(shù)
PS2 PS1 PS0 Prescale
0 0 0 2
0 0 1 4
0 1 0 8
0 1 1 16
1 0 0 32
1 0 1 64
1 1 0 128
1 1 1 256
看門狗溢出時(shí)間:(N*Prescale*32768)/晶振頻率,其中 N 表示指令周期數(shù) N=12 表示 12 時(shí)鐘周期模式;N=6 表示6時(shí)鐘周期模式。如N=12,晶振頻率為12MHz,PS2~PS0為100時(shí),溢出時(shí)間=(12*32*32768)/12=1048576us,差不多是1s。
例如:給WDT_CONTR寫入0×34,即是激活看門狗,同時(shí)預(yù)分頻數(shù)設(shè)為32。喂狗過(guò)程也是一樣的。
順便說(shuō)一下ATMEL-51單片機(jī)的看門狗
下面是關(guān)于ATMEL-51單片機(jī)看門狗的描述
【看門狗計(jì)數(shù)器】(watchdog timer)是一個(gè)14位的計(jì)數(shù)器,它以機(jī)器周期(晶振頻率/12)增加,當(dāng)計(jì)數(shù)值計(jì)滿(16383/0×3FFF)了就使單片機(jī)軟復(fù)位;當(dāng)啟動(dòng)了【看門狗計(jì)數(shù)器】之后,我們需要在它計(jì)數(shù)沒有滿之前復(fù)位計(jì)數(shù)器強(qiáng)制它不能夠溢出,這個(gè)過(guò)程稱作喂狗。
一般設(shè)置是給 WDTRST 先寫入0×1E 再寫入0xE1激活看門狗;喂狗過(guò)程也是一樣的,給 WDTRST 先寫入0×1E 再寫入0xE1。
評(píng)論