Slide
Slide

تمرین : بحث هفتم - تایمر AVR
نویسنده: مسئول فنی در
۲۴ بهمن ۱۳۹۲
[ آخرین به روزرسانی در ۲۴ بهمن ۱۳۹۲ ]

سؤال:

7-1-1          ساختار تایمر AVR را کشیده و عملکرد آن را شرح دهید.
7-1-2         کاربردهای تایمر چیست؟
7-1-3         چگونه از تایمر AVR می توان برای شمارش استفاده کرد؟
7-1-4         نقش رجیستر TCNT چیست ؟
7-1-5         نقش رجیستر OCR چیست؟
7-1-6         وظیف بخش COM در تایمر چیست؟
7-1-7         مد CTC بیشتر برای چه مواردی استفاده می شود. شرح دهید.
7-1-8         کاربرد PWM چیست.
7-1-9         منظور از DutyCycle چیست . یک موج مربعی با DutyCycle برابر 25% بکشید.
7-1-10       عرض پالس ( دوره تناوب ) در تکنیک PWM چگونه تعیین می شود.
7-1-11       فرق حالت Normal با FastPWM چیست.
7-1-12       منظور از Update OCR چیست. چند حالت به روز شدن مقدار OCR را داریم.
7-1-13      آیا در مد CTC می توان OCR را در هر زمان دلخواه مقدار داد. چرا؟
7-1-14      آیا در مد FastPWM می توان OCR را در هر زمان دلخواه مقدار داد. چرا؟
7-1-15      مراحل خواندن و نوشتن از رجیسترهای 16 بیتی تایمر مانند TCNT1 یا OCR1A چگونه است. چرا؟

برنامه نویسی:

7-2-1         برنامه ای بنویسید که با استفاده از تایمر 0  به روش اینتراپتی هر 1.23ms  مقدار پورت B را یک واحد اضافه کند. ( فرکانس AVR را 4MHz بگیرید.)
7-2-2         برنامه ای بنویسید که با استفاده از تایمر 0  به روش سرکشی هر 1.23ms  مقدار پورت B را یک واحد اضافه کند. ( فرکانس AVR را 4MHz بگیرید.)
7-2-3        برنامه ای بنویسید که با استفاده از تایمر 0  به روش اینتراپتی هر 1s  مقدار پورت B را یک واحد اضافه کند. ( فرکانس AVR را 4MHz بگیرید.)
7-2-4        برنامه یک ساعت با تایمر 0 را بنویسید. ثانیه ، دقیقه و ساعت را در رجیسترهای R16 تا R18 قرار دهید.
7-2-5        یک موج مربعی با فرکانس 5KHz به کمک تایمر 0 با استفاده از مد CTC روی پایه OC0 ایجاد کنید. ( فرکانس AVR را 4MHz بگیرید.)
7-2-6         یک موج مربعی با فرکانس 5KHz به کمک تایمر 0 با استفاده از مد CTC روی پایه PB0 ایجاد کنید. ( فرکانس AVR را 4MHz بگیرید.)
7-2-7        یک موج مربعی با فرکانس 5KHz به کمک تایمر 0 با استفاده از مد FastPWM روی پایه OC0 ایجاد کنید. ( فرکانس AVR را 4MHz بگیرید.)
7-2-8        یک موج مربعی با فرکانس 5KHz به کمک تایمر 0 با استفاده از مد FastPWM روی پایه PB0 ایجاد کنید. ( فرکانس AVR را 4MHz بگیرید.)
7-2-9         یک موج مربعی با فرکانس 5KHz و DutyCycle برابر 27% به کمک تایمر 0 با استفاده از مد CTC روی پایه OC0 ایجاد کنید. ( فرکانس AVR را 8MHz بگیرید.)
7-2-10       یک موج مربعی با فرکانس 5KHz و DutyCycle برابر 27% به کمک تایمر 0 با استفاده از مد FastPWM روی پایه OC0 ایجاد کنید. ( فرکانس AVR را 8MHz بگیرید.)
7-2-11       یک موج مربعی با فرکانس 5KHz و DutyCycle برابر 27% به کمک تایمر 1  روی پایه OC1A ایجاد کنید. ( فرکانس AVR را 8MHz بگیرید.) ( کم ترین بالاسری برای AVR را داشته باشد.)
7-2-12      یک موج مربعی با فرکانس 5KHz و DutyCycle متغیر به کمک تایمر 1  روی پایه OC1A ایجاد کنید. مقدار DutyCycle به کمک رجیستر R16  بین 0-100% تعیین می شود.( فرکانس AVR را 8MHz بگیرید.) ( کم ترین بالاسری برای AVR را داشته باشد.)
7-2-13      یک موج مربعی با فرکانس 5KHz و DutyCycle برابر 27% به کمک تایمر 1  روی پایه OC1A و معکوس آن را به طور همزمان روی پایه OC1B  ایجاد کنید. ( فرکانس AVR را 8MHz بگیرید.) ( کم ترین بالاسری برای AVR را داشته باشد.)
7-2-15      می خواهیم زمان طی کردن یک گلوله در سقوط آزاد بین دو نقطه را اندازه گیری کنیم. برای این منظور با فرمان یک آهنربای الکتریکی که توسط بیت PB0 میکروکنترلر فرمان می گیرد، گلوله رها شده و زمان رسیدن به نقطه پایین توسط یک  سنسور (حسگر) با یک پالس مثبت به میکرو منتقل  می شود. برنامه ای بنویسید که زمان طی شده بین این دو نقطه را به دست آورد. ( فرکانس AVR را 8MHz بگیرید.) ( کم ترین بالاسری برای AVR را داشته باشد.)

 

