اطلاعیه

Collapse
No announcement yet.

محاسبه فرکانس ورودی به میکرو درکسری از ثانیه با استفاده از winavr

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

    محاسبه فرکانس ورودی به میکرو درکسری از ثانیه با استفاده از winavr

    باسلام به دوستان
    برنامه ای که لینک آن گذاشته شده است ، فرکانس ورودی به میکرو Avr ATmega16 را محاسبه و برروی lcd نمایش می دهد . تفاوت تکنیکی این برنامه به این صورت است که ابتدا تایمر 0 بصورت تایمری که هر 1 میکرو ثانیه وقفه اش اجرا میشود و در موقع فایر کردن تایمر صفر ، همزمان تایمر یک بصورت کانتر ( ورودی کلاک خروجی به پایه t1 ) تنظیم و در هنگام وقوع وقفه کانتر 1 ، تایمر صفر متوقف و مقدار زمانی خوانده می شود . از آنجا که تعریف ساده فرکانس عبارتست از تعداد تکانه در واحد زمان ، لذا هنگام وقوع وقفه کانتر 1 ما 65536 تکانه داریم که در مدت x میکرو ثانیه اتفاق افتاده اند . به همین سادگی با استفاده از یک تناسب ساده می توان تعداد تکانه (پالس) در واحد زمان (ثانیه) را محاسبه کرد.
    این برنامه را می توان برای دیگر میکرو کنترلرهای که دارای تایمر / کانتر هستند استفاده کرد .
    از دوستان تقاضامندم در صورت وجود الگوریتمی بهتر آنرا ارایه دهند.
    باتشکر .
    لینک :http://uploadrobots.com/WgEtAD
    درضمن نظر یادتون نره.
    عفت ورزيدن زينت فقر ، و شكر گزارى زينت بى نيازى است (حضرت علی (ع))

    #2
    پاسخ : محاسبه فرکانس ورودی به میکرو درکسری از ثانیه با استفاده از winavr

    در میکروکنترلرهایی که حداقل دارای دو تایمر/کانتر باشند و یکی از آنها بتواند در مد آسنکرون کار کندد بهترین راه استفاده از کریستال ساعت و راه اندازی تایمردیگر در مود کانتر میباشد چون هم زمان دقیق حساب پ

    میشه هم میشه فرکانس های خیلی پایین در حد یک هرتز رو خوند :bye

    دیدگاه


      #3
      پاسخ : محاسبه فرکانس ورودی به میکرو درکسری از ثانیه با استفاده از winavr

      با سلام به شما دوست عزیز.
      اگه سورس کد را دیده باشید دقیقا متوجه می شوید که من همین کار را انجام داده ام و مقدار زمانی دقیقی را برای تعداد پالس ورودی به پایه t1 با استفاده از تنظیم کردن تایمر صفر ( و نیز استفاده از کریستال خارجی ) انجام داده ام.
      تنها تفاوت روش بکاررفته در این برنامه اینست که نیاز به تاخیر 1 ثانیه ای برای خواندن تعداد پالس ورودی به میکرو جهت محاسبه فرکانس نیست ، بلکه پس از سر ریز شدن کانتر 1 که 16 بیتی هستش و مقدار 65536 هست ، زمان را محاسبه و از روی اون می تونه فرکانس را محاسبه کنه . با استفاده از این روش شما می تونید به فرکانسهای بالاتر از 16 مگاهرتز را محاسبه و اندازه گیری کنید .
      عفت ورزيدن زينت فقر ، و شكر گزارى زينت بى نيازى است (حضرت علی (ع))

      دیدگاه


        #4
        پاسخ : محاسبه فرکانس ورودی به میکرو درکسری از ثانیه با استفاده از winavr

        استفاده از اون مدت زمان وقفه که توی برنامه استفاده کردی بیشتر برای خواندن فرکتنس های بالا به کار میره .( البته در فرکانس های بالا روش شمارش پالس زیاد کاربرد نداره )

        زمانییکه از کریستال خارجی برای تایمر استفاده می کنیه میتونی زمان وقفه رو تنظییم کنی نه حتما یک ثانیه باشه .

        روش دیگه به روش polling میتونی برای خوندن پرچم وضعیت وقفه استفاده کنی نه با فعال کردن وقفه .

        روش دیگه خوندن زمان پریود پالس ورودی (معمولا این روش برای خواندن فرکانس هاس بالا استفاده میشه)

        دیدگاه


          #5
          پاسخ : محاسبه فرکانس ورودی به میکرو درکسری از ثانیه با استفاده از winavr

          Upload Robots has ended
          حالا مثلا این سایتهای ایرانی اینقدر لینکها رو برای اعضا قابل رویت میکنن که چی بشه؟
          که یکساعت عضو بشی بعد بری دانلود ببینی Upload Robots has ended

          دیدگاه


            #6
            پاسخ : محاسبه فرکانس ورودی به میکرو درکسری از ثانیه با استفاده از winavr

            با سلام
            من زیاد AVR زیاد نمیدونم ولی اگه بتونید داخل الگوریتم برنامه توسط تایمر دقیقی فاصله زمانی
            لبه بالا رفتن پالس را تا لبه بالا رفتن دوباره پالس رو اندازه بگیرید میتونید فرکانس رو حساب کنید
            فکر کنم یه راه دیگه اینکه توسط یه دستوری خود AVRزمان تناوب اعمال شده به یه پایه رو خودش
            حساب میکنه می تونید استفاده کنید PULSEIN

            دیدگاه

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