اطلاعیه

Collapse
No announcement yet.

ماهیت وقفه ها

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

    ماهیت وقفه ها

    سلام
    چنتا سوال داشتم ، پیشا پیش ممنون
    اگر دو وقفه از یک نوع با اولویت همسان ( مثلا OB10 و OB11 با اولویت 2) با هم فعال شوند:
    1) آیا این دو وقفه به موازات هم کار میکنند یا به ترتیب فعال می شوند(ابتدا یکی از آن دو ، سیکلش را تمام میکند و دیگری شروع میشود)؟
    2) اگر وقفه ها به ترتیب فعال میشوند، کدام یک زودتر کارش را آغاز میکند؟OB10 یا OB11؟
    3)اگر وقفه ها به موازات هم کار میکنند، در صورتی که مقدار یک مموری بیت (مثل M20.1 که در هر دو وقفه قرار داده شده) در یکی از وقفه ها تغییر یابد ، آیا این تغییر همزمان در وقفه دیگر نیز اعمال میشود یا خیر و M20.1 به صورت local کار میکند؟
    جدیدترین ویرایش توسط hamid_heidari; ۱۱:۴۲ ۱۳۹۶/۰۳/۱۸.

    #2
    پاسخ : ماهیت وقفه ها

    نوشته اصلی توسط hamid_heidari نمایش پست ها
    ) آیا این دو وقفه به موازات هم کار میکنند یا به ترتیب فعال می شوند(ابتدا یکی از آن دو ، سیکلش را تمام میکند و دیگری شروع میشود)؟
    فکر کنم یکی یکی فعال بشن ...
    اگه بخواد هر دو فعال بشن یعنی دو کار هم زمان انجام بشه میشه یه چیزی مثل DMA....
    ! Life doesn't get easier , you just get stronger

    دیدگاه


      #3
      پاسخ : بررسی همزمانی اجرای دو وقفه

      جوابی که خودم بهش رسیدم اینه :
      1)اگر اولویت دو وقفه متفاوت باشد، ابتدا اولویت بالاتر و سپس اولویت پایین تر اجرا میشود.

      2)اگر اولویت ها یکسان باشند،ابتدا OB با شماره پایین تر و سپس OB با شماره بالاتر اجرا میشود (ابتدا OB10 سپس OB11 و .... , در آخر OB17 اجرا میشود).
      2-الف) لذا اگر متغییر فرضی M20.3 در OB10 تغییر کند ، این تغییرات با اتمام سیکل OB10 بلافاصله در OB هایی با شماره بالاتر (یعنی 11 تا 17) قابل دسترسی است.
      2-ب) لذا اگر متغییر فرضی M20.3 در OB11 تغییر کند ، این تغییرات با اتمام سیکل OB11 بلافاصله در OB هایی با شماره بالاتر (یعنی 12 تا 17) قابل دسترسی است، اما برای استفاده در OB10 باید تا زمان اجرای مجدد وقفه صبر کرد.
      جدیدترین ویرایش توسط hamid_heidari; ۱۱:۴۹ ۱۳۹۶/۰۳/۱۸.

      دیدگاه

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