اطلاعیه

Collapse
No announcement yet.

ریستار کردن میکرو وقتی هنگ میکنه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ریستار کردن میکرو وقتی هنگ میکنه

    من یه برنامه نوشتم که اطلاعاتو از رو SD میخونه و رو خروجیا میریزه
    مشکل اینکه بعضی وقتها میکرو هنگ میکنه و نمیتونه داده رو بخونه
    برا اینکار از تایمر watchdog استفاده کردم ولی مشکل اینکه هی سییتمو ریست میکنه
    الان سوالم اینکه برا رفع هنگی بهترین کار تایمر watchdog؟
    و سوال دوم چجوری کار کنم که همینجوری ریست نکنه یعنی هر چند دستور اونو غیر فعال کنم
    و سوال سومم اینکه اگه بخوایم میکرو هر 10 دقیقه بدون توجه به هنگ کردن یا هنگ نکردن ریست کنه باید چیکار کنم :angry:

    #2
    پاسخ : ریستار کردن میکرو وقتی هنگ میکنه

    سلام
    آیا داخل برنامه دستور reset watchdog رو هم استفاده کردید؟؟؟!!!
    واچداگ تنها در صورتی سیستم رو ریست میکنه که زمانش سر اومده باشه. در صورتی که قبل از اون زمان خودتون ریستش کنید مدار به کار عادیش بر میگرده.
    برای اون کاری هم که میگید هر n دقیقه مدار ریست بشه کافیه دستور ریست کردن واچداگ رو به ازای همون n دقیقه یکبار اجرا نکنید تا واچداگ مدار رو ریست کنه.

    با سپاس
    نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

    دیدگاه


      #3
      پاسخ : ریستار کردن میکرو وقتی هنگ میکنه

      اولین چیزی که یادم رفت بگم اینکه زبان سی کار میکنمcodevision
      دومم اینکه برنامه یکی دو خط نیست که هی غیرفعاش کنم و دومم اینکه حالا غیر فعال کردیم از کجا بدونیم هر مثلا 1 میلی ثانیه قبل از امدن ریست کردن واتچ داگ غیر فعال میشه
      سومم الان یه فکری به ذهنم رسید اینکه میشه تو یه اینتراپت انداخت که 1میلی ثانیه ریستش کنه؟ :nerd:

      دیدگاه


        #4
        پاسخ : ریستار کردن میکرو وقتی هنگ میکنه

        زمان watchdog زمان بسیار کوتاهی هست. اگر میخوایین بعد از مدت زمانی 10 دقیقه این کار رو بکنین باید watchdog رو در تایمر خودتون ریست کنین و این کار رو با استفاده از یک متغیر کمکی انجام بدین. مسلما پس از زمان 10 دقیقه و یا در صورت هنگ کردن که watchdog reset انجام نشه سیستم خود بخود ریست میشه.

        دیدگاه


          #5
          پاسخ : ریستار کردن میکرو وقتی هنگ میکنه

          نوشته اصلی توسط Nakh0d4
          دومم اینکه حالا غیر فعال کردیم از کجا بدونیم هر مثلا 1 میلی ثانیه قبل از امدن ریست کردن واچ داگ غیر فعال میشه
          سومم الان یه فکری به ذهنم رسید اینکه میشه تو یه اینتراپت انداخت که 1میلی ثانیه ریستش کنه؟ :nerd:
          oo:
          کار واچداگ به این صورته که اونرو فعال میکنید و بهش یه زمان خاص رو اختصاص میدید.(به میلی ثانیه) بعد از اینکه دستور استارت واچداگ توسط میکرو صادر بشه واچداگ منتظر میمونه تا همون مقدار زمانی رو که شما تعیین کردید سپری بشه. اونوقت میکرو رو ریست میکنه. حالا اگر شما قبل از اینکه اون زمان به سر برسه خودتون واچداگ رو ریست کنید واچداگ دوباره از اول منتظر این میشه تا اون زمان سر برسه.
          حالا شما به هر طریقی میتونید این عمل ریست واچداگ رو صادر کنید تا میکرو ریست نشه. بهترین راهش هم همون وقفه تایمر هست.
          نيست بر لوح دلم جز الف قامت دوست *** چه کنم حرف دگر ياد نداد استادم

          دیدگاه

          لطفا صبر کنید...
          X