با سلام خدمت دوستان
در یک سیستم اگر میکرو به علتهای مختلفی از جمله نویز و ... هنگ کنه باعث مشکلات و خطراتی میشه حالا چطور می توانیم:
1- هنگ کردن میکرو را تشخیص بدیم (بدون استفاده از میکرو یا پروسسور جانبی)؟
2- پس از هنگ کردن میکرو چطور می توانیم پورتها را به یک حالت امن مثلا همگی را به gnd تغییر حالت دهیم؟
ممنون
وقتی که برنامه با تغییر وضعیت ورودی ها و زمان بندی های مشخص اون طوری که باید کار نکنه هنگ کرده یا نویز گرفته و کلی دلایل دیگه
این جو مواقع از تایمر واچ داگ استفاده میشه
ولی وقتی تایمر واچ داگ سر ریز شد میکرو ریست میشه و به بردار وقفه ریست یعنی اولین آدرس حافظه میره که میشه اول برنامه و نیازی به اون حالت امن هم نیست
با تشکر از شما دوست عزیز
به دلایل خاصی در نوع طراحی این سیستم نباید از تایمر واچ داگ استفاده کرد.
لطفا راه مناسبی که بتوان با المانهای الکترونیکی این کار را انجام داد بفرمایید.
متشکر
تقریبا راه دیگه ای نیست می شه واچ داگ رو به صورت حارجی پیاده سازی کرد
واچ داگ مشکلی ایجاد نمی کنه شما لحظه ریست می تونی بفهمی که ریست به خاطر هنگ کردن میکرو بوده و چون مقادیر رم سر جاشه می تونی به صورت عادی به برنامه ادامه بدی
مسئله اینجاست که اگر در سیستم هنگی پیش آمد بهتر است در همان حال بماند تا علت بررسی شود که در این حالت باید پورتها به یک حالت امن وارد شوند و این هنگ تشخیص داده شده و مثلا در ازای آن یک led روشن شود.
لطفا در مورد پیاده سازی واچ داگ خارجی کمی بیشتر توضیح بدید و اینکه چکونه می توان مقادیر رم را نگه داشت.
ممنون
البته موندن تو همون حالت معنی نمی ده وقتی میکرو هنگ می کنه یعنی از برنامه اصلی خارج شده و معلوم نیست داره چی کار می کنه و شما نیم تون بفهمی که چرا خارج شده
اینکه شما می خوای چراغ روشن کنی یا پورت ها رو به صفر یا یک ببری فرق زیادی نمی کنه توی اول برنامه باید چک کنی اگه ریست به خاطر واچ داگ پورت ها رو صفر کنی چراغ مربوطه رو روشن کنی و به جلقه بینهایت هم بزاری که کار دیگه ای نکنه
برای رم هم مقادیر خودش می مونه فقط کافیه شما لحظه اول اگه ریست مال واچ داگ بود مقدار دهی اولیه نکنی
و واچ داگ خارجی یه کلاک درست می کنن با میکرو اگه اون کلاک نیومد یعنی هینگ البته کلاک رو با تایمر نباید درست کنی با ید توی حلقه اصلی برنامع باشه
با خیلی چیزای دیگه هم میشه ساخت
من قبلا مثلا با 4093 آستابل می ساختم مثلا هر 200میلیثانیه یه بار اونو ورودیشو 0 میدادم که خازنش دشارژ بشه
اگر سر 200 میلی ثانیه ریست نمی شد ، خروجی 4093 میکرو رو ریست می کرد
با تشکر از شما دوستان
در صورت هنگ میکرو چگونه می توان خروجیها را به حالت امن برد؟ (در آن حالت بمانند تا توسط تحریک خارجی میکرو ریست شود)
خوب اول باید به نحوی هنگ کردن میکرو مورد نظر تشخیص داده بشه تا بشه خروجی ها رو پول آپ یا داون کرد
چجوری میخوای تشخیص بدی؟
وقتی هنگ می کنه دیگه برنامه شما نیست که اجرا می شه ولی اگه تصادفی وقفه ها غیر فعال نشن فقط با وفته می شه کنترل برنامه رو به دست گرفت یعنی یه اینتراپت ایجاد کنی که این کارو برات انجام بده