اطلاعیه

Collapse
No announcement yet.

PWM و تایمر

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

    PWM و تایمر

    یه سوال تو میکرو ATtiny نوشته که دو کانال pwm داره اما یه تایمر داره !!!!
    وقتی یه تایمر داره چه طوری میتونه 2 تا کانال pwm داشته باشه ؟؟؟؟؟
    :cry: :cry: :cry: :cry: :cry: :cry:

    #2
    کدام پایه خروجی PWM در میکرو کنترلر هست ؟؟

    میخواستم بدونم که کدام پایه خروجی PWM در میکرو کنترلر هست ؟؟
    خروجی PWM کدام پایه هاست ؟؟
    :cry: :cry: :cry: :cry: :cry: :cry:

    دیدگاه


      #3
      پاسخ : کدام پایه خروجی PWM در میکرو کنترلر هست ؟؟

      oc1b و oc1a

      دیدگاه


        #4
        پاسخ : PWM و تایمر

        شما اول بفرمایید مدل دقیقشو.
        بعد خدمتت عرض کنم که تعداد تایمر ها به تعداد pwm ها ربطی نداره .
        شما میتونی با یک تایمر مثلا 10 تا یا 20 تا pwm تولید کنی .
        مثلا تو ATMEGA32 تایمر 1 به تنهایی 2 کانال pwm داره به نام های OCR1A و OCR1B
        ضمنا شما مدل دقیقو بگو تا از رو دیتا شیت بهت بگم خروجی کدوم پایه هستش

        سوالی هست در خدمتم

        دیدگاه


          #5
          پاسخ : PWM و تایمر

          نوشته اصلی توسط moein2
          شما اول بفرمایید مدل دقیقشو.
          بعد خدمتت عرض کنم که تعداد تایمر ها به تعداد pwm ها ربطی نداره .
          شما میتونی با یک تایمر مثلا 10 تا یا 20 تا pwm تولید کنی .
          مثلا تو ATMEGA32 تایمر 1 به تنهایی 2 کانال pwm داره به نام های OCR1A و OCR1B
          ضمنا شما مدل دقیقو بگو تا از رو دیتا شیت بهت بگم خروجی کدوم پایه هستش

          سوالی هست در خدمتم
          ATmega 16

          دیدگاه


            #6
            پاسخ : PWM و تایمر

            oo: oo: oo:
            شما که گفتی Atiny
            ATMEGA16 از سری Atiny نیستش که ؟؟

            دیدگاه


              #7
              پاسخ : PWM و تایمر

              نوشته اصلی توسط moein2
              oo: oo: oo:
              شما که گفتی Atiny
              ATMEGA16 از سری Atiny نیستش که ؟؟
              من از ATtiny تو کار اصلیم استفاده میکنم اما تو تست از ATmega استفاده میکنم !!
              با تایمر 8 بیتی (تایمر صفر و دو ) چندتا میشه pmw درست کرد ؟؟
              فقط کامل توضیح بدین ؟؟
              خواهشا !!

              دیدگاه


                #8
                پاسخ : PWM و تایمر

                نوشته اصلی توسط PEDRAM-PMS
                من از ATtiny تو کار اصلیم استفاده میکنم اما تو تست از ATmega استفاده میکنم !!
                با تایمر 8 بیتی (تایمر صفر و دو ) چندتا میشه pmw درست کرد ؟؟
                فقط کامل توضیح بدین ؟؟
                خواهشا !!
                اکی در خدمتم ببین شما میتونی با مگا 16 با یه دونه تایمر میتونی 32 تا pwm درست کنی ، بیشتر از اینم میتونی درست کنی فقط دیگه پین کم میاری .
                برای این کار باید خودت کد بنویسی .
                اما میتونی بدون زحمت از کد ویزارد استفاده کنی ، دیگه نیاز به کد نوشتن نداری منتهی تایمر 0 و تایمر 2 هر کدوم فقط یک کانال pwm حاضر اماده دارن . اگه بیشتر میخوای باید خودت با کد نوشتن اون pwm رو تولید کنی .

                پیشنهاد میکنم کتاب آقای سپاس یار که تو همین سایت هست رو بخونید .

                این مثال رو ببینید :

                (ایجاد پالس مربعی با دوره تناوب 512 میکرو ثانیه

                while(1){
                TCCR0=0x00;
                TCNT0=0x00;
                TCCR0=0B00000010; // Timer Clock = CLK/8
                while(!TIFR&0x01); // Wait Until Overflow
                TIFR=TIFR|0B00000001; // Clear TOV0
                TCCR0=0x00;


                خوب حالا این مثال و براتون توضیح میدم :
                فرض میکنیم فرکانس کاری میکرو 4 مگا هرتز باشه .
                تو خط اول با رجیستر TCCR0 تایمر 0 رو راه اندازی کردیم و منبع کلاک اون رو کلاک داخلی تنظیم کردیم .
                تو خط دوم مقدار تایمر رو 0 قرار میدیم . رجیستر TCNT همیشه مقدار تایمر رو در خودش داره .
                تو خط سوم pre scale رو تنظیم کردیم . یعنی فرکانس کاری رو برای تایمر تقسیم بر 8 میکنیم .
                یعنی میشه 500 کیلو هرتز .
                خط چهارم چی کار میکنه ؟
                تا زمان سر ریز تایمر صبر میکنه . یعنی وقتی تایمر از 0 تا 255 میشمره .
                یعنی 500000 تقسیم بر 256 که میشه : 1953.125
                خط پنج و ششم هم پرچم سر ریز و مقدار تایمر رو صفر میکنن و حلقه دوباره اجرا میشه .
                خوب حالا در هر ثانیه تایمر 1953.125 بار سر ریز میکنه یعنی به این فرکانس دست پیدا کردیم .
                خوب حالا با تقسیم 1 بر .1953.125 به عدد : 0.000512 یا همون 512 میکرو ثانیه رسیدیم .

                در این روش من بدون استفاده از کد ویزارد و بدون استفاده از کانال های pwm این موج رو تولید کردم . اگه بخواین از کد ویزارد استفاده کنید که خیلی خیلی ساده تر خواهد بود .

                دیدگاه

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