اطلاعیه

Collapse
No announcement yet.

یه سوال درباره استفاده از وقفه ها؟

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

    یه سوال درباره استفاده از وقفه ها؟

    سلام
    اگه بخوایم از دوتا وقفه تو یه برنامه استفاده کنیم اولویت با کدومه؟
    راستش من می خوام با atmega8 یه ساعت (کریستال 32.768KHz ) با استفاده از 7segment بسازم از وقفه تایمر 0 برای رفریش کردن سگمنتا
    استفاده کردم و از تایمر 2 هم برای ساختن ساعت .حالا می خوام با استفاده از 3 تا شاسی بتونم ساعتو دقیقه رو کنترل کنم (یکی واسه انتخاب و
    دوتای دیگه برای کمو زیاد کردن زمان)
    دوستان عزیز میشه یه توضیح رو این اینتراپتا بدین و همچنین برای ساختن ساعت با 7segment ؟

    [glow=red,2,300]انشا ا... عید به همگی خوش بگذره[/glow]
    ذكات علم ياد دادنه ....

    #2
    پاسخ : یه سوال درباره استفاده از وقفه ها؟

    سلام
    اگه c کار میکنید من نمی دونم اما اگه با بیسکام کار میکنید نوشته کتاب اقای کاهه ( امکان اینکه شما برای وقفه اولویت تعین کنید نیست وهر وقفه ای که در ادرس پایین تر حافظه نوشته شده دارای اولویت میباشد) :nice: :nice: :nice:
    :bye

    دیدگاه


      #3
      پاسخ : یه سوال درباره استفاده از وقفه ها؟

      دوست عزیز از پاسختون ممنونم
      ولی من با C کار می کنم

      از دوستان کسی دیگه نظری نداره ؟
      ذكات علم ياد دادنه ....

      دیدگاه


        #4
        پاسخ : یه سوال درباره استفاده از وقفه ها؟

        سلام
        ببخشید که بی موقع وارد بحث شدم ولی منم یه سوال از وقفه ها داشتم
        اگه برایه یه پروژه ای به میکرویی مثلا با 5 تا وقفه احتیاج داشته باشیم چی کار کنیم؟
        چون avr ها این تعدادوقفه ها رو که ندارن
        صدایی از قلب آذربایجان

        Ya$a odlar yurdum AZERBAICANIM

        دیدگاه


          #5
          پاسخ : یه سوال درباره استفاده از وقفه ها؟

          یه مشکل دیگه تو انتخاب کریستال؟
          اگه از کریستال ساعت برای ساختن ساعت استفاده بکنییم ایا تو code vizard تو قسمت انتخاب کریستال باید مقدار کلاک میکرو رو همون 32.768در
          نظر بگیریم ؟
          یا میتونیم از یه کریستال خارجی هم استفاده کنیم ؟ (مثلا 16MHz )اگه میشه بعد تو قسمت فیوز بیتارو چطور تنظیم کنیم؟(فیوز بیتارو هم برای کریستال ساعت وهم برای کریستال خارجی پروگرام کنم ؟) اگه میشه یه توضیح کلی بدین تا متوجه بشم
          دوستان منتظر جوابتون هستم
          ذكات علم ياد دادنه ....

          دیدگاه


            #6
            پاسخ : یه سوال درباره استفاده از وقفه ها؟

            سلام به تمامی دوستان
            قبل ا زهر چیز من در جواب دوست عزیز مون mehrdadgh باید بگم در AVR ها تعداد وقفه ها در بعضی از 32 وقفه هم بیشتره
            اما بیشتر بحث در مورد روال وقفه در وقفه است مهم حالت های زیر رو بوجود میاره
            1- در زمانی که یک وقفه اجرا شده باشه (مثلا تایمر 1 ) و در زیر روال وقفه باشیم اگه وقفه دیگه ای اتفاق بیفته (مثلا وقفه خارجی 1 ) آدرس همون خط برنامه (در زیر روال تایمر ) ذخیره می شه و به زیر روال وقفه خارجی 1 پرداخته می شه به از اتمام و برخورد به دستور return به آدرس ذخیره شده (در زیر روال تایمر 1 ) بر می گرده و ادامه کار تا زمانی که به دستور return در زیر روال تایمر بر خورد کنیم این روال در صورتی که از وقفه های بیشتری هم استفاده کنیم به همین صورت انجام می شه
            2- فرض کنیم که از وقفه تایمر 1 استفاده شده د در زیر روال آن دستوراتی استفاده شده که بیشتر از زمان سرریز تایمر طول بکشه (مثلا wait 5 ) در این حالت قبل از اتمام این دستورات وقفه دوباره اجرا می شه و به خط اول زیر روال تایمر بر میگرده ( برای جلوگیری از این حالت از دستور stop timer X ) استفاده می شه و همچنین اگر حدس بزنیم که این حالت در چند وقفه یا در روال وقفه در وقفه ممکنه رخ بده باید حتما در خط اول زیر روال وقفه اونو غیر فعال و در انتهای زیر روال اونو فعال کنیم (دلیل هنگ کردن میکرو در بیشتر مواقع همینه که در این حالت به آدرس 0000 میره و برنامه رو از اول اجرا می کنه )

            مثال
            int0_isr
            disable int0
            ----------------
            --------------
            --------------
            -------------
            ------------
            --------------
            enable int0
            return
            3 - در حالتی که دو وقفه دقیقا در یک زمان اتفاق بیفته : که در این حالت ، اول اون وقفه ای اجرا می شه که در خطوط پایین تره برنامه نوشته شده باشه و بعد از اون روال وقفه در وقفه که توضیح داده شد اجرا می شه
            **** نکته اگه تو برنامه هاتون زیر روال زیاد دارین حتما مقدار HWSTACK = var رو افزایش بدین


            این توضیح رو هم بدم که پر قدرت ترین وقفه ها اون هایی هستند که می تونن cpu رو از مد های مختلف خواب بیدار کنند

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

            دیدگاه

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