(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 انجام میشود.

پژوهشگر و نویسنده: دکتر (  افشین رشید )