Re: #include <18F45k22.h>一直會自動重開

作者 Ryang 於 2018年09月25日 10:09:56
1. 我不知道你在 main( )迴圈所用的 restart_wdt(); 的敘述是何種功能? 查一下 XC8 的使用手冊是用 CLRWDT( ); 的巨集去清除 WDT 的逾時計數器的。如底下範例所示:


#include <xc.h>
void
main
(void)
{
WDTCON=1;
/* enable the WDT */
CLRWDT();
}


2. WDT 所設定的逾時時間是多久? 而你的程式裡又多久清除這 WDT 呢? 建議在程式裡的 CLRWDT( ) 後面加上一個 Toggle I/O 的輸出,用示波器測量一下 I/O 腳轉態的時間是否是 WDT 時間的一半。

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22419&post_id=78715