اطلاعیه

Collapse
No announcement yet.

اینتراپت

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

    اینتراپت

    سلام
    با اینتراپت خارجی کار میکنم طوری که برنامه در حین انجام کارش با تحریک اینتراپت وارد روتین اینتراپت میشه
    اما دوس دارم بعد از خروج از روتین اینتراپت برنامه از جای دیگه شروع بشه؟
    داخل روتین اینتراپت که نمیشه برنامه رو به جای دیگه فرستاد چون بایر به RETURN برسه وگرنه قاط میزنه
    درضمن دوستان من با کدویژن کار میکنم
    راهش چیه؟؟؟؟؟؟
    انقدر احمق نیستم که فکر کنم کارم تموم شده

    #2
    پاسخ : اینتراپت

    سلام
    آخر اینتراپتت از دستور goto استفاده کن
    گفت که دیوانه نهی لایق این خانه نهی

    دیدگاه


      #3
      پاسخ : اینتراپت

      نوشته اصلی توسط moslem1368
      سلام
      آخر اینتراپتت از دستور goto استفاده کن
      نمیشه
      میکرو بعد از چندبار قاطی میکنه
      شنیدم که داخل اینتراپت نباید از goto استفاده کرد
      انقدر احمق نیستم که فکر کنم کارم تموم شده

      دیدگاه


        #4
        پاسخ : اینتراپت

        بعد از دستور Return ، میاد از اون جایی شروع میکنه که موقع وقوع اینتراپت برنامه رو وِل کرده.
        البته تو بسکامو که مطمئنم.

        درمورد کدویژن شک دارم.
        ?Why not

        دیدگاه


          #5
          پاسخ : اینتراپت

          سلام دوست عزیز ببین مگه هدف شما این نیست که بعد از اینتراپت بره به یک خط برنامه و مگه این به این معنا نیست که بعد اینتراپت یه کاری انجام شه و این هم مگه به این معنا نیست که بعد از کارهایی که برای اینتراپت نوشتید یه کارهای انجام شه خوب پس چرا این کارها داخل همون روتین اینتراپت نباشه؟؟؟ این هم معادل همون هست؟؟؟ نیست؟؟
          موفق باشید
          معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
          اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
          آموزش Modelsim

          دیدگاه


            #6
            پاسخ : اینتراپت

            فکر کنم شما میخوای برنامه مولتی تسک کنی؟؟؟؟
            [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

            دیدگاه


              #7
              پاسخ : اینتراپت

              منم قبلا میخواستم چنین کاری بکنم
              ولی وقتی به روتین اینتراپت مییام حتما باید Return اجرا شه وگرنه میکرو قاطی میکنه
              میشه یه کاری کرد و منم همونجوری کردم و جواب گرفتم ولی یه هدفم این بود که بتونم از روتین اینتراپت مستقیما به هر قسمت از برنامه برم ولی نشد
              [br /][hr]http://pcenter.ir[hr][br /]

              دیدگاه


                #8
                پاسخ : اینتراپت

                شدن که فکر کنم بشه
                تو PIC قبلا اینکار کرده بودم و جواب هم داد
                این متن تو دیتاشیت ATmega32 اومده

                During interrupts and subroutine calls, the return address Program Counter (PC) is stored on the Stack. The Stack is effectively allocated in the general data SRAM, and consequently the Stack size is only limited by the total SRAM size and the usage of the SRAM. All user programs must initialize the SP in the reset routine (before subroutines or interrupts are executed). The Stack Pointer SP is read/write accessible in the I/O space. The data SRAM can easily be accessed through the five different addressing modes supported in the AVR architecture.
                شما با دستکاری شمارنده پشته میتونید آدرس خودتون جایگزین آدرس بازگشت از پشته کنید
                [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

                دیدگاه


                  #9
                  پاسخ : اینتراپت

                  ببینید مثلن با میکرو 4تا کار میخوام انجام بدم... وقتی میکرو درحال انجام 1کیش هست وارد اینتراپت میشم و با 1متغیر بعنوان سلکتور تعیین میکنم کدوم کار انجام بشه
                  میشه تو روتین اینتراپت آدرس stackv رو تغییر بدیم؟؟؟
                  که مثلن بره به یه if که تغییر بده مسیر برنامه رو :angry: :angry:
                  انقدر احمق نیستم که فکر کنم کارم تموم شده

                  دیدگاه


                    #10
                    پاسخ : اینتراپت

                    نوشته اصلی توسط SILVER MAN
                    ببینید مثلن با میکرو 4تا کار میخوام انجام بدم... وقتی میکرو درحال انجام 1کیش هست وارد اینتراپت میشم و با 1متغیر بعنوان سلکتور تعیین میکنم کدوم کار انجام بشه
                    میشه تو روتین اینتراپت آدرس stackv رو تغییر بدیم؟؟؟
                    که مثلن بره به یه if که تغییر بده مسیر برنامه رو :angry: :angry:
                    سلام دوست عزیز این حالت را چک کردی که مثلا توی روتین اینتراپت یه متغیر مقداردهی بشه و بیرون از ان یک if مشخص کنه که به لیبل دلخواه پرش کنی؟؟؟
                    معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
                    اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
                    آموزش Modelsim

                    دیدگاه


                      #11
                      پاسخ : اینتراپت

                      نوشته اصلی توسط SILVER MAN
                      ببینید مثلن با میکرو 4تا کار میخوام انجام بدم... وقتی میکرو درحال انجام 1کیش هست وارد اینتراپت میشم و با 1متغیر بعنوان سلکتور تعیین میکنم کدوم کار انجام بشه
                      میشه تو روتین اینتراپت آدرس stackv رو تغییر بدیم؟؟؟
                      که مثلن بره به یه if که تغییر بده مسیر برنامه رو :angry: :angry:
                      خب چرا از RTOS استقاده نمیکنی؟
                      اینطوری خیالت از بابت یه سری مشکلات دیگه هم راحته
                      [glow=red,2,300]تاپيک هاي ايجاد شده[/glow]

                      دیدگاه


                        #12
                        پاسخ : اینتراپت

                        سلام دوستان
                        منم این مشکل گاها برام پیش مییاد ولی چون حتما باید میکرو دستور return رو ببینه .منم داخل برنامه میامدم هرجا که لازم بود با دستور if ویا غیره متغیری رو چک میکردم تا اگه اون متغیر تغییر کرد برحسب مقدار متغییر به برچسب مورد نظر پرش کنه و این متغییر هم در روتین اینتراپت برحسب نیاز برنامه تغییر داده میشه .با این روش کارم راه میافتاد ولی حجم برنامه زیاد میشه .شما راهی به نظرتون میرسه ؟؟؟؟؟؟؟؟؟؟؟
                        روزی که درک کردیم همه چیز به خدا تعلق دارد . آن روز .روز طلوع دانش است

                        دیدگاه


                          #13
                          پاسخ : اینتراپت

                          سلام دوست عزیز
                          این برنامه تقسیم کننده هشت بیتی که پایین میذارم به زبان اسمبلیه که آقای طراح در تاپیک زبان اسمبلی گذاشته بودند دقیقا یادم نیست صفحه چند ولی خدا خیرش بده هرکی نوشته
                          تو خط یکی مونده به آخرش ببین آدرس پروگرم کانتر رو چطوری خود برنامه نویس هفت تا کم میکنه
                          امتحان نکردم ولی شاید بشه دیگه
                          lc,var1,var2,mod همگی متغیر هستند
                          تو avr studio برنامه اتو دیباگ کن تا شماره پروگرم کانتر خط مورد نظرتو پیدا کنی

                          div08u:
                          clr mod
                          ldi lc,8
                          lsl var1
                          rol mod
                          cp mod,var2
                          brcs PC+3
                          inc var1
                          sub mod,var2
                          dec lc
                          brne PC-7
                          ret

                          دیدگاه


                            #14
                            پاسخ : اینتراپت

                            نوشته اصلی توسط ADMlN
                            خب چرا از RTOS استقاده نمیکنی؟
                            اینطوری خیالت از بابت یه سری مشکلات دیگه هم راحته
                            RTOS?????????????? :eek:
                            چی هست؟
                            انقدر احمق نیستم که فکر کنم کارم تموم شده

                            دیدگاه


                              #15
                              پاسخ : اینتراپت

                              نوشته اصلی توسط SILVER MAN
                              RTOS?????????????? :eek:
                              چی هست؟
                              سلام
                              RTOS=Real-time operating system
                              یکی از مثال های بارز برای سیستم های RTOS همین سیستم کامپیوتری هستش که جلوی شماست و پردازش ها به صورت Real time هستش
                              http://en.wikipedia.org/wiki/Real-time_operating_system
                              http://www.freertos.org/
                              http://www.arm.com/community/software-enablement/rtos-real-time-operating-system.php
                              http://rtos.com
                              معجزه اين است که هرچه داشته هايت را بيشتر با ديگران سهيم شوي،داراتر مي شوي (لئونارد نيموي)
                              اگر مغزانسان،چنان ساده مي بود که ما از آن سر در مي آورديم،هنوز چنان احمق بوديم که هيچ از آن سر در نمي آورديم!
                              آموزش Modelsim

                              دیدگاه

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