اطلاعیه

Collapse
No announcement yet.

سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

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

    سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

    سلام آقای نحوی
    یه مشکل خیلی حاد دارم. راستش دارم رو یه پروژه کار می کنم که پروژه پایان تحصیلات من هست و خیلی هم براش وقت ندارم. فقط امیدوارم لطف کنید و زودتر جواب من رو بدین. من تو این پروژه از یه 89S51 استفاده کردم. این که پروژه چی هست ، بماند چون مفصله. فقط در این حد بگم که برنامه ای که من نوشتم ، به این ترتیب عمل می کنه که بعد از اینکه میکرو 8 بار وقفه خارجی دریافت کرد ، میره و ادامه کار رو اجرا می کنه. برای جلوگیری از بانس احتمالی هم از یک تاخیر استفاده کردم که هر کدام از سیگنال های وقفه رو فقط یک بار بشمره. توی پروتیوس دقیقا به همین صورت عمل می کنه. اما در عمل ، بعد از 3 یا 4 بار وقفه ، وارد جریان برنامه میشه. که برای من غیر قابل توجیه بود! چون بعد از هر بار دریافت وقفه ، برنامه 1 ثانیه توقف می کنه و سپس منتظر وقفه بعدی می مونه. اما در عمل این طور نیست. در ضمن وقفه ها هم حساس به لبه هستن. واقعا منو گیج کرده. چند روز دیگه هم کنکور کارشناسی دارم! و به این دلیل حیلی نمی تونم روش مانور بدم! خیلی ممنون میشم اگه کمکم کنید.
    در ضمن یک قسمت ( 4 پین از پورت 1 ) از میکرو هم به دریافت پسورد اختصاص داره. که این هم با وجود اینکه کد رو درست وارد می کنم ، Error ( که خودم براش تعریف کردم ) میده. در صورتی که توی پروتیوس ، هیچ کدوم از این مشکلات وجود نداره. از دیگر دوستان هم اگر کسی می تونه کمک کنه خیلی خیلی ممنون میشم.

    #2
    سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

    سلام . خوبی دوست عزیز ؟
    چند نکته :
    1- توی تنظیم فاصله های زمانی نمیتونید به پروتئوس اطمینان کنید .

    2- بعد از اینکه بانس رو گرفتید اینقدر در وقفه بمونید تا به حالت اولیه برگرده بعد از وقفه خارج شید . یا اگه نمیتونید در وقفه ثابت بمونید یه بیت دیگه تعریف کنید که نمایانگر حالت قبل ورودی وقفه باشه . از طریق اون بانس رو بگیرید .

    3- برای گرفتن بانس کلید هم به جای ایجاد تاخیر ( البته بانس اولیه رو باید با تاخیر بگیرید) ولی برای آخرش اونقدر صبر کنید تا طرف دستش رو از روی کلید برداره .
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

    دیدگاه


      #3
      سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

      سلام

      یا اگه نمیتونید در وقفه ثابت بمونید یه بیت دیگه تعریف کنید که نمایانگر حالت قبل ورودی وقفه باشه . از طریق اون بانس رو بگیرید .
      ببخشید میشه بیشتر توضیح بدین ؟ متوجه نشدم!

      دیدگاه


        #4
        سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

        سلام خوبی دوست عزیز ؟
        ببینید اگه وقفه شما بانس داشته باشه کار سخت میشه . یعنی باید در نظر بگیرد که وقفه شما در حالت عادی و بدون بانس هر چقدر یک بار تکرار مشه . بعد زمانیکه وقفه فعال شده باید مثلا یه تایمر رو فعال کنید بعد زمان بگرید مثلا هر 10 میلی ثانیه یه عدد رو جمع کنید بعد اگه وقفه دوباره فعال شده به اون عدد نگاه کنید ببینید چند تا 10 میلی ثانیه گذشته اگه 1 دونه گذشته بود که مشخصه بانس هست ولی اگه بیشتر گذشته بود مثلا 10 تا ( بسته به فاصله وقفه های شما ) مشخص که وقفه جدید هست . وقفه هایی که مربوط به بانس هست رو در نظر نگیرید ولی وقفه هایی که درست هست رو اجرا کنید .
        این اولین ایده ای هست که به ذهنم رسید که کار میکنه .
        به این نکته توجه داشته باشید . اگه زمانیکه در وقفه میکرو هستید اگه توسط بانس 2 باره وقفه فراخونی بشه زمانی که از وقفه خارج شدید دوباره بلافاصله به تعداد بانسی که داشتید وفقه اجرا میشه برای همین نمیشه با تاخیر این مشکل رو حل کرد.
        موفق باشید .
        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

        دیدگاه


          #5
          سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

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

          دیدگاه


            #6
            smt

            سلام دوست عزیز
            من چند تا چیز کلی میگم:
            اول اینک در ابتدای برنامه ات چند میلی ثایه تاخیر بینداز . یعنی اینکه اولین کار میکرو تاخیر باشه، برای اینکه کریستال به حالت پایدار خود برسد.
            دوم اینکه مکان استک را به یک جای مطمئن منتقل کن. با توجه به اینکه حدودا چقدر استفاده میشه . که با توجه به تعداد وقفه ای که گفته ای حتما این کار را باید انجام بدهی.
            و سوم اینکه به نظرم یک دیبانس مطمئن میتونه یه فلیپ فلاپ باشه .
            دو نکته ی اولی کلی هستند . تو هر پرو÷ه ای باید رعایت شوند.
            امیدوارم مشکلت هر چه زود تر حل بشه.
            خدا حافظ

            دیدگاه


              #7
              سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

              سلام . خوبی دوست عزیز ؟
              تا جایی که من خاطرم هست اون خروجی بانس نداشت ولی شما میتونید یه کار کنید و اونم اینکه وقفه رو حساس به لبه بکنید و زمانی که اولی وقفه اومد وقفه رو به مدت یک ثانیه از کار بندازید بعد دوباره فعالش کنید که جلوی بانس احتمالی رو هم گرفته باشید .
              موفق باشید.
              شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
              هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
              چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

              دیدگاه


                #8
                پاسخ : سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

                سلام من یه سوال دارم
                من کی پد 4*4 رو داخل وقفه خارجی 1(external intrrupt 1)مگا 16 اسکن می کنم و داخل وقفه تاخیر delay 7 ثانیه ای دارم حالا می خوام وسط این تاخیر هم وقفه فعال بشه . داخل وقفه دستور فعال شدن وقفه کلی رو میدم #asm("sei&quot داخل پروتئوس خیلی خوب جواب میده ولی در عمل انگار وقتی هر کلید رو میزنی میکرو ریست میشه . کسی میدونه چرا این طوریه؟

                دیدگاه


                  #9
                  پاسخ : سوال در مورد رفع مشکل بانس وقفه و صفحه کلید

                  سلام.
                  اولا اینکه 7 ثانیه در وقفه بمونید اشتباه هست باید روند کدتون رو تغییر بدید.
                  ولی شما زمانی که در وقفه هستید اگه وقفه رو مجدد فعال کنید تا زمانی که در وقفه هستید وقفه های جدید که میان اجرا نمیشن تا از وقفه بیایید بیرون.
                  میکروتون چی هست؟ اگه ای وی آر باشه تا جایی که خاطرم هست درون وقفه، وقفه فعال نمیشه.
                  موفق باشید
                  شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                  هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                  چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                  دیدگاه

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