وقتی میخواید ازwatchdog timer استفاده کنید سعی کنید دستورات بارگذاری مجددش رو توی وقفه های سیکلی قرار ندید دلیلش اینه که ممکنه میکرو در یکی از function ها گیر کرده باشه و اینطوری دیگه ریست نمیشه
بهترین جا برای بارگذاری مجدد کانتر watchdog timer تابع main هستش
در ضمن بیاد داشته باشید که دستورات مربوط به بارگذاری باید دقیقا پشت سر هم وطبق دستور manual میکرو ارسال بشه
درصورتی که شما از وقفه ها در میکروی خودتون استفاده میکنید (که حتما همینطوره) بهتره(باید) در زمان بارگذاری تمام وقفه ها رو برای چند سیکل غیر فعال کنید
مثل نمونه کد پایین برای LPC17xx
بهترین جا برای بارگذاری مجدد کانتر watchdog timer تابع main هستش
در ضمن بیاد داشته باشید که دستورات مربوط به بارگذاری باید دقیقا پشت سر هم وطبق دستور manual میکرو ارسال بشه
درصورتی که شما از وقفه ها در میکروی خودتون استفاده میکنید (که حتما همینطوره) بهتره(باید) در زمان بارگذاری تمام وقفه ها رو برای چند سیکل غیر فعال کنید
مثل نمونه کد پایین برای LPC17xx
__disable_irq(); // Disable Interrupts
LPC_WDT->WDFEED = 0xAA; // feed sequence.
LPC_WDT->WDFEED = 0x55;
__enable_irq(); // Enable Interrupts