اطلاعیه

Collapse
No announcement yet.

مدیریت یک حلقه در زمان وقوع وقفه

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

    مدیریت یک حلقه در زمان وقوع وقفه

    باسلام خدمت دوستان.
    در برنامه بنده حلقه ای وجود داره که محاسبات و تحلیل یک سنسور در آن انجام می شه (کل فرایند در حدود 15 میلی ثانیه).
    این برنامه اطلاعات رو از طریق rs485 منتقل می کنه. بدلیل اینکه حجم اطلاعات دریافتی و ارسالی بالاست از وقفه سریال استفاده کرده ام. و برای اینکه از نظر زمان بندی مشکلی ایجاد نشه در روتین وقفه فقط اطلاعات دریافت می شه و تحلیل در حلقه while انجام می گیره.
    در کل برنامه درست کار میکنه. اما مشکل اینجاست که مادامی که برنامه در حلقه در حال پردازش سنسوره اگه وقفه ای رخ بده، باید منتظر بشه تا حلقه کامل شه و بعد نوبت به ارسال می رسه و این کار زمان بره.
    آیا میشه کاری کرد که ادامه اون پردازش کنسل شه و بعد از ارسال کامل اطلاعات مجدداٌ پردازش شروع شه؟
    باتشکر
    تشکر لازم نیست!

    #2
    پاسخ : مدیریت یک حلقه در زمان وقوع وقفه

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

    دیدگاه


      #3
      پاسخ : مدیریت یک حلقه در زمان وقوع وقفه

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

      دیدگاه


        #4
        پاسخ : مدیریت یک حلقه در زمان وقوع وقفه

        پس باید در اینتراپت ادرس پشته را عوض کنی به بردار یک لیبل مورد نظر تا بعد reti بپری اونجا : کاری بس زجر اور ولی شدنی

        دیدگاه

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