اطلاعیه

Collapse
No announcement yet.

اولویت بندی وقفه ها در AVR

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

    اولویت بندی وقفه ها در AVR

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

    اما حالا نگران تداخلشون هستم

    میخواستم بدونم روشی برای اولویت بندی اونها در AVR هست

    مثلا در ATmega32 , 128 به چه ترتیبی است؟؟؟

    تو ایسی های PIC که با یه زیر برنامه میشد

    حالا اینجا چطور؟؟؟

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

    وقفه ها تو ar دارای اولویت بندی ثابت و غیر قابل تغییرن:پایین ترین ادرس=بالا ترین اولویت.تنها کاری که برای جلوگیری از تداخل وقفه ها می توان انجام داد اینکه موقع رسیدگی به یک وقفه بقیه وقفه ها را غیر فعال کرد و هنگام خروج از روتین سرویس به وقفه مجددا انها را فعال کرد.
    http://www.eca.ir/forum2/index.php/topic,10159.0.html
    Engineering is the art of making what you want from things you can get.
    اموزش DSP ...........................
    http://www.eca.ir/forum2/index.php?topic=29824.0
    http://www.eca.ir/forum2/index.php?topic=32324.0

    دیدگاه


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

      سلام دوست عزیز
      هر وقت وارد یک وقفه شدی همه وقفه ها را disable کن و قبل از خروج از آن وقفه آن ها را enable کن.
      موفق باشید
      misagh_hi@yahoo.com

      دیدگاه


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

        این کار رو میکرو به صورت سخت افزاری و بدون اینکه از شما بپرسه انجام میده و لازم به انجام این کار نیست

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

        یعنی میشه آدرس روتین ها رو ترتیبشون رو عوض کرد؟؟؟

        دیدگاه


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

          اگه دوست ما آقای samisin کمک کنن ممنون میشم

          دیدگاه


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

            چه جالب.اما منظورتون از آدرس روتین چیه؟

            دیدگاه


              #7
              پاسخ : اولویت بندی وقفه ها در AVR

              منظورم آدرس بردار وقفه بود

              یکی از دوستان گفتند آدرس کوچکتر اولویت بالاتر داره

              میخواستم بدونم نمیشه آدرس بردار های وقفه رو تغییر داد

              اگه میشه به چه نحوی

              و اگه نمیشه ÷س لطفا اولویت ها رو بترتیب نام ببرین تا در جریان باشم

              دیدگاه


                #8
                پاسخ : اولویت بندی وقفه ها در AVR

                سلام
                اون میکرو هایی که قسمت حافظه بوت دارن ((سری atmega)) میشه این ترتیب رو تغییر داد مثلا تو کدویإ¾ژن فولدر inc رو باز کنید وفایل هدر mega32 رو باز کنید تا ترتیب وکدور اینتراپت هارو ببینید تغییرات لازم رو بدید وحال کنید ((اگه به درد خورد یه + بدید ما هم درجه بگیریم تورو خدا))

                دیدگاه


                  #9
                  پاسخ : اولویت بندی وقفه ها در AVR

                  برای مثال نوشته define ex_int0 2
                  define ex_int1 3
                  این شماره ها شماره ترتیب وکتور برنامه بوت هست حالا اگه ex_int1 2 بکنیم اینتراژت خارجی 1 به 0 الویت خواهد داشت وکتور 1 برای reset هست وقابل تغییر نیست فکر کنم

                  دیدگاه


                    #10
                    پاسخ : اولویت بندی وقفه ها در AVR

                    اگر منظورتون تغییر در اولویت وقفه است تا جایی که من میدونم خیر.



                    این مربوط به Mega32 است :


                    دیدگاه


                      #11
                      پاسخ : اولویت بندی وقفه ها در AVR

                      سلام
                      نوشته اصلی توسط samisin
                      سلام
                      اون میکرو هایی که قسمت حافظه بوت دارن ((سری atmega)) میشه این ترتیب رو تغییر داد مثلا تو کدویإ¾ژن فولدر inc رو باز کنید وفایل هدر mega32 رو باز کنید تا ترتیب وکدور اینتراپت هارو ببینید تغییرات لازم رو بدید وحال کنید ((اگه به درد خورد یه + بدید ما هم درجه بگیریم تورو خدا))
                      این کار امکان نداره اون ادرسها ثابتن
                      اگرامکان تغییر بود حتما رجیستری به این منظور قرارداده می شد
                      موفق باشین
                      دستی از دریا خواهد آمد...

                      دیدگاه


                        #12
                        پاسخ : اولویت بندی وقفه ها در AVR

                        اگه قبول کنیم که حافظه بوت atmega32 جداست
                        پس میشه لطفا یه search تو help کدویژن با external srartup و c compiler settingانجام بدید توضیح داده
                        ترتیب اینتراپت ها در tinny ممکن نیست ولی در atmega ممکنه
                        مطفا فایل 32.h رو یک نگاه بکنید
                        کامپایلر کوقع کامژایل int vector table درست میکنه با توجه به h.32 که با اجرای برنامه بوت در sram قرار میگیره ((وقتی وقفه سرتاسری فعال باشه))
                        در ورژن profesional کدویژن یک منو advanced تو setting کامپایلر هست که مستقیم این کار رو میکنه ولی میشه ترتیب این table رو با تغییر شماره وکتور در 32.h انجام داد باز اساتید تحقیق کنند چون وقتی میگه #define ex_int1 3 یعنی داره محل رو برا کامپایلر تعریف میکنه نه؟! پس با دستکاری و جا به جایی وکتور ها table عوض و cpu با ارجاع به ابتدای table شروع به چک کردن نوع وقفه میشه هر کدوم رو زودتر دید اونو اجرا میکنه

                        دیدگاه


                          #13
                          پاسخ : اولویت بندی وقفه ها در AVR

                          شاید difine هایی که انجام شده برای اونه که واضح تر باشه و کاربر اشتباه نکنه

                          مثلا وقتی بگن روتین وقفه شماره 2 ، ابهام داره

                          اما اگه اون ورژن کدویژنی که میگی این امکانات رو داره پس حتما شدنیه

                          اما من خیلی این دیتاشیت رو بالا پایین کردم و با انگلیسی دست و پا شکسته ای که بلد بودم(زبانم افتضاحه :mrgreen چیزی در مورد امکان تغییر اولویت بردار ها متوجه نشدم

                          میشه بگین تو کدوم قسمت دیتاشیت اشاره شده؟؟؟

                          راستی اون ورژن profesional کدویژن رو دارید؟؟؟

                          میشه Upload کنید؟؟؟

                          دیدگاه


                            #14
                            پاسخ : اولویت بندی وقفه ها در AVR

                            سلام....................
                            من فکر میکنم این بردارها و ادرساشون نوی ic به صورت سخت افزاری پیاده سازه شدن و امکان تغییر وجود نداره مثل اینکه شما تو فایل هدر ادرس پورت c را با پورت b عوض کنی... ایا جای پورتها باهم عوض میشه؟؟؟؟؟؟؟؟؟
                            http://www.eca.ir/forum2/index.php/topic,10159.0.html
                            Engineering is the art of making what you want from things you can get.
                            اموزش DSP ...........................
                            http://www.eca.ir/forum2/index.php?topic=29824.0
                            http://www.eca.ir/forum2/index.php?topic=32324.0

                            دیدگاه


                              #15
                              پاسخ : اولویت بندی وقفه ها در AVR

                              نوشته اصلی توسط samisin
                              سلام
                              اون میکرو هایی که قسمت حافظه بوت دارن ((سری atmega)) میشه این ترتیب رو تغییر داد مثلا تو کدویإ¾ژن فولدر inc رو باز کنید وفایل هدر mega32 رو باز کنید تا ترتیب وکدور اینتراپت هارو ببینید تغییرات لازم رو بدید وحال کنید ((اگه به درد خورد یه + بدید ما هم درجه بگیریم تورو خدا))
                              سلام .....
                              مگه بخواید فقط خودتونو گول بزنید با تغییر ادرس ها در این هدر فایل تنها میکرو به ادرس اشتباه میپره (موقع وقفه) و چون وقفه های غیر فعال reti میشن برمیگرده


                              Qt - A cross-platform application and UI framework

                              با کامپایلرهای قدرتمند GCC در Linux و MinGw در Windows

                              دیدگاه

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