آموزش AVRآموزش الکترونیک

تایمر / کانتر یک در میکروکنترلر های AVR (آموزش کامل Timer / Counter 1)

سلام. تایمر / کانتر یک در میکروکنترلر های AVR (آموزش کامل Timer / Counter 1) را آماده کردیم.

آموزش کامل Timer / Counter یک در میکروکنترلر AVR

در قسمت های قبلی آموزش ما به طور کامل با مبحث تایمر کانتر ها و به خصوص با تایمر / کانتر 0 آشنا شدیم. حتما قبل از خواندن این مطلب قسمت های قبل را بخوانید.

در این قسمت از سری آموزش های AVR ما به طور کامل با Timer Counter 1 آشنا میشویم. در این آموزش هم با طرح یک مسئله مفهوم را به شما منتقل میکنیم.

طرح مسئله برای تایمر / کانتر 1

فرض کنید ما میخواهیم یک فلاشر LED بسازیم که هر 2 ثانیه یک بار چشمک بزند. همانطور که میدانید تایمر / کانتر یک ، یک تایمر / کانتر 16 بیتی است. ما فرکانس کاری میکروکنترلر را 16MHz در نظر میگیریم.

حل مسئله

فرمول زیر را که یادتان هست.

محاسبه مدت پالس در AVR

با فرکانس 16MHz حداکثر تاخیری که میتوانیم بسازیم 4.096 میلی ثانیه است. با انتخاب ضریب 8 ، فرکانس پردازنده به 2 مگاهرتز کاهش پیدا میکند و حداکثر تاخیر به 32.768 افزایش پیدا میکند. اما همانطور که گفتیم ما نیاز به تاخیر 2 ثانیه ای داریم، باید چکار کنیم ؟

2s ÷ 32.768 ms = 61.035 ≈ 61

به محاسبه بالا دقت کنید. 2 ثانیه مدنظر ما بود را به 32.768 تقسیم کردیم که حاصل تقریبا 61 شده است. معنی 61 چیست ؟

61 یعنی اگر 61 بار تایمر از صفر بشمارد و به ماکزیمم 65535 برسد، 2 ثانیه طول میکشد.

حتما ببینید :  آردوینو چیست ؟ + آموزش کامل نصب نرم افزار Arduino (آموزش آردوینو #1)

تایمر / کانتر یک در میکروکنترلر های AVR

بررسی رجیستر های تایمر / کانتر یک در AVR

در این قسمت به طور کامل رجیستر های timer / Counter 1 را بررسی میکنیم.

رجیستر TCCR1B :Timer/Counter1 Control Register B – TCCR1B

رجیستر TCCR1B :Timer/Counter1 Control Register B - TCCR1B

بیت های 0 و 1 و 2 ؛ Bit 2:0 – CS12:0: Clock Select :

بیت های 0 و 1 و 2 ؛ Bit 2:0 – CS12:0: Clock Select :

از این بیت ها برای تعیین فرکانس تایمر / کانتر 1 یا همان انتخاب ضریب تقسیم استفاده میشود. در اینجا، ضریب تقسیم را 8 انتخاب کردیم، باید مقدار سطر سوم رو انتخاب کنیم (010).

بررسی رجیستر TCNT1 : Timer/Counter1-TCNT1H and TCNT1L

مقدار timer / counter 1 در این رجیستر قرار میگیرد. تایمر کانتر 1 ، یک تایمر کانتر 16 بیتی است که از دو رجیستر 8 بیتی در کنار هم تشکیل شده است که با پسوند H و L مشخص شده اند.

بیت های 0 و 1 و 2 ؛ Bit 2:0 – CS12:0: Clock Select :

بررسی رجیستر TIMSK : Timer/Counter-Interrupt Mask-Register

بررسی رجیستر TIMSK : Timer/Counter-Interrupt Mask-Register

در مورد این رجیستر هم که قبلا خیلی صحبت کرده ایم. بیت هایی که پس زمینه سفید دارند مربوط به Timer / Counter 1 هستند. در اینجا تنها بیت TOIE1 را استفاده میکنیم که با 1 شدن آن ، وقفه سرریز تایمر / کانتر فعال میشود.

بررسی رجیستر TIFR : Timer/Counter Interrupt Flag Register – TIFR

بررسی رجیستر TIFR : Timer/Counter Interrupt Flag Register – TIFR

در مورد این رجیستر هم قبلا خیلی صحبت کرده ایم. در اینجا تنها بیت مورد نظر ما ، TOV1 است. وقتی که Timer / Counter 1 سر ریز شود ، این بیت 1 میشود و پس از اینکه موارد مربوط به وقفه ها به صورت کامل انجام شد 0 میشود.


خب ، این قسمت آموزش هم تمام شد ، در این قسمت آموزش AVR ، به طور کلی با مسائل تئوری تایمر / کانتر 1 آشنا شدیم. در قسمت بعدی به طور کامل با نحوه استفاده از این تایمر / کانتر در کد آشنا میشویم.

حتما ببینید :  نرم افزار رزبری پای (آموزش رزبری پای جلسه سوم)

قسمت بعدی : بزودی …

امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید مشاهده لیست پروژه های آردوینو
برچسب ها

محمد رحیمی

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن