دستورات تایمر کانتر 2 در زبان بیسیک BASIC

دستورات تایمر کانتر 2

دستورات تایمر کانتر 2 در زبان بیسیک BASIC

این تایمر – کانتر دارای امکاناتی مانند مد compare و خروجی pwm می باشد.

پیکر بندی تایمر کانتر 2 به عنوان تایمر در زبان بیسیک BASIC

این تایمر 8 بیتی بوده پس حداکثر مقدار شمارش آن تا 255 خواهد بود با این دستور تایمر – کانتر 2 به عنوان یک تایمر به میکرو معرفی می شود.

1/8/32/64/128/256/1024 : مقادیری که می توان برای تقسیم فرکانس میکرو استفاده کرد.

async : زمانی که off باشد به صورت یک تایمر معمولی عمل می کند. اما زمانی که on باشد, تایمر به صورت آسنکرون از دو پایه tosc1 و tosc2 که کریستال 32768hz به آنها متصل است کلاک دریافت می کند که در بخش rtc در مورد آن بحت خواهد شد.

میزان فرکانس کار این تایمر از رابطه زیر بدست می آید:

فعال و روشن کردن تایمر کانتر 2 در زبان بیسیک BASIC

در هنگام برنامه نویسی این دو دستور را حتما با هم به کار برید تا میکرو تایمر را روشن کند.

غیر فعال کردن تایمر کانتر 2 در زبان بیسیک BASIC

از این دستور می توان در جاهای مختلف برنامه برای خاموش کردن تایمر استفاده نمود.

نکته : با خاموش کردن timer2 مقدار شمارش شده صفر نخواهد شد و با روشن کردن دوباره آن ادامه شمارش انجام خواهد شد.

نوشتن و خواندن تایمر کانتر 2 در زبان بیسیک BASIC

نکته : مقدار تایمر در رجیستری به نام timer2 قرار گرفته است که می توان به این رجیستر مقدار داد تا تایمر از آن مقدار شروع به شمارش کند و یا مقدار آن را در متغیری که برای انجام عملیاتی لازم دارید بریزید.

وقفه تایمر کانتر 2 در زبان بیسیک BASIC

پرچم سریزی تایمر 2 به نام ovf2 بوده و همانطور که گفته شد با رسیدن مقدار تایمر به عدد 255 ( مقدار timer2 برابر صفر می شود ) این پرچم 1 شده و می توان از آن به عنوان پرش به یک زیر برنامه استفاده کرد و در زیر برنامه با return بازگشت. در این دستور باید اول پرچم را فعالسازی و بعد با دستور ovf2 on در صورت یک شدن ovf2 به برچسب زیر برنامه پرش کرد.

نکته : فراموش نشود برای کار با هر وقفه ای اول باید و قفه کلی enable interrupts را فعال کرد.

مثال اول :

مثال دوم :

پیکر بندی تایمر کانتر 2 به عنوان کانتر در زبان بیسیک BASIC

با این دستور کانتر 2 پیکر بندی شده و با اعمال پالس به پایه t2 میکرو یک واحد به رجیستر counter2 اضافه می شود. این کانتر 8 بیتی بوده پس حداکثر مقدار شمارش آن تا 255 خواهد بود ( پالس ورودی بعدی کانتر را صفر می کند )

Edge : گزینه rising برای حساس بودن پایه به لبه بالا رونده و گزینه falling برای حساس بودن پایه به لبه پایین رونده

فعال و روشن کردن کانتر 2 در زبان بیسیک BASIC

این دستور را حتما به کار برید تا میکرو کانتر را روشن کند

غیر فعال کردن کانتر 2 در زبان بیسیک BASIC

از این دستور می توان در جاهای مختلف برنامه برای خاموش کردن کانتر استفاده نمود.

با خاموش کردن counter2 مقدار شمارش شده صفر نخواهد شد و با روشن کردن دوباره آن ادامه شمارش انجام خواهد شد.

نوشتن و خواندن کانتر 2 در زبان بیسیک BASIC

نکته : مقدار کانتر در رجیستری به نام counter2 قرار گرفته است که می توان به این رجیستر مقدار داد تا کانتر از آن مقدار شروع به شمارش کند و یا مقدار آن را در متغیری که برای انجام عملیاتی لازم دارید بریزید.

وقفه کانتر 2 در زبان بیسیک BASIC

پرچم سریزی کانتر 2 به نام ovf2 بوده و همانطور که گفته شد با رسیدن مقدار کانتر به عدد 255 و با ورود یک پالس دیگر (مقدار counter2 برابر صفر می شود) این پرچم 1 شده و می توان از آن به عنوان پرش به یک زیر برنامه استفاده کرد و در زیر برنامه با return بازگشت. در این دستور باید اول پرچم را فعال سازی و بعد با دستور on ovf2 به برچسب زیر برنامه پرش کرد.

نکته : فراموش نشود برای هر کار با وقفه ای اول باید وقفه کلی enable interrupts رافعال کرد.

مثال اول :

مثال دوم :

پیکر بندی کانتر 2 به همراه مد مقایسه ای در زبان بیسیک BASIC

با کانتر 2 که آشنا شده اید با ورودی پالس به پایه T2 کانتر شروع به شمارش می کند. این تایمر قابلیتی دارد که با رسیدن مقدار کانتر به عددی دلخواه که در درون رجیستر دو بایتی compare می توان قرار داد خروجی پایه oc2 را به دلخواه تغییر وضعیت داد.

Compare : در این قسمت گزینه هایی را در اختیار دارید که می توان عکس العمل خروجی oc2 در زمان تطابق را تغییر داد و clear برای صفر شدن در زمان تطابق و گزینه set برای یک شدن و toggle برای معکوس شدن و disconnect برای قطع شدن این پایه در زمان تطابق می تواند باشند.

فعال و غیر فعال کردن کانتر 2 در مد مقایسه ای

نکته: به یاد داشته باشید که برای این مد هم باید از این دستورات استفاده کنید.

پیکر بندی تایمر 2 به همراه مد مقایسه ای

تایمر 2 را هم می توان در این مد استفاده کرد و کاملا شبیه به حالت استفاده از کانتر می باشد و تنها در این حالت مقدار درون timer2 با رجیستر compare مقایسه می شود. و در صورت تطابق خروجی oc2 تغییر می کند.

فعال و روشن کردن و غیر فعال کردن تایمر 2 در مد مقایسه ای

نکته : به یاد داشته باشید که برای این مد هم باید از این دستورات استفاده کنید.

نوشتن و خواندن رجیسترهای مد مقایسه ای

وقفه کانتر و تایمر در مد مقایسه ای در زبان بیسیک BASIC

شما می توانید زمانی که مقدار counter2 یا timer2 با مقدار رجیستر مد مقایسه ای (compare) تطابق پیدا کردند به صورت وقفه به یک زیر برنامه بروید و عملی را انجام دهید.

پیکر بندی تایمر کانتر 2 در مد pwm

تایمر – کانتر 2 دارای یک خروجی pwm است که پایه oc2 می باشد. رجیستری برای قرار گیری مقدار pwm خروجی وجود دارد که به نام pwm است. که می توان از این رجیستر خواند و یا در آنها نوشت.

Pwm = on /off : این قابلیت را در زمان on بودن به ما می دهد که از تایمر در این مد استفاده کنیم که کمتر استفاده می شود. فرکانس کار pwm به صورت زیر است.

نکته : f.osc فرکانس کار میکرو کنترلر می باشد.

Compare pwm = این گزینه نوع تغییرات سیگنال pwm را مشخص می کند که در حالت clear up در حالتی که رجیستر pwm بیشترین مقدار خود را دارد به همان نسبت خروجی بیشترین پهنای خود ( موج dc ) را خواهد داشت و بلعکس

حالت clear down در حالتی که رجیستر pwm بیشترین مقدار خود را دارد به همان نسبت خروجی کمترین پهنای خود ( صفر ولت ) را خواهد داشت و بلعکس.

حالت disconnect خروجی آن مد قطع می شود.

نوشتن و خواندن رجیسترهای مد pwm

نکته : برای فعال کردن pwm باید دستور start timer2 را حتما استفاده کنید.

 اطلاعات پروژه

 رمز فایل : www.electronics98.com (این مطلب فاقد فایل جهت دانلود است)

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 24 سپتامبر 2014

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

 از ارسال لینک‌های سایت‌های دیگر و ارایه‌ی اطلاعات شخصی خودتان مثل شماره تماس، ایمیل و آی‌دی شبکه‌های اجتماعی پرهیز کنید.