ايران ويج

نسخه‌ی کامل: ریست شدن پایه میکرو هنگام سرریز watchdog
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان
من تو برنامه م از watchdog استفاده کردم. اول برنامه یه پایه رو به عنوان خروجی در نظر گرفتم. کاربر میتونه از طریق یه پایه دیگه به برنامه ورودی بده. مثلا اگه Pina.0 تو یه لحظه برابر 1 شد portb.4 روشن بشه و روشن بمونه مگر اینکه دوباره بهش گفته بشه که خاموش شه. مشکل اینه که وقتی میکرو هنگ میکنه و watchdog سرریز میکنه و میکرو ریست میشه اون موقع portb.4 که سابقا روشنش کردیم مقدار اولیه میگیره و ریست میشه. اگه من بخوام مقدار portb.4 رو تو حافظه eprom ذخیره کنم چون میکروی من در طول سال بطور کامل روشنه و در طی روز بارها وبارها ممکنه هنگ کنه و ظرفیت نوشتن تو eprom برابر 100هزار باره مسلما بعد یه مدت میکروم آسیب میبینه. شما چه راه حلی برا این مشکل دارید؟
(۰۲-مرداد-۱۳۹۵, ۲۱:۱۸:۱۸)alirezajf68 نوشته است: [ -> ]سلام دوستان
من تو برنامه م از watchdog استفاده کردم. اول برنامه یه پایه رو به عنوان خروجی در نظر گرفتم. کاربر میتونه از طریق یه پایه دیگه به برنامه ورودی بده. مثلا اگه Pina.0 تو یه لحظه برابر 1 شد portb.4 روشن بشه و روشن بمونه مگر اینکه دوباره بهش گفته بشه که خاموش شه. مشکل اینه که وقتی میکرو هنگ میکنه و watchdog سرریز میکنه و میکرو ریست میشه اون موقع portb.4 که سابقا روشنش کردیم مقدار اولیه میگیره و ریست میشه. اگه من بخوام مقدار portb.4 رو تو حافظه eprom ذخیره کنم چون میکروی من در طول سال بطور کامل روشنه و در طی روز بارها وبارها ممکنه هنگ کنه و ظرفیت نوشتن تو eprom برابر 100هزار باره مسلما بعد یه مدت میکروم آسیب میبینه. شما چه راه حلی برا این مشکل دارید؟

سلام
کلی میگم خودت یکم فکر کن به نتیجه میرسی.
نباید میکروت هنگ کنه.دلیل زیادش مربوط به نوع کدی هست که مینویسی و همچنین سخت افزار.شاید الان داره کار میکنه ولی حتما مشکلی توش هست.
بعد اینو بدون که هر سلول ایپرام قابلیت نوشتن 100 هزار بار رو داره.تو میتونی یک جوری کد بنویسی که هر سلول برای خودش یه کانتر داشته باشه که بعد از نوشتن در سلول، به کانتر یکی اضافه بشه،در این صورت اگر این کانتر به عدد 100 هزار رسید بره سلول بعدی.این جوری مشکلت حل میشه.
(۰۲-مرداد-۱۳۹۵, ۲۱:۱۸:۱۸)alirezajf68 نوشته است: [ -> ]سلام دوستان
من تو برنامه م از watchdog استفاده کردم. اول برنامه یه پایه رو به عنوان خروجی در نظر گرفتم. کاربر میتونه از طریق یه پایه دیگه به برنامه ورودی بده. مثلا اگه Pina.0 تو یه لحظه برابر 1 شد portb.4 روشن بشه و روشن بمونه مگر اینکه دوباره بهش گفته بشه که خاموش شه. مشکل اینه که وقتی میکرو هنگ میکنه و watchdog سرریز میکنه و میکرو ریست میشه اون موقع portb.4 که سابقا روشنش کردیم مقدار اولیه میگیره و ریست میشه. اگه من بخوام مقدار portb.4 رو تو حافظه eprom ذخیره کنم چون میکروی من در طول سال بطور کامل روشنه و در طی روز بارها وبارها ممکنه هنگ کنه و ظرفیت نوشتن تو eprom برابر 100هزار باره مسلما بعد یه مدت میکروم آسیب میبینه. شما چه راه حلی برا این مشکل دارید؟

واچ داگو نباید بزاری برای اینکه مشکلتو حل کنه . واچ داگ فقط برا وقتیه که میکرو هنگ کرد دستگاهت متوقف نشه .سعی کن سخت افزارتو جوری طراحی کنی که میکرو اصلا هنگ نکنه تا مشکلی برات پیش نیاد اون وقت واچ داگ هم بزن که اگر هنگ کرد مشکل ساز نشه  :cool: