اطلاعیه

Collapse
No announcement yet.

کانتر منفی...

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

    کانتر منفی...

    سلام
    چطور میتونم از یه کانتر هم به صورت صعودی و هم به صورت نزولی استفاده کنم؟؟؟ یعنی 2 تا پالس داشته باشم واسه یکیش کانتر و اضافه کنه و اگه پالس دوم اومد مقدار کانتر و یکی کم کنه.
    همچین چیزی عملیه؟؟؟ چطور میتونم همچیت برنامه ای بنویسم؟؟؟
    ( فرکانس پالسها بالاست نمیخوام از if و ... استفاده کنم)
    The harder I work, the luckier I get

    #2
    پاسخ : کانتر منفی...

    منظورم از 2 تا پالس 2 تا ورودی است....
    The harder I work, the luckier I get

    دیدگاه


      #3
      پاسخ : کانتر منفی...

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

      اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

      دیدگاه


        #4
        پاسخ : کانتر منفی...

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

        دیدگاه


          #5
          پاسخ : کانتر منفی...

          سلام عزیز دل برادر

          همونطوریکه دوستان اشاره کردن ما کانتر پائین شمار نداریم. در عوض شما می تونید با تعریف یه تابع این کار رو خودتون انجام بدین.

          برای این منظور از دوتا کانتر در میکرو استفاده می کنید. فرض می کنیم که هر دو حساس به لبه ی بالا رونده هستن. در اینصورت با هر بار ورود لبه ی بالا رونده زیر تابع مربوط به وقفه ی این کانترها اجرا میشن. حالا در زیر وقفه ی کانتر اولی به مقدار یک متغیر یک واحد اضافه میشه و در زیر وقفه ی کانتر دوم از مقدار متغیری یه واحد کم میشه.

          حالا نکته اینجاست که در کانتر دوم متغیر باید یک مقدار اولیه ماکزیمم داشته باشه که از اون مقدار یکی یکی کم بشه. اگه تعداد شمارش های نزولی معلوم باشه که مشکلی نیست اما اگه این تعداد معلوم نیست می تونید یه متغیر از نوع بزرگ (مثلا Long یا Single در بسکام) تعریف کنید و مقدار اولیه شو بزرگترین مقدار مجاز بذارید تا با هر بار اتفاق وقفه یکی از اون کم بشه.

          در انتها برای اینکه بفهمید در حالت نزولی چه تعداد شمردین کافیه که مقدار اولیه متغیر رو منهای مقدار کنونی متغیر بکنید. همین.

          اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم

          {خلاف قوانین}
          [img width=124 height=100]http://mortezark.persiangig.com/image/Web/6_3.PNG[/img]

          دیدگاه


            #6
            پاسخ : کانتر منفی...

            تایمر/کانترهای خانواده XMEGA قابلیت شمارش بصورت هم صعودی و هم نزولی را دارند.
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه


              #7
              پاسخ : کانتر منفی...

              با تشکر فراوان از دوست خوبمون جناب طراح ، به نکته ی بسیار خوبی اشاره کردن.

              اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم

              {خلاف قوانین}
              [img width=124 height=100]http://mortezark.persiangig.com/image/Web/6_3.PNG[/img]

              دیدگاه


                #8
                پاسخ : کانتر منفی...

                با تشکر از تمامی دوستان
                مشکلم حل شد
                ممنون از راهنماییتون... :job: :job:
                The harder I work, the luckier I get

                دیدگاه

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