آیا میدانید در حال حاضر بيش از 100 ميليون مين در 90 کشور جهان وجود دارد
هر چه اکنون هستيم محصول افکاري است که سابقا داشته ايم و حالا داريم. از پاستور
Logo

حل تمرینات و پروژه های درس میکروکنترلر
کار با تایمر کانتر صفر AVR در حالت PWM سریع به زبان سی کدویژن CodeVision

PWM مخفف (Pulse Width Modulation) یعنی مدولاسیون پهنای باند می باشد که در بعضی مواقع به آن (Pulse Duration Mode) نیز می گویند. در این مدولاسیون پهنای پالس تولیدی را می توان تحت کنترل داشت. از کاربردهای PWM می توان به کنترل دور موتورهای AC و DC و منابع تغذیه سوئیچینگ و ... اشاره کرد.

برای استفاده و راه اندازی PWM باید بیت های WGM01 , WGM00 را از رجیستر TCCR0 که 4 حالت ایجاد می کنند را مطابق جدول زیر تنظیم کرد.

 

SET شدن TOV0 در بروزرسانی OCR0 در حد بالا  مد عملکرد WGM00 WGM01 حالت
ماکزیمم آنی و فوری 0xFF عادی 0 0 0
حد پایین حد بالا 0xFF PWM تصحیح فاز 1 0 1
ماکزیمم آنی و فوری OCR0 مقایسه 0 1 2
ماکزیمم حد بالا 0xFF PWM سریع 1 1 3

 



در حالت 3 PWM سریع انتخاب شده و همانطور که در قسمت CTC توضیح دادیم رجیستر OCR0 به طور دائم با رجیستر TCNT0 مقایسه می شود و پس از برابر شدن بیت سریز مقایسه خروجی (OCF0) فعال شده و پایه OC0 مطابق با تنظیمات مربوطه تغییر وضعیت می دهد. همانطور که در جدول بالا مشاهده می کنید در حالت 3 شماره تا 0xFF ادامه می یابد و بعد از سریز تایمر TCNT0=0 خواهد شد و دوباره شماره ادامه داده می شود.

در حالت PWM سریع پایه OC0 در تایمر صفر دارای حالت های زیر می باشد که ما در برنامه می توانیم آنها را با توجه به نیازمان انتخاب کنیم:

  1. OC0 قطع باشد
  2. OC0 معکوس نشود.
  3. OC0 معکوس شود

نکته: توجه داشته باشید که در تایمر/کانتر 1و2 حالت های متفاوت دیگری وجود دارد.

فرکانس خروجی PWM را می توان از طریق رابطه زیر بدست آورد:

FPWM=(fclk_IO)/(N*256)

N ضریب تقسیم کلاک سیستم است و برابر با یکی از اعداد 1و8و32و64و128و256و1024 می باشد و fclk_IO هم همان فرکانس کریستال میکرو می باشد.

 @مثال1  برنامه ای بنویسید که یک موج PWM با عرض پالس 30% روی پایه OC0 ایجاد شود.

منظور از عرض 30% یعنی اینکه از 100% یک پالس کامل، مقدار 30% آن در وضعیت 1 باشد و 70% دیگر آن در وضعیت صفر باشد. که با یک تناسب ساده می توان عددی بدست آوردن و با گذاشت این عدد در OCR0 می توانیم به عرض 30% دست یابیم.

OCR0=(255*30)/100 = 76
FPWM=(8000000)/(1024*256)= 30Hz

#include <mega16.h> #define xtal 8000000 void main(void){ PORTB.3=0; DDRB.3=1;//OC0 OUT PUT TCNT0=0; OCR0=76; TCCR0=0x6D;// Clock value: 7.813 kHz & NON INVERT while (1); }

تنظیمات در Codewizard:

Clock Source: System Clock Clock Salue: 7.813kHZ Mode: Fast PWM top=ffh Output: Non inverted PWM 0 Overflow Intrrupt 0 Compare Match Interrupt Timer Value: 0h Compare: 0h
 

چون عدد OCR0 اعشاری شد پس پالس ما دقیقا 30% نخواهد بود که اگر این پالس را با دقت بالاتری نیاز داشته باشیم باید با استفاده از وقفه تایمر صفر اینکار را انجام داد.

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.




فایل های ضمیمه ( ورود - عضويت )

فایل شماره 106 | حجم 38 کیلوبایت | دانلود 548 بار

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

منبع www.picpars.com  دانلود مثال کار با تایمر کانتر صفر AVR در حالت PWM سریع

منبع www.picpars.com  پسورد: www.picpars.com


لینک ثابت این صفحه:   


© کپی برداری از مطالب این سایت تنها با ذکر منبع مجاز می باشد

در صورت داشتن هر گونه سوال، نظر و پیشنهاد راجب این مطلب می‌توانید در قسمت نظرات همین صفحه مطرح نمائید. همچنین با شرکت در نظر سنجی های سایت، ما را در بهبود بخشیدن به مطالب یاری کنید.


مدولاسیون-پهنای-باند مدولاسیون عرض پالس سریع کدویژن پی-آیسی-پارس برنامه-نویسی-میکروکنترلرها میکرو میکروکنترلر میکروکنترولر برنامه زبان سی فایل دانلود رایگان micro microcontroler avr pic C Proteus schematic source Download electronic free picpars picpars.com pwm Pulse Width Modulation Duration Mode

ارسال شده در مورخه : جمعه، 8 بهمن ماه، 1389 توسط مدیریت بازدید [4524]   پرینت

مرتبط باموضوع :

 شمارنده 4 رقمی با LCD زبان C و AVR  [ چهارشنبه، 13 مرداد ماه، 1389 ] 3771 مشاهده
 آموزش نحوه کار با Timer میکرو تحت برنامه نویسی Codevision  [ يكشنبه، 14 شهريور ماه، 1389 ] 5597 مشاهده
 دریافت اطلاعات از کاربر با سوئیچ به زبان سی  [ پنجشنبه، 22 دي ماه، 1390 ] 759 مشاهده
 توابع در زبان سی C قسمت 5  [ دوشنبه، 30 فروردين ماه، 1389 ] 4313 مشاهده
 
نام شما: [ کاربر جدید ]

نام شما (ضروری): 
ایمیل شما : 
نظر:
کد امنیتی
کد امنیتی

  [ بازگشت ]
  • امتیاز بدهید
  • انتخاب ها
  • اشترک گذاری
آیا این مطالب مورد رضایت شما واقع گردید؟ لطفا با رای دادن به این مطلب ما را در بهبود بخشیدن به مطالب کمک کنید. با اینکار به سایر دوستان‌تان نیز کمک خواهید کرد.


 فایل پی دی اف فایل پی دی اف

 گرفتن پرينت از اين مطلب گرفتن پرينت از اين مطلب

 ارسال به دوستان ارسال به دوستان

 گزارش این پست به مدیر سایت گزارش این پست به مدیر سایت

پروژه های آماده
پروژه کنترل سروو موتور از 0 تا 180 درجه

کنترل زاویه ای 0 تا 180 درجه؛ قابلیت تعریف بیش 100 برنامه مجزا توسط کاربر؛ تعیین زاویه برای هر پله حرکت سروو موتور؛ تعیین سرعت حرکت سروو موتور؛ تعیین مدت زمان کارکرد در هر برنامه از 1 تا 255 دقیقه. منوی کاربری بسیار آسان برای تعریف برنامه ها. جزئیات...


عناوین مطالب
عناوین مطالب را در موضوعات مربوطه جستجو کنید!
یک موضوع انتخاب کنید:



لینک باکس مهم‌ترین‌ ها
  • پروژه‌ها
  • برترین‌ها
  • پر بازدید
  • بیشترین نظرات
cash10-H7

سالنامه فارسی
ش ی د س چ پ ج
  12345
6789101112
13141516171819
20212223242526
2728293031

دوشنبه

1

1 خرداد ماه، 1391
21/05/2012


رویداد ها:
روز بزرگداشت ملاصدرا - روز بهره وری و بهینه سازی مصرف

جستجو در تقویم ...
cash40-D1

آمار کاربران

نظرسنجی
نظر شما در مورد کیفیت سایت چیست؟

خیلی عالیه
میتونه بهتر باشه
جای کار داره
خوب نیست
نظری ندارم!



شما میتوانید در این مورد نظر مکتوب خود را بنویسید: مشاهد نتایج و ثبت نظر

نظرسنجی ها

تعداد آراء: 679    نظرات: 42

تبادل لینک
PicPars با تمامی وب سایتها و وبلاگها تبادل لینک میکند. ابتدا لینک ما در وب خود ثبت کنید و سپس لینک خود را از اینجا برای ما ارسال کنید. در اولین فرصت لینک شما در سایت ثبت می شود.

پیشنهاد ما

سفارش طراحی پروژه
مرورگر پیشنهادی ما
نرم افزار دانلود فایلها
برنامه فشرده سازی







امتیاز به سایت
امتیاز به این صفحه
با یک امتیاز مثبت از طریق Gmail تان از سایت حمایت کنید