اطلاعیه

Collapse
No announcement yet.

تایمر کانتر ها

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

    تایمر کانتر ها

    سلام

    من در کتابی که خوندم تایمر کانتر 0 رو خوندم نمی فهمیدم اون 0 یعنی چی در بعضی جاهای انجمن دیدم نوشته تایمر کانتر 1 و 2 و 3 اینا یعن چی ؟ چه فرقی دارن یه mega 16 کدومشون رو داره ؟ کلا در این باره یه کم یادم بدید تشکر می کنم

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

    نوشته اصلی توسط علی آقایی فر
    سلام

    من در کتابی که خوندم تایمر کانتر 0 رو خوندم نمی فهمیدم اون 0 یعنی چی در بعضی جاهای انجمن دیدم نوشته تایمر کانتر 1 و 2 و 3 اینا یعن چی ؟ چه فرقی دارن یه mega 16 کدومشون رو داره ؟ کلا در این باره یه کم یادم بدید تشکر می کنم

    سلام

    ATmega16 در کل 3 تا تایمر داره که به ترتیب تایمرهای 0و1و2 میباشند.

    دیدگاه


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

      یعنی اینکه می تونی از هر کدوم به طور مجزا استفاده کنی.
      مثل این که بگیم سه تا کرنومتر داریم. از هر کدوم برای یک کار می تونیم استفاده کنیم.
      تایمر صفر و دو هشت بیتیه و تایمر یک 16 بیتی.

      دیدگاه


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

        تایمر صفر یه تایمر 8 بیتی که قابلیتهای خاص خودش رو داره.
        از حمله این قابلیتها می توان به مدهای نرمال و CTC و fast pwm و phese pwm اشاره کرد. اگه دوست داشتی بگو تا تک تک این مدها رو واست باز کنم و نحوه تولید موج رو واست توضیح بدم.

        تایمر 1 یک تایمر 16 بیتی که واقعاً به نظر من ترکونده. مدهاش تقریباً همون مدهای تایمر 0 و یه مد phese & ferconce pwm بهش اضافه شده که می توان این مدها در در حالت های 8و9و10 و یا اینکه مقدارشون رو با قرار دادن عدد داخل ریجیستر OCR1A,OCR1B یا در مواقعی ICR1A,B تعیین کرد. در ضمن از ورودی capture تایمر یک هم نمیشه گذشت که معرکست. راجع به تایمر یک هم هر جاش گیر داشتی بگو بیشتر واست بازش کنم.

        حالا بریم سراغ تایمر 2 . تایمر 0 که فهمدی چیه؟ اینم دقیقاً مثل اونه ولی یه فرق کوچولو داره. اونم اینه که تایمر 2 قابلیت وصل شدن کریستال خارجی جداگانه رو داره یعنی اصلاً خروج و خوراکشو میتونه از CPU جدا کنه و واسه خودش جداکانه کلاک بخوره. حالا شاید پیش خودتون بگین این به چه دردی میخوره؟
        لابد به درد میخورده که گذاشتن دیگه.
        کاربردش اینجا مشخص میشه که شما کریستال 32.768K رو واسه تایمر 2 بذارین بعدش برین prescale تایمر را 128 انتخاب کنیم. بعد میدونین چه اتفاقی میوفته؟
        تایمر 2 تبدیل میشه به یه RTC (ساعت زمان واقعی).(توضیح بیشتر خواستین بگین).

        اها یادم رفت بگم که تایمر تایمر Watchdog یکی دیگه از تایمرهای ATmega16 است.

        دیدگاه


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

          نوشته اصلی توسط حـامـــــد
          یعنی اینکه می تونی از هر کدوم به طور مجزا استفاده کنی.
          مثل این که بگیم سه تا کرنومتر داریم. از هر کدوم برای یک کار می تونیم استفاده کنیم.
          تایمر صفر و دو هشت بیتیه و تایمر یک 16 بیتی.

          آره بابا چرا که نشه. اگه نمیشد که همون تایمر یک رو میذاشتن که همه قابلیت ها رو یه جا داره. اصلاً اینا هیچ ربطی به هم ندارن. با بار گذاری هر کدام از ریجیسترهای تایمرها می تونید ازشون استفاده کنید. مثلاً من(من که کسی نیستم منظورم همست) همزمان میتونم با تایمر 0 یک چشمک زن با تایمر 1 فرکانس متر و با تایمر 2 RTC درست کنم. اصلا میتونم با 3 تا تایمر یه جا 4 تا فرکانس درست کنم( تایمر 1 دو کانالست).

          دیدگاه


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

            خروجی تایمر ها رو از کدوم پایه می گیرن مثلا در حالت نرمال چطوری ه/؟؟

            دیدگاه


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

              سلام.
              خروجی تایمر صفر پایه ی OC0یا همون B3 هست. خروجی تایمر یک پایه ی OC1A و OC1B یا D5 و D4 و خروجی تایمر 2 پایه ی OC2 ا همون D7 هست.
              اما در مورد مد های کاری:
              1- مد نرمال: در این مد در تایمر 8 بیتی ، تایمر از صفر شروع به شمارش می کنه و مقدار اون دائماً با مقدرا رجیستر OCR مقایسه میشه و هر وقت با هم برابر شدن خروجی بسته به تنظیمات تایمر set ، reset و یا toggle میشه.
              2- مد CTC : در این مد تایمر از صفر شروع به شمارش می کنه و دائم با OCR مقایسه میشه. هر گاه با هم برابر شدن، خروجی دوباره مثل حالت قبل تغییر حالت میده. ولی فرقی که داره تو حالت نرمال بعد از برابر شدن مقدار تایمر با OCR تایمر به کارش ادمه میده و تا FF میشماره. ولی تو حالت CTC بعد از برابر شدن مقدار تایمر صفر میشه.
              3-FAST PW: این مد هم مثل دو تای قبلی و ترکیبی از اون هاست. یعنی تایمر از صفر شروع به شمارش میکنه. یه بار وقتی با OCR برابر شد تغییر حالت میده و یه با وقتی به مقدار ماکزیمم خودش رسید (یعنی FF)
              4- PWM تصحیح فاز :این مد مثل FAST PWM هست با این تفاوت که تایمر پس از رسیدن به مقدار ماکزیمم صفر نمیشه بلکه این بار از بالا به پایین میشره و هر موقع با OCR برابر شد دو باره تغییر حالت میده. تو این حالت خروجی تایمر وقتی که مقدار اون به ماکزیمم رسید تغییر نمیکنه.

              برای اطلاعات بیشتر میتونید از کتاب آقای "محمد مهدی پرتوی فر" استفاده کنید.

              موفق باشید
              خدايا
              من در كلبه ي فقيرانه ي خود چيزي دارم كه تو در عرش كبريايي خود نداري
              من چون تويي دارم و تو چون خودي نداري
              امام سجاد (ع)

              دیدگاه


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

                نوشته اصلی توسط m.r.M.R
                سلام.
                خروجی تایمر صفر پایه ی OC0یا همون B3 هست. خروجی تایمر یک پایه ی OC1A و OC1B یا D5 و D4 و خروجی تایمر 2 پایه ی OC2 ا همون D7 هست.
                اما در مورد مد های کاری:
                1- مد نرمال: در این مد در تایمر 8 بیتی ، تایمر از صفر شروع به شمارش می کنه و مقدار اون دائماً با مقدرا رجیستر OCR مقایسه میشه و هر وقت با هم برابر شدن خروجی بسته به تنظیمات تایمر set ، reset و یا toggle میشه.

                من مدهای CTC , fast ,phase رو قبول دارم ولی مد نرمال که خروجی تولید نمیکرد در واقع مد نرمال:

                در این حالت تایمر به عنوان یک شمارنده 8 بیتی بکار می رود. تایمر با یک عدد اولیه در قسمت TCNT0 بارگذاری می شود و با هر کلاک یک واحد به مقدار آن اضافه می شود تا اینکه به مقدار نهایی خود یعنی 255 برسد و با یک کلاک دیگر تایمر سرریز می کند. پس از سرریز شدن، پرچمTOVO یک می شود.. با فعال کردن گزینه Overflow interrupt یک روال سرویس وقفه به نام timer0_ovf_isr به برنامه اضافه می شود که با هر بار سرریز شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد.




                دیدگاه


                  #9
                  پاسخ : تایمر کانتر ها

                  نکته ی خیلی مهم PWM تایمره
                  برای کنترل پهنای یک پالس استفاده میشه که کاربرد اون تبیشتر تو کنترل موتورای دی سی هستش
                  تصور کن روبات مسیریاب تو قراره از یه سرازیری بیاد پایین و سرعت موتورات معمولیه
                  ولی لیز میخوره چون برای سرازیری سرعتشون زیاده و مجبوری دور موتورهارو به حداقل برسونی
                  پایه های OC!A , OC!B رو برای کنترل موتور ها استفاده میکنی(با L298 ) ...................
                  Reveng will surely come... Your hard time are ahead
                  // - - - - - - - - - -
                  برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                  // - - - - - - - - - -
                  اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                  // - - - - - - - - - -

                  دیدگاه


                    #10
                    مد PWM تصحیح فاز (Phase correct PWM mode):

                    مد PWM تصحیح فاز (Phase correct PWM mode):
                    در این حالت تایمر به صورت بالارو ـ پایین رو کار می کند. تایمر از مقدار 0x00 شروع به شمردن رو به بالا می کند و با رسیدن به مقدار قرار داده شده در رجیستر OCR0 پایه OC0 (پایه 4 در ATmega16) را not کرده و به کار خود ادامه می دهد تا به مقدار0xFF برسد. از این به بعد شمارش رو به پایین انجام می شود تا به مقدار محتوای OCR0 برسد و پایه OC0 را دوباره not می کند و این روال همینطور ادامه می یابد. البته پس از انتخاب مد مورد نظر نوع خروجی را نیز باید انتخاب کنید که گزینه های inverted و non–inverted نوع PWM (خروجی معکوس یا غیر معکوس) را مشخص می کنند.
                    فرکانس تولید شده بر روی پایه OCR0 از رابطه زیر بدست می آید.



                    در رابطه بالا N ضریب تقسیم فرکانس پالس ساعت سیستم بوده و یکی از مقادیر 1، 8، 64 ، 256، 1024 را به خود اختصاص می دهد و fclk-I/O کلاک تایمر می باشد.

                    دیدگاه


                      #11
                      مد Fast PWM:

                      مد Fast PWM:
                      تایمر از مقدار صفر شروع به شمردن می کند و با رسیدن به مقدار قرارداده شده در رجیستر OCR0 پایه OC0 ( یا همان پایه 4 در ATmaga16) را not کرده و به شمارش خود ادامه می دهد تا به مقدار 0xff برسد و با رسیدن به این مقدار پایه مذکور را دوباره not کرده و تایمر را پاک می کند. بدین ترتیب ما قادر هستیم با تغییر محتوای رجیستر OCR0 پهنای PWM را تغییر دهیم.
                      پس از انتخاب مد مورد نظر در قسمت تنظیمات تایمرصفر باید نوع خروجی را نیز انتخاب کنید.گزینه inverted و non–inverted به ترتیب خروجی های معکوس و غیر معکوس PWM را مشخص می کنند.


                      فرکانس موج PWM از رابطه زیر بدست می آید:



                      دیدگاه


                        #12
                        مد CTC :

                        مد CTC :
                        این حالت از تایمر، یک فرکانس بر روی پایه OC0 تولید می کند که ما قادر هستیم با تغییر عدد داخل رجیستر OCR0 فرکانس را تغییر دهیم. فرکانس موج مربعی تولید شده از رابطه زیر بدست می آید.


                        این مد نیز مانند مد نرمال زمانی که شمارنده از مقدار MAX خود به 0x00 تغییر حالت می دهد پرچم TOV0 یک می شود.


                        منبع: WWW.ha-micro.ir

                        دیدگاه


                          #13
                          پاسخ : تایمر کانتر ها

                          من مدهای CTC , fast ,phase رو قبول دارم ولی مد نرمال که خروجی تولید نمیکرد در واقع مد نرمال:

                          در این حالت تایمر به عنوان یک شمارنده 8 بیتی بکار می رود. تایمر با یک عدد اولیه در قسمت TCNT0 بارگذاری می شود و با هر کلاک یک واحد به مقدار آن اضافه می شود تا اینکه به مقدار نهایی خود یعنی 255 برسد و با یک کلاک دیگر تایمر سرریز می کند. پس از سرریز شدن، پرچمTOVO یک می شود.. با فعال کردن گزینه Overflow interrupt یک روال سرویس وقفه به نام timer0_ovf_isr به برنامه اضافه می شود که با هر بار سرریز شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد.
                          نکته ای که یادم رفت بگم این بود که تایمر همیشه از صفر شروع به شمارش نمی کنه بلکه از مقداری که تو رجیستر TCNT قرار داده شده شروع میشه و اینکه با هر بار برابر شدن مقدار تایمر با رجیستر OCR وقفه ی مقایسه و با هر بار سر ریز وقفه ی سرریز رخ میده. ولی اینکه خروجی تولید نمیکنه درست نیست و همون طور که گفتم خروجی اون سه حالت داره :
                          1- set
                          2- reset
                          3- toggle
                          خدايا
                          من در كلبه ي فقيرانه ي خود چيزي دارم كه تو در عرش كبريايي خود نداري
                          من چون تويي دارم و تو چون خودي نداري
                          امام سجاد (ع)

                          دیدگاه


                            #14
                            پاسخ : تایمر کانتر ها

                            نوشته اصلی توسط m.r.M.R
                            نکته ای که یادم رفت بگم این بود که تایمر همیشه از صفر شروع به شمارش نمی کنه بلکه از مقداری که تو رجیستر TCNT قرار داده شده شروع میشه و اینکه با هر بار برابر شدن مقدار تایمر با رجیستر OCR وقفه ی مقایسه و با هر بار سر ریز وقفه ی سرریز رخ میده. ولی اینکه خروجی تولید نمیکنه درست نیست و همون طور که گفتم خروجی اون سه حالت داره :
                            1- set
                            2- reset
                            3- toggle

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

                            دیدگاه


                              #15
                              مثال عملی

                              سلام
                              از توضیحاتی که دادین ممنون
                              اگه میشه چندتا مثال عملی بزنید تا بیشتر متوجه بشیم

                              دیدگاه

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