اطلاعیه

Collapse
No announcement yet.

سوال در مورد وقفه خارجی

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

    سوال در مورد وقفه خارجی

    INTF0 به صورت پیش فرض برابر با 0 هست.

    اگه وقفه خارجی 0 از طریق پایه INT0 تحریک بشه، INTF0 فعال میشه (یعنی برابر با 1 میشه)
    چرا در ابتدای برنامه باید خودمون فعالش کنیم؟ یعنی بنویسیم:
    [code=c]
    GIFR = 0x40;
    [/code]
    مگه اولش نباید 0 باشه؟

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

    هنگامی که سرویس وقفه فراخوانی میشه این بیت یک میشه که در مدت زمان اجرای سرویس پذیرش وقفه ی خارحی غیرفعال بماند و در پایان سرویس مجددا با نوشتن یک در این بیت (صفر کردنش ) وقفه رو فعال میکنه.
    در ابتدای برنامه هم با نوشتن این دستور ورود به سرویس وقفه را غیر فعال میکنیم تا زمانی که واقعا وقفه خارجی تریگ بشه.
    برای امتحان عملکردش یک برنامه را بدون این دستور کامپایل کنید و میبینید که به محض ورود به برنامه برای اولین بار وارد سرویس وقفه میشه بدون اینکه پایه INT0 تحریک شده باشه.

    دیدگاه


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

      ممنون. مشکل منم همین بود که سوالو پرسیدم. وقفه 1 بار اجرا میشد.

      دیدگاه


        #4
        پاسخ : سوال در مورد وقفه خارجی

        نوشته اصلی توسط davood11311
        ممنون. مشکل منم همین بود که سوالو پرسیدم. وقفه 1 بار اجرا میشد.
        من متوجه مشکل نشدم :eek:
        فقط سوال از عملکردش بود یا کدتون اشتباه کار میکنه ؟
        وقفه یک بار اجرا میشد !! یعنی بیش از یکبار وارد سرویس وقفه نمیشه ؟
        و این که نهایتا الان مشکلتون حل شده یا هنوزم هست ؟ :biggrin: oo:

        دیدگاه


          #5
          پاسخ : سوال در مورد وقفه خارجی

          نوشته اصلی توسط raha.net
          من متوجه مشکل نشدم :eek:
          فقط سوال از عملکردش بود یا کدتون اشتباه کار میکنه ؟
          وقفه یک بار اجرا میشد !! یعنی بیش از یکبار وارد سرویس وقفه نمیشه ؟
          و این که نهایتا الان مشکلتون حل شده یا هنوزم هست ؟ :biggrin: oo:
          وقفه خارجی من باید با فشار دادن یه کلید فعال بشه. قبل از اینکه کلید رو بزنم 1 بار اجرا میشد. در ادامه درست کار میکرد.

          دیدگاه

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