اطلاعیه

Collapse
No announcement yet.

سوال در مورد وقفه خارجی (کممممک)

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

    #16
    پاسخ : سوال در مورد وقفه خارجی (کممممک)

    ببین فرض کن پردازنده داره خط x رو انجام میده. اگه در همون لحظه وقفه صادر بشه، آدرس x در استک ذخیره میشه و برنامه به روتین وقفه پرش میکنه. بعد از اینکه روتین وقفه تموم شد آدرس x رو از پشته استخراج میکنه و میپره به همون آدرس.

    یهنی اگر در برنامه شما خط 15 در حال اجرا شدن بود و وقفه صادر شده پس از اجرای اون دوباره میپره خط 15 :agree:
    گفت که دیوانه نهی لایق این خانه نهی

    دیدگاه


      #17
      پاسخ : سوال در مورد وقفه خارجی (کممممک)

      با AVR Studio اینجوری نشون میده:
      http://upload7.ir/preview.php?user=&file=c3e84b9e7319b0bfdfbd590 4eda458737cb54d5f
      چرا توی وقفه رفتن رو نشون نمیده؟؟
      http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

      دیدگاه


        #18
        پاسخ : سوال در مورد وقفه خارجی (کممممک)

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

        دیدگاه


          #19
          پاسخ : سوال در مورد وقفه خارجی (کممممک)

          نوشته اصلی توسط Saman Taghipour
          با AVR Studio اینجوری نشون میده:
          http://upload7.ir/preview.php?user=&file=c3e84b9e7319b0bfdfbd590 4eda458737cb54d5f
          چرا توی وقفه رفتن رو نشون نمیده؟؟
          شما که شراط وقفه رو براش ایجاد نکردی که بره توی وقفه
          شرطش اینکه که روی پایه مربوط به وقفه پالسی ایجاد بشه
          گفت که دیوانه نهی لایق این خانه نهی

          دیدگاه


            #20
            پاسخ : سوال در مورد وقفه خارجی (کممممک)

            نوشته اصلی توسط Finder_
            دوست عزیز فکر کنم اشتباه متوجه شدی
            خط 14 فقط مجوز اجرای وقفه توسط پردازنده رو اجرا میکنه
            لزومی نداره بعد از جرای اون همون لحظه بپره توی وقفه
            توی شبیه سازی Button گذاشتم.
            http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

            دیدگاه


              #21
              پاسخ : سوال در مورد وقفه خارجی (کممممک)

              شبیه سازیش رو ببین و اجرا کن
              http://upload7.ir/preview.php?user=&file=1a946a682f664750e0519c7 0fc2134f32c61bce5
              http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

              دیدگاه


                #22
                پاسخ : سوال در مورد وقفه خارجی (کممممک)

                نوشته اصلی توسط Finder_
                شما که شراط وقفه رو براش ایجاد نکردی که بره توی وقفه
                شرطش اینکه که روی پایه مربوط به وقفه پالسی ایجاد بشه
                الان ایجاد کردم. دستور ;GIFR=0x40 رو اضافه کردم. بازم نرفت.
                http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                دیدگاه


                  #23
                  پاسخ : سوال در مورد وقفه خارجی (کممممک)

                  اصلا AVR Studio مهم نیست. چون بجاش کلید گذاشتم.

                  اینو ببین لطفا، متن کتابه:
                  مراحل اجرای یک وقفه:
                  1) میکروکنترلر دستوری که در حال اجرای آن می باشد را به پایان رسانده و آدرس دستورالعمل بعدی را در stack ذخیره میکند.
                  این مثال: توی خط 14 بوده. خط بعدی که 15 باشه رو توی stack ذخیره میکنه.

                  2) به بردار وقفه مربوطه پرش میکند و برنامه یا زیر روال سرویس وقفه (ISR) را انجام میدهد.
                  3) پس از اتمام زیر روال وقفه، آدرس دستورالعمل بعدی (که توی مثال من 15 هست) که در مرحله 1 در stack ذخیره کرده بود را برمیدارد و به ادامه برنامه برمیگردد.
                  http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                  دیدگاه


                    #24
                    پاسخ : سوال در مورد وقفه خارجی (کممممک)

                    یک اشتباه کوچیک در مقدار دهی PORT!.0 داشتید

                    خدمت شما:
                    http://www.4shared.com/rar/w4uSdB4Gba/test15.html
                    گفت که دیوانه نهی لایق این خانه نهی

                    دیدگاه


                      #25
                      پاسخ : سوال در مورد وقفه خارجی (کممممک)

                      نوشته اصلی توسط Finder_
                      یک اشتباه کوچیک در مقدار دهی PORT!.0 داشتید

                      خدمت شما:
                      http://www.4shared.com/rar/w4uSdB4Gba/test15.html
                      خب توی جواب که تاثیری نداره.
                      اصلا توی این برنامه 2 تا خط 12 و 13 تاثیری ندارن توی جواب
                      MCUCR=0x02;
                      GIFR=0x40;
                      نمیدونم چرا :sad:
                      http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                      دیدگاه


                        #26
                        پاسخ : سوال در مورد وقفه خارجی (کممممک)

                        چرا نداره؟
                        با دستور MCUCR=0x02; شما اینتراپت رو روی لبه ی پایین رونده تنظیم میکنید.
                        دستور GIFR=0x40 هم پرچم مربود به اینتراپت صفر رو پاک میکنه
                        گفت که دیوانه نهی لایق این خانه نهی

                        دیدگاه


                          #27
                          پاسخ : سوال در مورد وقفه خارجی (کممممک)

                          نوشته اصلی توسط Finder_
                          چرا نداره؟
                          با دستور MCUCR=0x02; شما اینتراپت رو روی لبه ی پایین رونده تنظیم میکنید.
                          دستور GIFR=0x40 هم پرچم مربود به اینتراپت صفر رو پاک میکنه
                          وقتی حذفشون میکنم بازم مدار جواب میده آخه.
                          http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                          دیدگاه


                            #28
                            پاسخ : سوال در مورد وقفه خارجی (کممممک)

                            توی این سوال واسه هر 4 تاش جواب میده آخه
                            ;MCUCR=0x00
                            ;MCUCR=0x01
                            ;MCUCR=0x02
                            ;MCUCR=0x03
                            اصلا این خط رو پاک میکنم بازم جواب میده
                            احتمالا شرایطی هست که این دوتا خط انجام نمیشن.
                            http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                            دیدگاه


                              #29
                              پاسخ : سوال در مورد وقفه خارجی (کممممک)

                              نوشته اصلی توسط Saman Taghipour
                              توی این سوال واسه هر 4 تاش جواب میده آخه
                              ;MCUCR=0x00
                              ;MCUCR=0x01
                              ;MCUCR=0x02
                              ;MCUCR=0x03
                              اصلا این خط رو پاک میکنم بازم جواب میده
                              احتمالا شرایطی هست که این دوتا خط انجام نمیشن.
                              باید هم جواب بده دوست من
                              در مورد اول:
                              The low level of INT0 generates an interrupt request
                              با فشار دادن کلید این وقفه انجام میشه
                              مورد دوم
                              Any logical change on INT0 generates an interrupt request.
                              بازم با فشار کلید ایجاد میشه
                              همین طور بقیه موارد
                              گفت که دیوانه نهی لایق این خانه نهی

                              دیدگاه


                                #30
                                پاسخ : سوال در مورد وقفه خارجی (کممممک)

                                نوشته اصلی توسط Finder_
                                باید هم جواب بده دوست من
                                در مورد اول:
                                The low level of INT0 generates an interrupt request
                                با فشار دادن کلید این وقفه انجام میشه
                                مورد دوم
                                Any logical change on INT0 generates an interrupt request.
                                بازم با فشار کلید ایجاد میشه
                                همین طور بقیه موارد
                                ولی در مورد 2تای آخر چی؟
                                falling edge و rising edge که دیگه نباید مثل هم باشن. چون مخالف همن دیگه. درسته؟؟

                                پایه INT0 چون pull up شده مقدارش 1 هست.
                                پس وقتی کلید فشرده میشه از 1 باید بیاد به 0 . یعنی یه دونه falling edge درسته؟
                                اینم بگم من تازه دارم یاد میگیرم. شاید بعضی جاهای کتاب رو درست متوجه نشدم.
                                http://www.eca.ir/forum2/index.php?topic=108455.msg777842#msg777842

                                دیدگاه

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