تایمر ۱۶ بیتی در avr

saalek110

Well-Known Member

معرفی اجمالی رجیسترهای تایمر/کانترهای ۱۶ بیتی​


در تایمر/کانترهای ۱۶ بیتی ، شمارنده اصلی تایمر/کانتر رجیستر TCNTx می باشد . این رجیستر یک رجیستر ۱۶ بیتی است که از دو رجیستر ۸ بیتی با نامهای TCNTXL و TCNTXH تشکیل شده است و به صورت خواندنی و نوشتنی قابل دسترسی است .

رجیستر های مقایسه خروجی تایمر/کانتر در تایمر/کانترهای ۱۶ بیتی به جای یک رجیستر ۸ بیتی ، از ۳ رجیستر ۱۶ بیتی با نامهای OCRxA ، OCRxB و OCRxC تشکیل شده است . این رجیسترها که به صورت خواندنی و نوشتنی هستند هر یک واحد مقایسه مجزایی دارند که خروجی آنها به واحد تولید شکل موج و نهایتا به یکی از پایه های میکروکنترولر به نامهای OCXA ، OCXB و OCXC متصل می شود .

16Bit_TC_Registers.png

نکته : رجیستر OCRXC فقط در برخی از میکروکنترلرهای AVR که دارای چهار یا پنج واحد تایمر/کانتر هستند نظیر Atmega128 و … وجود دارند . ( استثنا : Atmega162 که با وجود ۴ تایمر/کانتر این رجیستر را ندارد )

در تایمر/کانترهای ۱۶ بیتی به جای یک رجیستر تنظیمات سه رجیستر ۸ بیتی به نام های TCCRXA ، TCCRXB و TCCRXC وجود دارد . این سه رجیستر کلیه اعمال واحد تایمر/کانتر را نظیر حالت عملکرد ، ضریب پیش تقسیم کننده ، نحوه اتصال خروجی و … کنترل می کند .

رجیستر های TIFR و TIMSK در اینجا نیز به همان صورت و برای همان کاربردهای ذخیره پرچم ( Flag ) و پوشش وقفه وجود دارند .

رجیستر ۱۶ بیتی دیگری به نام ICxR مربوط به واحد تسخیر نیز وجود دارد که در زمان رخ دادن تسخیر محتوای رجیستر TCNTx به این رجیستر منتقل می شود.

تذکر : به علت اینکه از تایمر/کانتر ۱۶ بیتی ساده تنها در دو میکروکنترلر AtTiny13 و AtTiny2313 استفاده شده است از بیان آن اجتناب می کنیم زیرا با توضیح و بررسی تایمر/کانتر ۱۶ بیتی پیشرفته ، نوع ساده در این دو میکروکنترلر نیز پوشش داده می شود .


 

جدیدترین ارسال ها

بالا