اطلاعیه

Collapse
No announcement yet.

مراحل اجرای یک وقفه

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

    مراحل اجرای یک وقفه

    با سلام به همه عزیزان.
    تا جایی که بنده می دونم در هنگام اجری وقفه، ابتدای میکرو دستور درحال اجرا رو تموم می کنه، سپس وارد زیر روال وقفه می شه.
    سوالم اینجاست که اگه میکرو درون یه حلقه )مثلا for ( باشه کل حلقه اجرا می شه یا فقط همون دستور جاری؟
    حالا اگه بخواهیم رفتن به روال وقفه بعد از اجرای کامل حلقه باشه باید چکار کرد؟
    باتشکر
    تشکر لازم نیست!

    #2
    پاسخ : مراحل اجرای یک وقفه

    نوشته اصلی توسط iman-63 نمایش پست ها
    ... سوالم اینجاست که اگه میکرو درون یه حلقه )مثلا for ( باشه کل حلقه اجرا می شه یا فقط همون دستور جاری؟...
    مطابق فرمایش خودتون، آخرین تک دستوری (اسمبلی) که در حال اجر بوده به پایان میرسه و به زیر روال وقفه پرش میکنه!
    یعنی ممکنه شما توی یه زبان سطح بالا یه تک دستور نوشته باشید و کامپایلر اون رو به چندین دستور اسمبلی تبدیل کرده باشه!
    حالا با ایجاد وقفه آخرین دستور اسمبلی در حال اجرا، تکمیل میشود و به وقفه پرش میگردد!
    پس اجرای حلقه نیز نیمه تمام میماند!
    ... .
    نوشته اصلی توسط iman-63 نمایش پست ها
    ... حالا اگه بخواهیم رفتن به روال وقفه بعد از اجرای کامل حلقه باشه باید چکار کرد؟...
    توی چیپهای با معماری قدیمی، راهی نداره!
    فقط میتونی قبل از ورود به حلقه فلگ وقفه سراسری رو غیر فعال کنی و پس از خروج از وقفه، دوباره اون رو فعال کنی!
    حالا اگه چیپت این قابلیت رو داشته باشه که چند تا وقفه رخ داده در این اثنا رو رزرو کنه (STM32 داره) پس از فعال سازی فلگ سراسری، اونها (در صورت وجود) سرویس دهی میشن!
    جدیدترین ویرایش توسط ubub; ۲۳:۲۹ ۱۳۹۷/۰۲/۲۹.
    ◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙

    دیدگاه


      #3
      پاسخ : مراحل اجرای یک وقفه

      1- فقط دستور اسمبلی فعلی کامل میشه
      2- قبل از ورود به حلقه اون وقفه یا وقفه کلی رو غیر فعال کنید و بعد از حلقه دوباره فعال کنید

      دیدگاه

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