اطلاعیه

Collapse
No announcement yet.

nested interrupt در AVR

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

    nested interrupt در AVR

    سلام

    تا به امروز فکر میکردم ویژگی nested interrupt (اینتراپ های تو در تو ) فقط برای Cortex ها باشه (سری های دیگه arm رو نمیدونم)
    ولی امروز این رو خوندم :

    When an interrupt occurs, the Global Interrupt Enable I-bit is cleared and all interrupts are disabled. The user software
    can write logic one to the I-bit to enable nested interrupts
    . All enabled interrupts can then interrupt the current
    interrupt routine. The I-bit is automatically set when a Return from Interrupt instruction – RETI – is executed.

    البته ثابت بودن priority هنوز آزار دهنده هست حتی در خانواده XMega هم ثابت است
    از جمله ی رفتگان این راه دراز
    باز آمده ای کو که به ما گوید راز
    هان بر سر این دو راهه از روی نیاز
    چیزی نگذاری که نمی آیی باز

    #2
    پاسخ : nested interrupt در AVR

    نه خیر . در xmega سه سطح priority برای هر وقفه وجود دارد.

    دیدگاه


      #3
      پاسخ : nested interrupt در AVR

      نوشته اصلی توسط sadeghmojtabaei
      نه خیر . در xmega سه سطح priority برای هر وقفه وجود دارد.
      برای تمام خانوادها PRIORITY وجود دارد ولی ثابت است .

      The priority of interrupts is determined by their vector address (or vector number). The vector address is fixed for a given device
      از جمله ی رفتگان این راه دراز
      باز آمده ای کو که به ما گوید راز
      هان بر سر این دو راهه از روی نیاز
      چیزی نگذاری که نمی آیی باز

      دیدگاه


        #4
        پاسخ : nested interrupt در AVR

        سلام،
        خیلی ممنون به خاطر به اشتراک گذاری این مطلب....
        چه طور باید I-bit رو یک کرد؟
        این طور درسته:
        (SREG|(0x01<<7
        همیشه بزرگوار تر از آن باشید که برنجید
        و نجیب تر از آن باشید که برنجانید!

        دیدگاه


          #5
          پاسخ : nested interrupt در AVR

          دستور اسمبلی :sei

          برای کد ویژن :
          کد:
          /* enable interrupts */
          #asm("sei")
          در gcc :
          کد:
          sei();
          از جمله ی رفتگان این راه دراز
          باز آمده ای کو که به ما گوید راز
          هان بر سر این دو راهه از روی نیاز
          چیزی نگذاری که نمی آیی باز

          دیدگاه


            #6
            پاسخ : nested interrupt در AVR

            یعنی در ابتدای هر زیربرنامه وقفه بیت I رو یک کنیم وقفه ها مون تودر تو میشه ؟
            من نمىآ‌توانم فرضیه «بىآ‌اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ‌دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
            آلبرت اینشتین
            منبع: http://fa.wikiquote.org

            دیدگاه

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