پیکره بندی تایمرریا، کانتر ها:
- AVR ها نهایتا دارای سه تایمر/ کانتر هستند (به جز MEGA128 که ۴ تایمر دارد).
- به علت وجود این سه تایمر /کانتر در میکرو نمونه AT90S8535 در این بخش قصد داریم به معرفی تمام تایمر کانتر ها و رجیستر های مربوطه و سپس پیکره بندی آنها در محیط BASCOME بپردازیم.
معرفی تایمر، کانترصفر و رجیستر ها:
- تایمر/ کانترصفرهشت بیتی و قابلیت انتخاب کلاک از کلاک سیستم، تقسیمی از کلاک سیستمی از پایه های خروجی را دارا است.
- تایمر/ کانتر صفر با توجه به تنظیمات رجیستر کنترلی TCCR0می تواند متوقف شود.
- پرچم سر ریز و مد مقایسه ای در رجیستر TIFR موجود است.
- فعال و غیر فعال کردن وقفه های تایمر/ کانتر صفر در رجیستر TIMSK قابل تنظیم است.
پیکر بندی در مد تایمر:
- در صورتی که وقفه سر ریز با دستور ENABLE OVF0 و وقفه سراسری با دستور ENABLE INTRRUPTS فعال باشد می توان در لحظه سرریزی کانتر با دستور ON OVF0 LABLE و یا ON TIMER0 LABLE به لیبل پرش کرد و روتین وقفه مربوط به ان را اجرا کرد.
- محتوای تایمر/ کانتر یک را می توان با دستور VAR = TIMER0 خواند که VAR باید متغیری از جنس BYTE باشد.
- با دستور TIMER0 = INITIAL VALUE مقدار اولیه ای را می توان در تایمر صفر قرار داد.
پیکر بندی به صورت کانتر:
- CONFIG TIMER0 = COUNTER , EDGE = RISING / FALLING با انتخاب EDGE = RISING با هر لبه بالا رونده به پایه T0 شمارش صورت می گیرد.
- با انتخاب EDGE = FALLING با هر لبه پایین رونده به پایه T0 شمارش صورت می گیرد.
- کانتر پس از شمردن تا مقدار $FF و به تعداد $FF+1 پالس پرچم OVF0 یک می شود.
- محتوای تایمر /کانتر صفر را می توان با دستور VAR = COUNTER0 خواند که VAR باید متغیری از جنس BYTE باشد.
- در صورتی که وقفه سر ریز با دستور ENABLE OVF0 و وقفه سراسری با دستور ENABLE INTRRUPTS فعال باشد می توان در لحظه سرریزی کانتر با دستور ON OVF0 LABLE و یا ON COUNTER LABLE به لیبل پرش کرد و روتین وقفه مربوط به ان را اجرا کرد.