110 likes | 294 Views
AVR. Session 3. 2010, Autumn. Timer & Counter. تایمر يکي از مهم ترين بخشهاي ميکروکنترلر است که وظيفه اصلي آن زمان سنجي و شمارش می باشد؛از اين ويژگي ميکرو در اکثر سيستم هاي کنترلي استفاده مي شود . کانتر هم که هميشه در کنار تايمر به کار ميرود وظیفه ی شمارش وقايع خارجي را دارد .
E N D
AVR Session 3 2010, Autumn
Timer & Counter • تایمر يکي از مهم ترين بخشهاي ميکروکنترلر است که وظيفه اصلي آن زمان سنجي و شمارش می باشد؛از اين ويژگي ميکرو در اکثر سيستم هاي کنترلي استفاده مي شود . • کانتر هم که هميشه در کنار تايمر به کار ميرود وظیفه ی شمارش وقايع خارجي را دارد . • در ميکروهاي AVR تعدادي تايمر-کانتر 8 بيتي يا 16 بيتي بسته به مدل ميکرو وجود دارد ؛ براي مثال ATmega16دو تايمر 8 بيتي و يک تايمر 16 بيتي دارد .
مدهاي کاري تايمر-کانتر • Normal Mode • CTC (Clear Timer On Compare Match) • Fast PWM (Fast Pulse Width Modulation) • Phase Correct PWM
معرفي رجيستر هاي تايمر-کانتر • TCNTn • محتواي تايمر - کانتر شماره n در هر لحظه در اين رجيستر قرار مي گيرد . • OCRn • محتواي اين رجيستر در هر لحظه با محتواي رجيستر TCNTn مقايسه مي شود و بسته به مد کاري تايمر , کاربردهاي مختلفي پيدا مي کند . • TCCRn • اين رجيستر اطلاعاتي نظير مد کاري تايمر , فرکانس تايمر و غيره را در خود نگه ميدارد .
مد نرمال در این حالت تایمر به عنوان یک شمارنده 8 بیتی بکار می رود. تایمر با یک عدد اولیه در قسمتTCNT0 بارگذاری می شود و با هر کلاک یک واحد به مقدار آن اضافه می شود تا اینکه به مقدار نهایی خود یعنی 255 برسد و با یک کلاک دیگر تايمر سرریز می کند. پس از سرریز شدن، پرچمTOVOیک می شود.. با فعال کردن گزینه Overflowinterrupt یک روال سرویس وقفه به نام timer0_ovf_isrبه برنامه اضافه مي شود که با هر بار سرریز شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد.
Fast PWMمد در اين مد مي توان يک موج مربي با DC دلخواه ايجاد کرد . در اين مد محتواي تايمر از صفر شروع به افزايش کرده و پس از رسيدن به مقدار حداکثر خود دوباره صفر ميشود . در اين حين , محتواي تايمر مدام با محتواي رجيستر OCR نيز مقايسه مي شود و زماني که اين دو با هم مساوي گردند , پايه خروجي تغيير وضعيت خواهد داد .
Fast PWMدیاگرام مد مقدار OCR0 مقدار TCNT0 خروجی PWM
مد CTC در اين مد زماني که محتواي تايمر – کانتر (رجيستر TCNT) با رجيستر OCR برابر شود , محتواي تايمر صفر مي شود . براي توليد يک پالس مربعي با فرکانس دلخواه , معمولا از اين مد کاري تايمر استفاده مي گردد . در اين حالت فرکانس موج مربعي از رابطه زير بدست مي آيد : همچنين براي توليد PWM16 بيتي مي توان از اين مد تايمر استفاده نمود .
مد Phase Correct PWM • اين مد نيز بسيار شبيه به مد Fast PWM است با اين تفاوت که : • هنگاميکه محتواي تايمر به حداکثر مقدار ممکن خود مي رسد،تايمر بصورت معکوس مي شمرد تا هنگاميکه محتواي آن صفر شود . • در اين مد فرکانس کاري نصف حالت Fast PWMخواهد بود .
:پروژه 3 يک موتور DC را با دو سرعت مختلف راه اندازي کنيد .