ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2008/12/01
    11
    0

    آیا میتوان در حین اجرای یک وقفه خارجی، وقفه دیگری را فعال نمود ؟؟!

    با سلام
    در برنامه من وقتی وقفه خارجی int0 فعال است و سابروتین وقفه درحال انجام است در این هنگام نمیتوان با فعال کردن int1 سابروتین وقفه دیگری را فعال نمود وباید صبر کرد که سابروتین وقفه به طور کامل اجرا شود .. آیا در میکرو 8051 نمیشه در حین اجرای یک وقفه ،یک وقفه دیگر را اجرا کرد ؟چطور میتونم این کار را بکنم؟ یعنی وقتی int1 را فعال میکنم وقفه قبلی را رها کرده و وقفه جدید را اجرا کند؟ ( زبان اسمبلی )
    لطفا کمکم کنید .. با تشکر
  2. #2
    2006/08/16
    867
    17

    پاسخ : آیا میتوان در حین اجرای یک وقفه خارجی، وقفه دیگری را فعال نمود ؟؟!

    سلام دوست عزيز . به انجمن خوش اومدي
    در 8051 با استفاده از ثبات IP براي وقفه ها دو سطح اولويت ميشه تعريف كرد: اولويت بالا و پايين
    فقط وقفه هاي با اولويت پايين ميتونن توسط وقفه هاي الويت بالا متوقف بشن. وقفه هاي هم درجه هم نميتونن همديگر رو متوقف كنن.
    حالا اگر براي شما يكي از وقفه ها از ديگري مهمتره ميتونين با يك كردن بيت مربوطش تو ثبات IP به اون اولويت بدين.
    اما اگه ميخواين هر دو سابروتين وقفه بتونن توسط هم متوقف بشن بايد يه ترفندي بزنيد:
    ببينيد وقتي CPU ميره توي سابروتين يه وقفه، در واقع وقفه هاي هم درجه و پايين تر غير فعال ميشن.
    كاري كه شما بايد بكنيد اينه كه بعد از وارد شدن به سابروتين وقفه يه بار دستور RETI رو CALL كنيد. مثال:

    ;**********************************
    EX0ISR: LCALL DUMMY
    ...
    Do something
    ...
    RET
    DUMMY: RETI
    ;**********************************
    EX1ISR: LCALL DUMMY
    ...
    Do something
    ...
    RET
    ;**********************************
    فقط فراموش نكنيد براي خروج از وقفه به جاي RETI از RET استفاده كنيد.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2008/12/01
    11
    0

    پاسخ : آیا میتوان در حین اجرای یک وقفه خارجی، وقفه دیگری را فعال نمود ؟؟!

    از توضیحاتتون ممنونم . ترفندتان را بکار بردم اما آن نتیجه ای که عنوان کردید رو نتونستم ببینم ! یعنی پس از اجرای وقفه صفر بدون اینکه منتظر وقفه دیگری بماند به طور خودکار سابروتین وقفه بعدی را اجرا میکند ! ( صفر بعدی ) . برنامه ای که تحت عنوان ترفند نوشتید چطور کار میکنه؟ با اجرای وقفه دستور reti را صدا میزند و به قسمت برنامه اصلی میرود ( $ SJMP ) و منتظر وقفه بعدی میماند ؟
  4. #4
    2006/08/16
    867
    17

    پاسخ : آیا میتوان در حین اجرای یک وقفه خارجی، وقفه دیگری را فعال نمود ؟؟!

    بازم سلام
    ترفندي كه من نوشتم چيز خاصي نيست.فقط وقتي LCALL DUMMY رو اجرا ميكنيد cpu يه بار ميره به DUMMY و دوباره برميگرده همونجا.
    تنها فايدش اينه كه دستور RETI يه بار اجرا ميشه و cpu فكر ميكنه كه سابروتين وقفه تموم شده و به همين دليل به وقفه هاي ديگه اجازه اجرا ميده.(به sjmp $ هم ربطي نداره oo
    من خودم امتحان كردم جواب ميده
    شما اگر مايليد كدي كه نوشتيد رو بزاريد و كاري كه بايد انجام بده رو بنويسيد تا من و دوستان يه نگاهي بندازيم.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

نمایش نتایج: از 1 به 4 از 4

موضوعات مشابه

  1. فعال کردن و شمارش تایمرها در حین اجرای روتین وقفه خارجی
    توسط colpits در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2016/04/27, 09:00
  2. وقفه در اجرای i2c
    توسط Meysamhl در انجمن میکروکنترلرهای PIC
    پاسخ: 12
    آخرين نوشته: 2014/12/23, 11:24
  3. غیر فعال کردن وقفه خارجی
    توسط alizard در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2010/06/04, 14:09
  4. چطوری بفهمم وقفه خارجی و تایمر فعال هست یا نه؟
    توسط Questioner در انجمن میکروکنترلرهای AVR
    پاسخ: 11
    آخرين نوشته: 2010/05/27, 16:35
  5. ترتیب اجرای وقفه ها
    توسط golgolak در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2008/12/12, 23:35

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •