در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مطالب برایتان مفید بود

عالی و ساده بود،ادامه دهید
18
82%
خوب و قابل فهم بود،ادامه دهید
4
18%
ساده و قابل فهم نبود.
0
بدون راي
تکراری و سخت بود.
0
بدون راي
 
کل آرا : 22
Colonel II

Colonel II



نماد کاربر
پست ها

6682

تشکر کرده: 1673 مرتبه
تشکر شده: 8224 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

توسط sinaset » دوشنبه 3 اردیبهشت 1397 08:23

بنام خداوند بخشنده و مهربان
باسلام


با عرض پوزش بابت تاخیر
بهتر است وارد مبحث تایمر ها شویم !

تایمر ها و زمان سنج ها میکروکنترولر!

همانطور که قبلا گفته شد،میکروکنترولر،واحدها درونی زیادی دارد! واحدهایی که مستقل برای خودشان می باشند،اما به مرکز نیز برای کنترول و تبادل و محاسبات نیز اتصال دارند! یکی واحد های مهم در میکروکنترولر تایمرها می باشند! که معمولا در بیشتر میکروکنترولر حداقل 2 تا 3 سه عدد از این واحد درونش می باشد!

تایمر ها،بسته به مدلشان،دقت بالایی دارند! چون مستقل کار می کنند!برای محاسبات دقیق می توان از انها کمک گرفت و با دقت کارها را پیش برد!

نحویه عملکرد واحد تایمر،بدین صورت می باشد! که به کمک میکروکنترولر دستوری برای واحد تایمر ارسال میشود! تا تایمر شمارش را شروع کند!( مثلا از 0 شروع کن تا به 1000 میکروثانیه  برسی) سپس وقتی به میزان یا حد مد نظر رسید، Overflow میشود (یعنی سریز میشود) و به کمک وقفه به میکروکنترولر گزارش داده میشود!( دقیقا مثل زمانی که وقفه خارجی تابعش اجرا میشد! در تایمر ها، بعد از Overflow شدن، تابع Timer اجرا میشود)
در زمانی که تابع Timer اجر میشود، دوباره دستور دهی مقداری دهی به واحد تایمر داده میشود،تا از دوباره کارش را شروع کند ! همچنین در تابع نیز دستورات مورد نیاز خودمان نوشته میشود!

مثلا تصور کنید! می خواهید یک LED هر 500 میلی ثانیه یک بار خاموش و روشن بشود! (به صورت دائم) اگر بخواهید، این کار را با حلقه while انجام دهید! و کارهای زیادی دیگری در کنارش نیز انجام دهید! احتمالا دستورات دیگر با مشکل برخواهند خورد و کارها بدرستی شاید پیش نرود!
برای همین به سراغ واحد تایمر می روید! و در  تابعه مربوط نیز دستورات لازمه برای روشن و خاموش شدن LED را می نویسیم! بدین طریق! دستورات شما در حلقه while اجرا میشود! در کنار ان هر وقت زمان 500 میلی ثانیه تمام شد! تابع وقفه تایمر اجرا میشود و دستورات مربوط به LED را اجرا میکند! بدین طریق، محاسبات و وقت CPU نیز برای کارها ارزشمندتری،گذاشته میشود ...

با واحد تایمر می توان بسیار کارهای که نیاز به دقت بالا دارند! را انجام داد! که انشالله در اینده با ان بیشتر اشنا خواهید شد.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

قبلي

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان