Posted
by: 邱小新
at 下午3:27
in
W79E632
啟動 watchdog 程序
- 先關閉 watchdog 功能,防止一些干擾的問題。
- 選擇 watchdog time-out 時間。
- 設定 watchdog 中斷開關。
- 開啟 watchdog 重置工作。
- 開啟 watchdog 功能。
void watchdog_start(void)
{
// clear watchdog flag
TA = 0xAA;
TA = 0x55;
WDCON = 0;
// select 2^26 time-out interval
CKCON |= 0xC0;
// disable watchdog interrupt
EWDI = 0;
// start watchdog reset task
poller_start(POLLER_WATCHDOG, TIMER_WATCHDOG);
// enable watchdog
TA = 0xAA;
TA = 0x55;
WDCON = 3;
}
關閉 watchdog 程序
void watchdog_stop(void)
{
TA = 0xAA;
TA = 0x55;
EWT= 0;
}
重置 watchdog 程序
void watchdog_reset(void)
{
TA = 0xAA;
TA = 0x55;
RWT= 1;
}
PS: 一開機後請立即清除 EWT,以免 watchdog reset 再次發生。
張貼留言