اطلاعیه

Collapse
No announcement yet.

وقفه ها در pic

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    وقفه ها در pic

    سلام به همه دوستان .
    بی زحمت دوستان درباره وقفه ها در pic توضیح بدهند :
    من با وقفه ها در 89c51 کار کردم(مرجع کتاب سپید نام) ولی در pic درست بلد نیستم.
    :(
    مثلا وقفه های:
    rb0/int
    tmr0
    tmr1
    tmr2
    تغییر وضعیت پورت b
    و وقفه سریال
    -روش استفادشون و کجا کاربرد دارن.
    -مخصوصا وقفه در تایمر ها چگونه است , چی جوری سرریز میشه و...
    -ریجیستر intcon عدد روبروش چگونه محاسبه میشود.
    این چند تا مسئله را توضیح بدهند , من خیلی ممنونشون میشوم.
    با تشکر فراوان. :!:
    زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

    #2
    وقفه ها در pic

    دقیقا مثل 8051 ولی نه به صورت اسمبلی به صورت C وقتی وقفه وارد میشه توی تابع میپره
    و زیر برنامه های شما رو انجام میده بعضی کامپایلرها خودشون پرچم وقفها رو صفر میکنن و بعضی باید خود برنامه نویس اون صفر کنه یه چیزیو به شما بگم مرد تر از این بچه ها ی سایت شما توی هیچ دانشگاهی پیدا نمیکنید هنوز استاد های ما به اندازه بعضی از بچه های سایت سواد ندارن(به غیر از خودم من که چیزی بلد نیستم) فقط مدرک دارن برای رسیدن به قله های علم باید خودتون تلاش کنید نه اینکه از کسی بخواید که مردونگی به شما ثابت کنه
    فهبني صبرت علی عذابک فکیف اصبرعلی فراقک
    گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

    دیدگاه


      #3
      وقفه ها در pic

      با سلام .

      و ممنون از جواب دادنتون , دوستان عزیز.

      من منظور بدی نداشتم , ولی اگر بی احترامی به کسی شده ببخشید.

      با اینکه من جوابم را به صورت کامل نگرفتم , ولی باز هم ممنون.

      در رابطه با وقفه میدونم , موقعی که وقفه اتفاق میافتد , میره به زیر روال وقفه , ولی بقیه مسائل چی , ریجیستر وغیره ؟؟؟؟؟؟؟؟؟؟؟؟

      با تشکر .
      زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

      دیدگاه


        #4
        وقفه ها در pic

        http://www.4shared.com/file/3464787/d2410c75/timer1.html
        این وقفه تایمر 0 ببینید مشکلتون حل میشه
        فهبني صبرت علی عذابک فکیف اصبرعلی فراقک
        گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

        دیدگاه


          #5
          وقفه ها در pic

          ممنون هادی جان .

          ولی این به زبان c هست , عزیز

          اگر میشه به صورت basic بذاری ممنون میشم.

          با تشکر فراوان.
          زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

          دیدگاه


            #6
            وقفه ها در pic

            شرمنده من اصلا بیسیک کار نمیکنم
            فهبني صبرت علی عذابک فکیف اصبرعلی فراقک
            گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

            دیدگاه


              #7
              وقفه ها در pic

              دشمنت شرمنده هادی جان.

              کتاب درباره برنامه نویسی c برای pic نمی شناسی ؟

              با تشکر
              زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

              دیدگاه


                #8
                وقفه ها در pic

                کتاب فارسی می خواین یا انگلیسی؟
                کاب خارجی که تا دلتون بخواد وجود داره. اگه لاتین خواستین بگین تو قسمت کتب تخصصی براتون بذارم.

                دیدگاه


                  #9
                  وقفه ها در pic

                  سلام دوست عزیز من از روی help خود کامپایلر کار میکنم اصلا کتاب در مورد pic ندارم ولی کتاب اقای مروج که به زبان بیسیک خیلی خوب سخت افزار رو توضیح داده
                  فهبني صبرت علی عذابک فکیف اصبرعلی فراقک
                  گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

                  دیدگاه


                    #10
                    وقفه ها در pic

                    سلام
                    وقفه RB0 چون میآ‌تواند بصورت حساس به لبه تنظیم شود برای آشکارسازی وجود یک لبه مثل زده شدن یک سوییچ بر روی بیت صفرم پورت B کاربرد دارد.
                    وقفهآ‌ TMR0 و سایر وقفهآ‌های TMR دارای دو کاربرد هستند الف) تایمری: که در آن بر اساس یک کلاک که هم از خارج میآ‌توان متصل کرد و هم از کلاک داخلی استفاده نمود مقدار کانتر را افزایش میآ‌دهند و در گذر از 255 به صفر اینتراپت رخ میآ‌دهد.
                    ب) کانتری: که وقوع یک لبه مثلا عبور یک شی از مقابل سنسور باعث تغییر کانتر میآ‌شود.

                    وقفه Change on Pin برای مواقعی کاربرد دارد که بخواهیم چند تغییر حالت که بیشتر حساس به سطح است را آشکار کنیم. مثلا چند سنسور دزدگیر را بخواهیم بررسی کنیم که در صورت تغییر میکرو آلارم بدهد. در این وقفه تغییر حداقل یکی از پایهآ‌ها باعث ایجاد وقفه میآ‌شود

                    دیدگاه


                      #11
                      وقفه ها در pic

                      با سلام.

                      ممنون sama عزیز که جواب دادی .

                      بی زحمت یک توضیح درباره:

                      - لبه در rb0 باید چی جوری تعریف بشود.

                      -و چی جوری میشه از timer ها استفاده کرد در برنامه.

                      -دیگر دوستانم اگر اطلاع دارند ممنون میشم راهنمایی کنند .

                      -(برای پروژه دانشگاهم موندم)

                      با تشکر.

                      اضافه شده در تاریخ :
                      هیچکسی نبود جواب ما را بدهد ؟ :( :( :( :( :( :( :( :( :( :( :(

                      آهای دوستا ن به دادم برسیدددددددددددددددددددددددددددددددددددددددددددددد :? :? :? :?

                      تو این سایت به این با حالی یک pic کار پیدا نمیشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

                      با تشکر
                      زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

                      دیدگاه


                        #12
                        وقفه ها در pic


                        http://www.4shared.com/file/3694498/963ba826/16f84.html
                        بازم حرفی هست

                        اضافه شده در تاریخ :

                        http://www.4shared.com/file/3737781/67e3fb70/timer.html
                        اینم برنامه شمارنده با استفاده از دووقفه
                        فهبني صبرت علی عذابک فکیف اصبرعلی فراقک
                        گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

                        دیدگاه


                          #13
                          وقفه ها در pic

                          با سلام.
                          وقفه در میکروکنترلر های PIC
                          اولا برای فعال سازی هر کدوم از انواع وقفه ها ابتدا باید بیت GIE از ثبات INTCON یک شود برای این منظور در زبان بیسیک می توانید از یکی از دستورات زیر استفاده کنید:
                          INTCON.GIE = 1
                          OR
                          ENABLE
                          مرحله دوم نوع وقفه ای است که می خواهید از آن استفاده کنید شما می توانید همزمان از چندین وقفه استفاده کنید.
                          برای فعال سازی وقفه پایه خارجی( INT) شما باید بیت INTE از ثبات INTCON را یک کنید با استفاده از دستور زیر:
                          INTCON.INTE=1
                          برای تعیین اینکه به لبه بالا رونده حساس باشه یا پایین رونیده باید از بیت INTEDG از ثبات OPTION_REG استفاده کنید. اگر این بیت 0 باشد وقفه روی این پایه به لبه پایین رونده حساس است و اگر یک باشد به لبه بالا رونده با دستور زیر می توانید مقدار این بیت را مشخص سازید:
                          OPTION_REG.INTEDG = 1
                          اکنون اگر وقفه ای رخ دهد بیت INTF از رجیستر INTCON یک می شود.
                          - وقفه تغییر پورت B:
                          یکی از وقفه های جالب PIC است اگر یکی از پایه های RB4,RB5,RB6,RB7 از میکرو تغییر کند (از صفر به یک یا از یک به صفر) این وقفه رخ می دهد به شرط آنکه این وقفه با یک کردن بیت RBIE از رجیستر INTCON فعال شده باشد. با کمک دستور زیر این کار را انجام می دهیم :
                          INTCON.RBIE =1
                          حال شاید شما مایل باشید که بدانید هرگاه این وقفه رخ می دهد کدام پایه مقدارش تغییر کرده است که برای این منظور کافیست در زیر روال وقفه بعد از دستور ON INTERRUPT مقدار پورت B را در یک متغیر ذخیره سازید. البته باید مدت زمان تغییر بالای تقریبا 10 میکروثانیه باشد .
                          -در باره تایمر0 و وقفه مربوط به آن می توانید به قسمت مقالات آموزشی الکترونیک سایت ما مراجعه کنید:
                          WWW.SELRO.NET
                          - تایمر 1:
                          وقفه در تایمر ها ی 16 بیتی وقتی رخ می دهد که مقدار تایمر از FFFF به صفر برسد. تعیین این مدت زمان به خود تایمر برمی گردد و به زودی اگر خدا بخواهد درباره ابن تایمر و تایمر 2 نیز در سایتمان مقالات جالبی را خواهیم گذاشت. اما من در اینجا فقط به شما می گم که هرگاه بخواهیم از وقفه تایمر1 استفاده کنیم باید بیت PEIE از رجیستر INTCON یک شود با دستور زیر:
                          INTCON.PEIE=1
                          بعلاوه باید بیت TMR1IE از ثبات (رجیستر) PIE1 یک شود با دستور زیر:
                          PIE1.TMR1IE=1
                          در این حالت هرگاه وقفه رخ دهد بیت TMR1IF از رجیستر PIR1 یک می شود.
                          در باره دیگر منابع وقفه می توانید از دیتا شیت میکروهای PIC استفاده کنید.
                          اما زیر روال وقفه:
                          روتین (زیر روال وقفه) با دستور ON INTERRUPT شروع می شود
                          سپس کد های خود را می نویسید در انتها اگر بخواهید وقفه مورد نظرتان باز قابل تکرار باشد باید بیت فلگ آن را در انتهای این روتین صفر کنید. مثلا برای تایمر 1 از این دستور استفاده می کنیم:
                          ON INTERRUPT
                          YOUR CODES
                          ..
                          PIR1.TMR1IE=0
                          RESUME
                          دستور RESUME برای بازگشت از روتین وقفه می باشد.
                          امیدوارم که تونسته باشم کمکتون کرده باشم.
                          WWW.SELRO.NET

                          دیدگاه


                            #14
                            وقفه ها در pic

                            با سلام.

                            ممنون هادی جان از زحمت کشیدی.

                            من Proteus 6 Professional دارم ولی فایلهایی که شما گذاشتی باز نمیکند و خطا ورژن میدهد.

                            یک راهنمایی یکنی ممنون میشم.
                            با تشکر.
                            زهر است عطاي خلق هر چند كه دوا باشد***حاجت ز كه مي خواهي جايي كه خدا باشد

                            دیدگاه


                              #15
                              وقفه ها در pic

                              نوشته اصلی توسط arem
                              با سلام.

                              ممنون هادی جان از زحمت کشیدی.

                              من Proteus 6 Professional دارم ولی فایلهایی که شما گذاشتی باز نمیکند و خطا ورژن میدهد.

                              یک راهنمایی یکنی ممنون میشم.
                              با تشکر.
                              دوست عزیز فکر کنم اکثر بچه ها با 6.9 کار می کنن واسه همین این مشکل براتون پیش میاد.
                              اگه براتون مقدور هست این ورژن رو دانلود کنید(توسایت هست) تا مشکلتون حل بشه.
                              موفق باشید.

                              دیدگاه

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