سلام.
امروز برای انجام پروژه ای که قراره توی محیط صنعنی کارکنه می خواستم توی Codevision از تایمر Watchdog استفاده کنم که به نتایج عجیبی رسیدم .
خب اساس کار واچداگ اینطوره که بعد از فعال شدن ، اگر در مدت زمان مجاز (مثلا 1.1 ثانیه) ، خودمون واتچداگ رو ریست نکنیم باید میکرو ریست بشه .
خب من فعالش کردم و با نوشتن یک حلقه while(1) ; میکرو ریست میشه . تا اینجا درسته .
حالا اگر قبل از حلقه while(1) یه دستور delay_ms(5000) بنویسم میکرو 5 ثانیه منتظر میشه ! بعد که به حلقه while میرسه ریست میکنه ! که این مشکل داره . یعنی میکرو بدون غیر فعال کردن watchdog به خاطر دستور نرم افزاری delay پنج ثانیه ریست نشده .
چرا!؟
امروز برای انجام پروژه ای که قراره توی محیط صنعنی کارکنه می خواستم توی Codevision از تایمر Watchdog استفاده کنم که به نتایج عجیبی رسیدم .
خب اساس کار واچداگ اینطوره که بعد از فعال شدن ، اگر در مدت زمان مجاز (مثلا 1.1 ثانیه) ، خودمون واتچداگ رو ریست نکنیم باید میکرو ریست بشه .
خب من فعالش کردم و با نوشتن یک حلقه while(1) ; میکرو ریست میشه . تا اینجا درسته .
حالا اگر قبل از حلقه while(1) یه دستور delay_ms(5000) بنویسم میکرو 5 ثانیه منتظر میشه ! بعد که به حلقه while میرسه ریست میکنه ! که این مشکل داره . یعنی میکرو بدون غیر فعال کردن watchdog به خاطر دستور نرم افزاری delay پنج ثانیه ریست نشده .
چرا!؟
دیدگاه