7-2-16   می خواهیم در خط تولید یک کارخانه تعداد بطری ها را در کارتن های 24 تایی بسته بندی کنیم. برای این منظور همانطور که در شکل زیر می بینید، یک سنسور در خط تولید تعداد بطری ها شمارش می کند و هر گاه تعداد آن ها به 24 رسید، به کمک یک بازو به داخل کارتن منتقل می شوند. برنامه کنترل این سیستم را به کمک تایمر AVR بنویسید. ( فرکانس AVR را 4MHz بگیرید.)  

 

7-2-17       

 

 

نظرات کاربران
. :    
۱۷ خرداد ۱۳۹۳
۱۷ خرداد ۱۳۹۳
سلام استاد خسته نباشید میشه در مورد سوال های 10 و 12 توضیح مختصری رو بزارین؟ خیلی ممنون
۱۸ خرداد ۱۳۹۳
مسئول فنی :

برای انتخاب دوره تناوب در روش PWM، باید پاسخ فرکانسی سیستم و یا ثابت زمانی سیستم را بدانیم. حال بر اساس داده های فوق دوره تناوب را انتخاب کنیم. معمولا دوره تناوب را یک دهم ثابت زمانی سیستم انتخاب می کنند.

برای اطلاع از زمان Update شدن OCR به ستون آخر جدول مدهای مختلف تایمر AVR مراجعه کنید.



. :    
۲۴ خرداد ۱۳۹۳
۲۴ خرداد ۱۳۹۳
سلام درمورد سوال 4برنامه نویسی میشه توضیح بدین؟و اینکه چطور ساعت و دقیقه و ثانیه رو بدست بیاریم؟باید 3تا ocr داشته باشیم؟
۲۴ خرداد ۱۳۹۳
مسئول فنی :

شما فقط یک زمان مانند ثانیه یا کسری از ثانیه را به کمک تایمر بدست می آورید و زمان های بزرگتر با روش نرم افزاری بر اساس زمان پایه ایجاد می شوند. 



. :    
۰۳ بهمن ۱۳۹۴
۰۳ بهمن ۱۳۹۴
سلام ببخشید راجع به سوال 12 که duty cycle متغیر هست میشه یه توضیحی بدید.که چطور این dutycycle رو به سیستم بشناسونیم؟
۰۳ بهمن ۱۳۹۴
مسئول فنی :

سلام در این مسئله Duty Cycle توسط رجیستر R16 مشخص می شود و شما باید هر سیکل مقدار R16 را در رجیستری که زمان High بودن موج خروجی را تعیین می کند قراردهید. برای مثال OCR



نظر بدهید

ایمیل شما پنهان می ماند.