اطلاعیه

Collapse
No announcement yet.

آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

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

    #16
    پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

    فرکانس تا ده کیلوهرتز با دقت 1 هرتز داشته باشیم
    :eek:
    انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

    دیدگاه


      #17
      پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز د&#

      نوشته اصلی توسط hamedtaran
      :eek:
      دوست عزیز متوجه منظورتون نمیشم . چیز غیر عادی خواستم ؟
      I'm going to
      RWTH Aachen
      University

      دیدگاه


        #18
        پاسخ : پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز د&#

        نوشته اصلی توسط azadfalah
        دوست عزیز متوجه منظورتون نمیشم . چیز غیر عادی خواستم ؟
        قسمت «با دقت یک هرتز» متوجه نشدم. میشه بیشتر توضیح بدید؟
        انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

        دیدگاه


          #19
          پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

          منظورم این که بشه 1 هرتز 1 هرتز زیاد کرد و به این فرکانس رسید .

          دقت یک هرتز یعنی بتونم روی 49999 هرتز هم تنظیم کنم .
          I'm going to
          RWTH Aachen
          University

          دیدگاه


            #20
            پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

            نوشته اصلی توسط azadfalah
            منظورم این که بشه 1 هرتز 1 هرتز زیاد کرد و به این فرکانس رسید .

            دقت یک هرتز یعنی بتونم روی 49999 هرتز هم تنظیم کنم .
            فرض کن کلاک میکرو 8000000 باشه این رو بر 49999 تقسیم کنی می شه
            160.00320006400128002560051201024
            حالا 8000000 بر 160 تقسم کن 50000 این نزدیک ترین فرکانسی هست که قابل تنظیمه
            قبل این فرکانس
            49689.440993788819875776397515528
            و بعدیشم
            50314.465408805031446540880503145
            ولی اگه از دو تا کریستال استفاده کنی همون طور که تو یکی از پست ها گفته بودن وضعیت بهتر می شه
            التماس دعا

            دیدگاه


              #21
              پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

              پس در حقیقت یه avr توانایی این کارو نداره مگر این که سازنده با طراحی های پیچیده برسه این دقت .
              I'm going to
              RWTH Aachen
              University

              دیدگاه


                #22
                پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                نوشته اصلی توسط azadfalah
                منظورم این که بشه 1 هرتز 1 هرتز زیاد کرد و به این فرکانس رسید .

                دقت یک هرتز یعنی بتونم روی 49999 هرتز هم تنظیم کنم .
                ساعت پست تو حلقم

                نوشته اصلی توسط azadfalah
                پس در حقیقت یه avr توانایی این کارو نداره مگر این که سازنده با طراحی های پیچیده برسه این دقت .
                این چیزی که شما میخاین انجام بدین بعد از این همه بحث و توضیحات دارین میگین avr تواناییشو نداره ؟ :NO:

                دیدگاه


                  #23
                  پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                  دارم روش کار میکنم . من میخوام یک موج پله ای داشته باشم تا فرکانس 50 کیلوهرتز و با پهنای پالس متغیر . اگر 50 نمیشه 10 کیلوهرتز . میخوام یه پروژه ببینم تا تحلیلش رو متوجه بشم که چطوری میشه با دقت این فرکانس رو ایجاد کرد .
                  I'm going to
                  RWTH Aachen
                  University

                  دیدگاه


                    #24
                    پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                    .

                    دیدگاه


                      #25
                      پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                      نوشته اصلی توسط azadfalah
                      منظورم این که بشه 1 هرتز 1 هرتز زیاد کرد و به این فرکانس رسید .

                      دقت یک هرتز یعنی بتونم روی 49999 هرتز هم تنظیم کنم .
                      هدفتونو از اول متوجه شدم ولی معنای «یک هرتز» یعنی یک بار در ثانیه.
                      اگه فقط هدفتون تولید موج مربعی هست میتونین توی حلقه اصلی برنامه یک حلقه for بنویسید بعدش باید برای فرکانس های مختلف مقدار تاپ اونو تغییر بدید. این یه روشی هست که برنامه رو توی یک حلقه گیر میندازید(بدون استفاده از delay) . مثلا میاید حساب میکنید که اگر فرکانس اصلی چقدر باشه و شما چند بار حلقه رو تکرار کنید میشه یک میکرو ثانیه. البته بعد از حلقه فور باید سمی کالن بذارید تا تکرار کنه. بعدش توی خط بعدی میاید یکی از پورت ها رو تاگل میکنید و تمام. متغیر حلقه for هم از نوع long تعریف کنید. حالا تنها کاری که انجام میدید اینه که مقدار top حلقه for را تغییر میدید تا فرکانسهای مختلف بدست بیارید.
                      انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

                      دیدگاه


                        #26
                        پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

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

                        یعنی اگر با این موشک رو چشم یکی هدف گرفته باشیم احتمال داره بخوره به ابروش .

                        حالا اگر همین موشک دقتش 1 متر باشه ممکنه اصلا نخوره به هدف و یا بخوره به پاش .
                        -----------------------------------------------------------------------------------------------------------

                        دستگاه فانکشن ژنراتور که قیمتش 800 هزار تومنه قابلیت این رو داره که تقریبا با دقت 1 هرتز فرکانس های بالا بسازه . یعنی شما میتونی یه هرتز یه هرتز به فرکانس بالا برسی . البته به صورت مرحله ای .

                        من دنبال دقت هستم این راه کاری که شما گفتین اصلا دقت نداره .
                        I'm going to
                        RWTH Aachen
                        University

                        دیدگاه


                          #27
                          پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                          نوشته اصلی توسط azadfalah
                          دوست عزیز خیلی من تعجب میکنم شما متوجه نمیشید با دقت یک هرتز رو . شما فکر کنید ما یه موشیک داریم که بعد از 1 کیلومتر پیمایش با 1 سانت خطا به هدف میخوره .

                          یعنی اگر با این موشک رو چشم یکی هدف گرفته باشیم احتمال داره بخوره به ابروش .

                          حالا اگر همین موشک دقتش 1 متر باشه ممکنه اصلا نخوره به هدف و یا بخوره به پاش .
                          -----------------------------------------------------------------------------------------------------------

                          دستگاه فانکشن ژنراتور که قیمتش 800 هزار تومنه قابلیت این رو داره که تقریبا با دقت 1 هرتز فرکانس های بالا بسازه . یعنی شما میتونی یه هرتز یه هرتز به فرکانس بالا برسی . البته به صورت مرحله ای .

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

                          دیدگاه


                            #28
                            پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                            با توجه به بخث هایی که شده گفتم این رو توضیح بدم فرکانس های کوچکتر با تقسیم کلاک بر اعداد صحیح بدست میاد و مثلا نیم کلاک نداریم پس اگه فر کنید کلا 1مگ باشه با تقسیم بر 100 به 10 کیلو می رسیم حالا اگه بر 99 و 101 که فرکانس های قبل و بعد رو تولید می کنند تقسیم کنید اختلاف نزدیک 1/100 همون 10 کیلو یعنی حدود 100 هرتز تغییر می کنه نه 1 هرتز
                            التماس دعا

                            دیدگاه


                              #29
                              پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                              نوشته اصلی توسط ali.ra
                              با توجه به بخث هایی که شده گفتم این رو توضیح بدم فرکانس های کوچکتر با تقسیم کلاک بر اعداد صحیح بدست میاد و مثلا نیم کلاک نداریم پس اگه فر کنید کلا 1مگ باشه با تقسیم بر 100 به 10 کیلو می رسیم حالا اگه بر 99 و 101 که فرکانس های قبل و بعد رو تولید می کنند تقسیم کنید اختلاف نزدیک 1/100 همون 10 کیلو یعنی حدود 100 هرتز تغییر می کنه نه 1 هرتز
                              نیاز به تقسیم فرکانس در طول اجرای برنامه نیست .
                              در طول برنامه با مقداردهی اولیه به رجیستر شمارنده تایمر میشه زمان سرریزی رو تغییر داد و در صورت لزوم میشه یه شمارنده دیگه به صورت دستی تو زیر برنامه وقفه قرار داد برای دقیق تر شدن کار . به این ترتیب با تغییر زمان سرریزی میشه از مقدار 1 هرتز ( حتی کمتر از 1 هرتز !)تا مقدار ماکزیممی که میشه با گام های دلخواه درست کرد

                              دیدگاه


                                #30
                                پاسخ : آیا با atmega32 میتوان موج مربعی با دقت 1 هرتز درست کرد ؟

                                نوشته اصلی توسط azadfalah
                                دوست عزیز خیلی من تعجب میکنم شما متوجه نمیشید با دقت یک هرتز رو . شما فکر کنید ما یه موشیک داریم که بعد از 1 کیلومتر پیمایش با 1 سانت خطا به هدف میخوره .

                                یعنی اگر با این موشک رو چشم یکی هدف گرفته باشیم احتمال داره بخوره به ابروش .

                                حالا اگر همین موشک دقتش 1 متر باشه ممکنه اصلا نخوره به هدف و یا بخوره به پاش .
                                -----------------------------------------------------------------------------------------------------------

                                دستگاه فانکشن ژنراتور که قیمتش 800 هزار تومنه قابلیت این رو داره که تقریبا با دقت 1 هرتز فرکانس های بالا بسازه . یعنی شما میتونی یه هرتز یه هرتز به فرکانس بالا برسی . البته به صورت مرحله ای .

                                من دنبال دقت هستم این راه کاری که شما گفتین اصلا دقت نداره .
                                همونطور که گفتم من از اولم هدف شمارو متوجه شده بودم.
                                راهکاری که گفتم بسیار دقیقه. فقط به محاسبات نیاز دارید. ولی با تایمر ها فقط میتونیم حداکثر تا بزرگترین عددی که تایمر میتونه داشته باشه به دقت برسیم و اگه عدد بیشتر شد دیگه امکانش نیست. این روشی که گفتم بسیار کارساز هست. فقط کافیه فرکانس اسیلاتور میکرو به عدد 50 کیلوهرتز تقسیم بشه. مثلا فرض کنیم نتیجه این تقسیم بشه 80 ٬ در این صورت اگه حلقه for تا هشتاد بشماره و بعد که تموم شد توی خط بعدی برنامه ما میایم یکی از پورت هارو تاگل میکنیم و تمام. به همین راحتی. نیازی هم به تایمر نیست. ولی یه خبر بد باید بدم. من دفه پیش اشتباه میکردم. اون دقتی که شما میخوای بازم حاصل نمیشه :mrgreen:
                                انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

                                دیدگاه

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