AVR Session 3 2010, Autumn Timer & Counter  تا ا يکي ا ا از مه ااي ت اايي ااه ميکيوکنترل ااي ا ا ا.

Download Report

Transcript AVR Session 3 2010, Autumn Timer & Counter  تا ا يکي ا ا از مه ااي ت اايي ااه ميکيوکنترل ااي ا ا ا.

Slide 1

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 2

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 3

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 4

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 5

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 6

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 7

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 8

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 9

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬


Slide 10

AVR
Session 3

2010, Autumn

‫‪Timer & Counter‬‬
‫‪ ‬تا ا يکي ا ا از مه ااي ت اايي‬

‫ااه ميکيوکنترل ااي ا ا ا ک ااي و ي ااي اصا الي آن‬

‫زم ا ن اان ي و شااک م مااش ش ا از ا ا وي م ا ميکاايو‬

‫کنترلي ا‬

‫اکماار‬

‫ا ي ها‬

‫ه م شو ‪.‬‬

‫‪ ‬ک ا تر هااي کااي هک ااي کن ا ت ا کي ااي ک ا مياارو و‬

‫ااي ش شااک م وق ا‬

‫خ جي ا ا ‪.‬‬
‫ميکيوها ا ‪ AVR‬تع ا ا ا‬
‫ميک اايو و ااو ا‬

‫‪ 16‬يت ا ‪.‬‬

‫تا ا کي‪-‬ک ا ا تر ‪ 8‬يتا ا ا ا ‪ 16‬يتا ا ب ا ا ي ا ااي م ا ا‬

‫ايا م ا ‪ ATmega16‬و ت ا کي ‪ 8‬يت ا و ا ت ا کي‬

‫کانتر‬-‫مدهاي کاري تايمر‬
 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‬یک می شود‪ ..‬با فعال‬
‫کردن گزینه ‪ Overflow interrupt‬یک روال سرویس وقفه به نام‬
‫‪ timer0_ovf_isr‬به برنامه اضافه مي شود که با هر بار سرریز‬

‫شدن تایمر صفر کدهای داخل این قسمت اجرا خواهند شد‪.‬‬

‫مد ‪Fast PWM‬‬
‫ا م م توان‬

‫موج ميب‬

‫‪ DC‬لخواه ا ج کي ‪.‬‬

‫ا م مح وا ت کي از ص ي شيوع ي افزا ش کي ه و پس از ي ن ي‬
‫مق ا ح اکمر خو وب ه ص ي م و ‪ .‬ا حين ‪ ,‬مح وا ت کي م ام‬
‫تر ‪ OCR‬يز مق ي م شو و زم ن کي ا و هي م و‬
‫مح وا‬
‫گي ‪ ,‬پ ي خيوجي تغيير وضعي خواه ا ‪.‬‬

‫دياگرام مد ‪Fast PWM‬‬

‫مقدار ‪OCR0‬‬

‫مقدار ‪TCNT0‬‬

‫خروجی ‪PWM‬‬

‫مد ‪CTC‬‬
‫در این مد زماني که محتواي تایمر – کانتر (رجیستر ‪ )TCNT‬با‬
‫رجیستر ‪ OCR‬برابر شود ‪ ,‬محتواي تایمر صفر مي شود ‪.‬‬
‫براي تولید یک پالس مربعي با فرکانس دلخواه ‪ ,‬معموال از این مد‬
‫کاري تایمر استفاده مي گردد ‪.‬‬
‫در این حالت فرکانس موج مربعي از رابطه زیر بدست مي آید ‪:‬‬

‫همچنین براي تولید ‪ 16 PWM‬بیتي مي توان از این مد تایمر استفاده‬
‫نمود ‪.‬‬

‫مد ‪Phase Correct PWM‬‬
‫این مد نیز بسیار شبیه به مد ‪ Fast PWM‬است با این تفاوت که ‪:‬‬
‫‪ ‬هنگامیکه محتواي تایمر به حداکثر مقدار ممکن خود مي رسد‪،‬تایمر‬
‫بصورت معکوس مي شمرد تا هنگامیکه محتواي آن صفر شود ‪.‬‬
‫‪ ‬در این مد فرکانس کاري نصف حالت ‪ Fast PWM‬خواهد بود ‪.‬‬

‫پروژه ‪:3‬‬
‫يک موتور ‪ DC‬را با دو سرعت مختلف راه اندازي کنيد ‪.‬‬