اطلاعیه

Collapse
No announcement yet.

وقفه خارجی int

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

    وقفه خارجی int

    دوستان من می خواهم یه سنسور smt160 رو بخونم اما برنامم با وقفه ها مشکل داره.کسی مدونه مشکلش چیه؟
    Config Int0 = Rising
    Config Int1 = Falling
    Enable Int0
    Enable Int1
    Stop Timer1
    Enable Interrupts
    On Int0 Int0_int
    On Int1 Int1_int
    Do
    B = Xl + Xf
    F = Xl / B
    F = F - 0.32
    Temp = F / 0.0047
    Lcdat 2 , 1 , Round(temp) ; "c "
    Loop
    End

    Int1_int:
    Stop Timer1
    Xl = Timer1
    Timer1 = 0
    Start Timer1
    Return

    Int0_int:
    Stop Timer1
    Xf = Timer1
    Timer1 = 0
    Start Timer1
    Return
    Be sure your sin will find you out

    #2
    پاسخ : وقفه خارجی int

    اگه این کل برنامه هست که خیلی اشکال داره.
    1- نوع متغیر ها رو تعیین نکردی. دقت کن که چون از دستور Round استفاده کردی متغیر Temp لزوما باید از نوع Single باشه.
    2- نوع میکرو مشخص نشده.
    3- فرکانس کاری رو تعیین نکردی.
    4- اگه برای نمایش از LCD استفاده می کنی باید پیکره بندیش کنی.
    5- دستور LCDAT برای نمایشگرهای گرافیکیه . دقت کن.

    این ایرادها رو برطرف کن تا خطای Debug نداشته باشی.
    حالا تست کن ببین مشکل داره یا نه.

    دیدگاه


      #3
      پاسخ : وقفه خارجی int

      احسنت حامد جان.
      خیلی ریز بینی
      www.icesi.ir

      دیدگاه


        #4
        پاسخ : وقفه خارجی int

        ممنون.عزیز جان،من دستورات تعریفیمو دیگه اینجا ننوشتم.فقط قسمت مشکل دار برناممو گذاشتم.همه اونهایی که میگی رو نوشته بودم.
        Be sure your sin will find you out

        دیدگاه


          #5
          پاسخ : وقفه خارجی int

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

          برنامه از لحاظ ساختاری ایراد نداره.
          بدون سنسور تست کردی؟ یعنی به صورت دستی .
          از چه میکرویی استفاده می کنی؟
          پایه های اینتراپت از لحاظ سخت افزاری سالم هستند؟ (به صورت I/O می تونی استفاده کنی؟)
          کدوم وقفه کار نمی کنه؟

          دیدگاه


            #6
            پاسخ : وقفه خارجی int

            mega32 .پایه ها هم سالمه.می ره توی روتین وقفه و بر نمی گرده.ظاهرا همه میگن مشکلی نداره ولی همین 4 خط برنامه 2 هفته هست که منو سر کار گذاشته.دیگه دارم دیوونه میشم :angry:
            Be sure your sin will find you out

            دیدگاه


              #7
              پاسخ : وقفه خارجی int

              از کجا فهمیدی که وارد زیر برنامه وقفه میشه؟
              یه پایه رو بگو تو زیر برنامه یک کنه. اگه یک شد مطمئنا خارج هم میشه.
              اگه نشه ایراد سخت افزاریه.
              البته این نظر منه

              دیدگاه


                #8
                پاسخ : وقفه خارجی int

                ببینید عیب یابی یه مراحلی داره.

                1- یا ic رو عوض کن ببین همین مشکل رو باز هم داری.
                2- یه برنامه ساده تر بنویس که اینتراپت هم توش به کار رفته باشه ببین کار میکنه.
                3- ببین اینتراپت نرم افزاریت کار میکنه.همون پرچم سر ریزی تایمر ها.
                4- مطمئنی پایه اینتراپت به حالت اولیه خود برمیگرده؟
                :NO:
                www.icesi.ir

                دیدگاه


                  #9
                  پاسخ : وقفه خارجی int

                  آقا این مشکل منم هست
                  من از اینتراپت Urxc توی بیسکام استفاده کردم

                  کلی چک کردم ، با یه برنامه ساده هم امتحان کردم
                  وقتی از rs232 اطلاعاتی میاد اینتراپت فعال میشه و زیر برنامه رو اجرا میکنه
                  اما بعدش دیگه باقی برنامه اجرا نمیشه ، یعنی بر نمیگرده توی برنامه

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

                  کی میتونه کمک کنه؟
                  استفاده راحت از رپیدشیر و مگاپلود و سایر سرورها
                  http://rapidbaz.com/from/26877

                  دیدگاه


                    #10
                    پاسخ : وقفه خارجی int

                    رضا جان لطف کن سوالت رو تو یه تاپیک جدید مطرح کن تا احیانا اگه کسی همین مشکل رو داشت یا راه حلی می دونست سریع تر بتونه مراجعه کنه.
                    در مورد وقفه دریافت سریال هم باید بگم ( و التبه وقفه خارجی) تا حالا به همچین مشکلی برنخوردم. اگه بتونی یه نمونه ساده از برنامه ای که از وقفه خارج نمیشه رو تو همون تاپیک بذاری بهتر میشه بررسی کرد.

                    دیدگاه


                      #11
                      پاسخ : وقفه خارجی int

                      توی روتین وقفه میره چون ازش خواستم توی روتین وقفه یه چیزی روی lcd بنویسه و این کارو کرد،پس توی روتین وقفه میره.من همزمان پایه خروجی سنسورو(smt160) به پایه وقفه خارجی 0 و 1 دادم.این کار مشکلی ایجاد نمیکنه؟ فرکانس پالس 4khz هست پس امکان نداره قبل از اینکه دستورات روتین وقفه انجام بشه وقفه دیگه ای اتفاق بیافته.
                      Be sure your sin will find you out

                      دیدگاه


                        #12
                        پاسخ : وقفه خارجی int

                        یه کاری کن یه برنامه ساده بنویس. مثل این:

                        $regfile = "m32def.dat"
                        $crystal = 8000000

                        Enable Interrupts
                        Enable Int0
                        On Int0 Int0_int
                        Config Int0 = Rising
                        Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
                        Config Lcd = 16 * 2

                        Dim Count As Byte

                        Count = 0
                        Cls
                        Do
                        Locate 1 , 1
                        Lcd Count
                        Loop

                        End

                        Int0_int:
                        Incr Count
                        Return


                        بعد پایه Int رو با مقاومت زمین کن. حالا به صورت دستی پایه رو یک کن. ببین رو LCD شمارنده زیاد میشه یا نه.

                        دیدگاه


                          #13
                          پاسخ : وقفه خارجی int

                          چه عجب!ماا بالاخره یک جوابی از این وقفه گرفتیم.آقای جعفری این برنامه ساده ای که گفتید رو program کردم و جواب داد.حالا به نظر شما مشکل از کجای کاره؟
                          Be sure your sin will find you out

                          دیدگاه


                            #14
                            پاسخ : وقفه خارجی int

                            lcd که تو سخت افزاته lcd کارکتریه؟
                            اگه کارکتریه کدی که تو برنامه به کار بردی برای lcd گرافیکیه.
                            www.icesi.ir

                            دیدگاه


                              #15
                              پاسخ : وقفه خارجی int

                              یه چیزی که الان دیدم.
                              تو برنامه از تایمر استفاده کردی . درسته؟
                              پس کو پیکربندی تایمر ؟ ...=Config Timer1

                              دیدگاه

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