#include <p30f2010.h> //เปิดใช้งานไลบรารี dspic30F2010
_FOSC(CSW_FSCM_OFF & XT); // โหมดการทำงาน แบบ XT คริสตอล 4 - 10 MHz ไม่มี PLL
_FWDT(WDT_ON& WDTPSA_64& WDTPSB_16); // เปิดการใช้งาน Watch dog Timer โดยที่เวลาในการรีเซ็ตเท่ากับ
void delay_ms(unsigned int ms){ //ฟังก์ชั่น delay_ms
unsigned int i;
for(; ms>0; ms--)
for(i=0; i<182; i++)
Nop();
}
int main(void)
{
unsigned int i=0; //กำหนดค่าตัวแปร I เป็นแบบจำนวนเต็มบวก
_TRISD0 = 0; //port D0 เป็นพอร์ต output
while(i++<5){ //การทำงานวนลูป 5 รอบ
_LATD0 = 0; //port D0 OFF
delay_ms(1000); //delay 1000 ms.
ClrWdt(); // Clear Watch Dog Timer
_LATD0 = 1; //port D0 ON
delay_ms(1000); //delay 1000 ms.
ClrWdt(); // Clear Watch Dog Timer
}
while(1){
_LATD0 = 1; //port D0 ON
}
return 0;
}
การทำงานของโปรแกรมนี้ คือ พอร์ต D0 จะติด – ดับทุกๆ 1 วินาที จำนวน 5 รอบ แล้วเข้าสู่ลูปการทำงานคือ พอร์ต D0 ON จนกว่าค่าเวลาใน Watch Dog Timer จะ Reset คือ 2048 ms. แล้วจะดับ