(Bascom AVR)راه اندازی کانتر صفر در محیط بسکام (مهندسی برق_ الکترونیک)
پژوهشگر و نویسنده: دکتر ( افشین رشید )
نکته: در برنامه Bascom _ AVR ، هنگامی که تایمر سرریز میشود (تا 255 میشمارد) به زیر برنامه پرش میشود و یک واحد به متغییر افزوده میشود ، شرط if میگوید که اگر مقدار متغیر برابر با حافظه میکروکنترلر AVR شد یک واحد به متغیر به حافظه کلی اضافه کند و آن را در سطراول ، ستون اول lcdنمایش بدهد.
از انجا که مقدار متغیر به مجموع حافظه نمیرسد.(در اولین رجوع مقدار متغیر حافظه ثابت میشود) این شرط اجرا نمیشود . با دستور return به برنامه تایمر برمیگردد . مقدار تایمر صفر شده و دوباره تا 255 شمرده میشود ... و این عمل مدام تکرار میشود.با چند دستور ساده میتوان یک کانتر صفر ساخت و کانتر صفر در بسکام با دستور زیر پیکربندی میشود:
CONFIG TIMER0 = COUNTER , EDGE = RISING / FALLING
با انتخاب RISING = EDGE کانتر نصبت به لبه ی بالا رونده حساس استبا انتخاب FALLING = EDGE کانتر نصبت لبه ی پایین رونده حساس است.
همچنین میتوانید با استفاده از دستور 0 COUNTER = VAR ، مقدار کانتر را در یک متغیر از جنس بایت قرار دهید و یا با دستور VALUE = 0 COUNTER ، مقدار اولیه ای در کانتر قرار دهید تا کانتر از آن شروع به شمارش کند. کانتر نیز مانند تایمر پس از شمردن تا 255 سر ریز میشود ، شما با استفاده از دستور OVF0 ENABLE میتوانید و قفه سرریزی کانتر را راه اندازی کنید . در صورتی که وقفه سرریزی کانتر فعال باشد ، کانتر پس از سرریزی به برچسبی که با یکی از دستورات LABLE OVF0 ON و یا LABLE TIMER0 ON مشخص شده پرش میکند ، باز گشت از وقفه با دستور RETURN انجام میشود.
پژوهشگر و نویسنده: دکتر ( افشین رشید )