PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تولید رنگ به وسیله pwm



blue_pulse
10-09-2013, 15:23
با سلام
با اجازه استاید میخوام راجبه pwm و کاربر دهای اون صحبت کنم
pwm به معنای کنترل عرض پاس هست که به این معنا که در یک فرکانس ثابت در موج مربعی
high بودن اون با low بودن اون برابر اما در pwm میتونید نسبت high بودن روlow بودن بیشتر یا کمتر کننین و بلاعکس.

حالا که فهمیدیم pwm چیه میریم دنباله روش های تولید اون که یکی از این روش ها استفاده از تایمر کانتر هست که در این مورد ما از ایسی مگا 8 استفاده میکنیم.

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

$regifle="mega8def.dat"بعد از او مقدار کریستال که باید رو 8 مگ هم در فیوز بیت و هم در برنامه تنظیم شه

$crystal=8000000حالا پیکر بندی تایمر ها در مد pwm (فرض بر این بوده که دوستان با عملکرد تایمر ها اشنای دازند)

Config Timer1 = Pwm , Pwm = 8 , Prescale = 256 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Config Timer2 = Pwm , Prescale = 256 , Compare Pwm = Clear Downحالا نوبت تعریف متغیر

dim red as byte,green as byte,blue as byteچون همه رنگ ها از سه رنگ اصلی قرمز سبز ابی تشکیل میشن علت نام گذاری متغیر های بالا بود.
تو این جلسه فقط فقط رنگه قرمزو ایجاد میکنیم و بعد رنگ بنفش:



do
for red=0 to 255
pwm1a=red
pwm1b=0
ocr2=0
waitms 20
next
red=255
for blue=0 to 255
pwm1a=red
pwm1b=0
ocr2=blue
waitms 20
next
red=0
loop
تحلیل کد در جلسه بعد که یکم باهاش سرو کله بزنین
یا حق:mrgreen::o