اطلاعیه

Collapse
No announcement yet.

فرکانس متر با AVR

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

    فرکانس متر با AVR

    من میخوام یک فرکانس متر با AVR بسازم که زیاد دقت برام مهم نیست و از تایمر 16 بیتی استفاده میکنم با کلاک تایمر 16 مگ
    حالا چندتا سوال
    1- فرق بین اینتراپت و Input Capture چیه ؟ یعنی سیگنال رو به اینتراپ بدم تا Input Capture ؟؟؟
    بهترین روش برای محاسبات چگونه است ؟

    #2
    پاسخ : فرکانس متر با AVR

    یه فابل این تو هست
    اونو بدانلودش
    یه فرکانس متر کامل توش هست

    http://www.eca.ir/forum2/index.php?topic=37994.0



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

    دیدگاه


      #3
      پاسخ : فرکانس متر با AVR

      4share واسه من فیلتره.
      اون تاپیک به زبان بیسیک بود من C میخوام. یعنی اصول رو و توضیحات رو میخوام

      دیدگاه


        #4
        پاسخ : فرکانس متر با AVR

        اصول برنامه نویسی برای فرکانس متر:

        یک روش معمول برای نوشتن برنامه فرکانس متر، توجه به این حقیقت است که فرکانس برابر تعداد تغییرات در یک ثانیه می باشد. بنابراین اگر پالس ورودی به عنوان کلاک یکی از تایمرها تعریف شود و تایمر دیگری در هر یک ثانیه یکبار مقدار تایمر اول را بخواند، این عدد معادل فرکانس پالس ورودی خواهد بود . البته در فرکانس های پائین به جای خواندن مقدار تایمر در هر یک ثانیه، می توان در هر مثلا ده ثانیه آنرا خواند و عدد حاصل را با قرار دادن یک ممیز نمایش داد. همچنین اگر فرکانس از یک حد بالاتر باشد که منجر به overflow شدن کانتر شمارنده آن شود، می توان در هر 0.1 ثانیه یا 0.01 ثانیه مقدار کانتر را خواند و حاصل را در 10 یا 100 ضرب کرد و نمایش داد. برای دقت بیشتر فرکانس متر باید از مکانیزم capture در خواندن تایمر اندازه گیری فرکانس استفاده شود.

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

        دیدگاه


          #5
          پاسخ : فرکانس متر با AVR

          من از روش دوم دارم استفاده میکنم . سوال من بی جواب موند که اینتراپت و کپچر چه فرقی دارند ؟

          دیدگاه


            #6
            پاسخ : فرکانس متر با AVR

            نوشته اصلی توسط iman4web
            من از روش دوم دارم استفاده میکنم . سوال من بی جواب موند که اینتراپت و کپچر چه فرقی دارند ؟
            برای اندازه گیری زمان یک سیکل تغییرات، روش اصولی استفاده از فرمان ورودی Capture است. با توجه به اینکه عمل Capture کردن چیزی شبیه عکس گرفتن از یک موجود متحرک است و با اعمال این فرمان، یک کپی از مقدار فعلی تایمر در Capture register ریخته می شود. بنابراین با دو لبه بالا یا پائین رونده پالس ورودی، دو کپی متوالی در این رجیستر ریخته می شود و شما باید در هربار با فرض فعال بودن وقفه Capture، این دومقدار را بخوانید و از هم کم کنید و عدد دقیق زمان سپری شده در این حالت بدست می آید. البته شرط این مسئله این است که بین دو وقفه capture متوالی، تایمر بیش از یکبار overflow نشده باشد. اگر هم چنین احتمالی وجود دارد، باید وقفه overflow تایمر هم فعال شود و در هر بار وقوع آن یک شمارنده نرم افزاری اضافه شود. بنابراین در محاسبه زمان سپری شده بین دو لبه پالس زمان فعلی و زمان قبلی و تعداد overflow تایمر هر سه با هم لحاظ شوند.باید دقت شود که تعداد overflow و قدرمطلق تفاضل مقدار فعلی و قبلی را در محاسبات وارد کنید.
            البته با وقفه خارجی هم می توان این کار را انجام داد، اما برای رساندن دقت کار به حدود حالت قبل به دلیل تاخیری که از لحظه وقوع وقفه تا خواندن تایمر وجود دارد، باید بسیار فنی عمل شود و اصلا این روش توصیه نمی شود.
            اوژن: به معنای افکننده و شکست دهنده است
            دانایی، توانایی است-Knowledge is POWER
            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

            دیدگاه


              #7
              پاسخ : فرکانس متر با AVR

              سلام استاد کی نژاد
              اگر امکان دارد ایراد این برنامه را بگویید متاسفانه با MEGA 32 و کریستال 8 مگاهرتز جواب خوبی نمی دهد و در فرکانسهای بالاای 10 میلو هرتز بشدت صحت و دقت خود را از دست می دهد جالب اینکه هم تو شبیه سازی با پروتئوس این هست هم توی عمل نمی دونم اشکال کار کجاست من اینو برای رنج 10 کیلو هرتز تا 400 کیلو هرتز می خواهم و لذا سریز شدن تایمر1 رو در نظر نگرفتم، آیا می شود با AVR های معمولی و با استفاده از روش کپچر فرکانس متری با دقت 0.1 هرتز و با سمپلینگ 10 بار در ثانیه ساخت یا نه؟
              بهینه ترین و دقیقترین در کمترین زمان ممکن اندازه گیری و بروز رسانی با AVR معمولی و با استفاده از کامپایلری مثل AVR studio 6 تا چقدر می تواند باشد؟
              ممنون استاد
              «اگر واقعیات با نظریات هماهنگی ندارند، واقعیتآ‌ها را تغییر بده.»
              آلبرت انشتین

              دیدگاه


                #8
                پاسخ : فرکانس متر با AVR

                سوال این دوستمون جواب نداره؟
                آخرین سوال منظورمه.

                دیدگاه


                  #9
                  پاسخ : فرکانس متر با AVR

                  بهترین روش برای افرادی که برای اولین بار می خوان فرکانس متر بسازن اینه که با تایمر 2 یک وقفه یک ثانیه بسازن و با تایمر 1 در مد کانتر شمارش پالس بکنن و تو هر وقفه مقدار کانتر رو تو یک متغیر کپی کنن و خود کانتر1 رو صفر کنن با این روش تا فرکانس 65 کیلو هرتز راه میوفته ولی برای فرکانس های بالاتر و یکم دقت کمتر می شه وقفه سرریزی تایمر 1 رو هم فعال کرد و تو هر وقفه تایمر 1 یک متغیر دیگه رو هم افزایش بدن و در نهایت تو هر بار رفتن در وقفه یک ثانیه متغیر دوم که تو وقفه کانتر افزوده شده رو در 65536 ضرب کنن و بعلاوه آخرین مقدار کانتر بکنن تو این روش باید حداقل نصف فرکانس کلاک خود میکرو رو بتونن فرکانس اندازه گیری کنن البته باید تو هر وقفه تایمر 2 یا همون یک ثانیه هم کانتر رو و هم متغیر دوم رو صفر بکنن
                  همانطور که مایل نیستم بنده کسی باشم، حاضر نیستم آقای کسی باشم. کسانی که مخالف آزادی دیگرانند، خود لیاقت آزادی را ندارند.((آبراهام لینکن))

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

                  [img width=343 height=100]http://www.elecdesigner.com/uploads/PRO-DESIGNER-GROUP.jpg[/img]

                  دیدگاه

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