اطلاعیه

Collapse
No announcement yet.

سوال در مورد وقفه

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

    سوال در مورد وقفه

    سلام دوستان :biggrin:
    سوالم اینه که آیا در avr وقفه در وقفه انجام میشه که یا خود وقفه در هنگام اجرای دستورات خودش دوباره اتفاق بیفتد یا یک وقفه مرتبه پایینتر یا بالاتر در اون وقفه اتفاق بیفتد مثلا وقفه تایمر درون وارسی وقفه خارجی می تونه اتفاق بیفته و برعکس
    و کامپایلر avr studio هنگام اجرای یک وقفه اتوماتیک آن وقفه را غیر فعال می کنه یا نه در موردcode vision چه طور
    ممنون :bye
    we are here,it must be done

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

    سلام،

    در میکروهای AVR وقفه ها کاملا از هم مستقل هستند و در یک زمان ممکنه چند وقفه با هم رخ بده.

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

    موفق باشید.

    صلی الله علیک یا اباعبدالله الحسین.

    صلی الله علی الباکین علی الحسین(ع).

    دیدگاه


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

      بهترین کار اینه که در روتین وقفه در اولین دستور اون وقفه را (و اگر دوست دارید همه وقفه ها را ) غیر فعال و در خط آخر قبل از RETI دوباره آنها را فعال کنید.

      در این صورت اگه روتین وقفه شما هم طولانی باشه مشکلی پیش نمیاد.

      در ضمن اصولا استفاده از لبه ( edge) برای تحریک وقفه بهتر از سطح (level) میباشد.

      دیدگاه


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

        با سلام من یک سوال درباره وقفه خارجی داشتم میخواستم صفحه کلید ماتریسی با وقفه خارجی بخونم تمام مراحل فعال کردن وقفه خارجی 0 با حساس به لبه pullup انجام میدم ولی وقتی کیلیدی میزنم
        وقفه اجرا نمیشه تو کتاب آقای ره افروز خوندم برای استفاده از وقفه خارجی باید کلاک io فعال باشه ممکن از اون باشه و اصلا این کلاک چی هست ممنون میشم کمکم کنید

        دیدگاه


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

          نوشته اصلی توسط hdg
          با سلام من یک سوال درباره وقفه خارجی داشتم میخواستم صفحه کلید ماتریسی با وقفه خارجی بخونم تمام مراحل فعال کردن وقفه خارجی 0 با حساس به لبه pullup انجام میدم ولی وقتی کیلیدی میزنم
          وقفه اجرا نمیشه تو کتاب آقای ره افروز خوندم برای استفاده از وقفه خارجی باید کلاک io فعال باشه ممکن از اون باشه و اصلا این کلاک چی هست ممنون میشم کمکم کنید
          از چه زبانی استفاده میکنید ؟

          دیدگاه


            #6
            پاسخ : سوال در مورد وقفه

            نوشته اصلی توسط hdg
            حساس به لبه pullup
            منظورتون از این جمله چیه؟؟
            از پروتئوس استفاده میکنید ؟

            اگر برنامتون رو بذارید راحتتر میشه اشکالشو پیدا کرد
            موفق باشید
            در دیر مغان آمد یارم قدحی در دست
            مست از می می خواران از نرگس مستش مست

            دیدگاه


              #7
              پاسخ : سوال در مورد وقفه

              سلام من از codvisin استفاده میکنم و منظورم از portd2 : pullup که مربوط به وقفه خارجی 0 به عنوان ورودی و pull up استفاده میکنم ممنون میشم کمکم کنید

              دیدگاه


                #8
                پاسخ : سوال در مورد وقفه

                سلام
                دوست عزیز اگه ممکنه برنامتونو بذارید
                در دیر مغان آمد یارم قدحی در دست
                مست از می می خواران از نرگس مستش مست

                دیدگاه


                  #9
                  پاسخ : سوال در مورد وقفه

                  در میکروهای avr برخلاف میکروهای فوقالعاده PIC از رویه یک سطحی برای وقفه ها استفاده شده بنابراین به زبان ساده در یک وقفه وقفه دیگری اجرا
                  نمیشود
                  :mrgreen:
                  اما در مورد کسی که نوشته بودند در روتین وقفه مربوطه وقفه کلی را غیرفعال کنید باید بگم که این کار احتیاجی نیست چون با رخ دادن هر وقفه
                  global intrupt flag
                  صفر میشود و وقفه دیگری رخ نمی دهد ولی هنگام برگشت از وقفه باید reti را استفاده کنید تا global intrupt فعال شود
                  نکته مهم در هنگام استفاده ا ز وقفه:
                  هنگام رخ دادن وقفه SREGدر STACK ذخیره نمیشود وشما باید ان را ذخیره وبعد بازیابی کنید
                  اگر میخواهید این مطالب را متوجه شوید باید سخت افزار میکروی خودرا خوب بشناسید

                  دیدگاه


                    #10
                    پاسخ : سوال در مورد وقفه

                    سلام .استفاده از وقفه در برناممون چه مزیتی نسبت به گذاشتن یه لیبل در اخر برنامه و ارجاع به اون داره؟

                    دیدگاه


                      #11
                      پاسخ : سوال در مورد وقفه

                      دوستان سلام
                      سال نو همتون مبارک باشه
                      من یه مشکلی با وقفه برخوردم می خواستم نظر شما رو بدونم
                      ببینید من یه برنامه ساده نوشتم با بیسکام که کلیاتش بصورت زیر هست :

                      کد:
                      Enable Interrupts
                      Enable Int0
                      On Int0 ALI
                      
                      set LED
                      
                      do
                      
                      
                      loop
                      
                      ALI:
                      
                      
                      return
                      برای سادگی عبارتهای بین do و loop و زیر برنامه وقفه رو حذف کردم
                      زمانی که سیگنال وقفه رو اعمال می کنم برنامه به زیر برنامه ALI پرش می کنه و اونو اجرا می کنه و بر می گرده اما تو برگتش LED رو به مدت چند ثانیه خاموش و مجددا روشن می کنه
                      حالا اگه برنامه بالا رو به صورت زیر بنویسم این اتفاق نمیفته یعنی LED همچنان روشن میمونه
                      علت چیست ؟
                      کد:
                      Enable Interrupts
                      Enable Int0
                      On Int0 ALI
                      
                      do
                      
                      
                      
                      loop
                      
                      ALI:
                      
                      
                      set LED
                      return
                      مردود شدن بهتر از با تقلب قبول شدن است

                      دیدگاه


                        #12
                        پاسخ : سوال در مورد وقفه

                        مردود شدن بهتر از با تقلب قبول شدن است

                        دیدگاه

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