با سلام
با اجازه استاید میخوام راجبه pwm و کاربر دهای اون صحبت کنم
pwm به معنای کنترل عرض پاس هست که به این معنا که در یک فرکانس ثابت در موج مربعی
high بودن اون با low بودن اون برابر اما در pwm میتونید نسبت high بودن روlow بودن بیشتر یا کمتر کننین و بلاعکس.
حالا که فهمیدیم pwm چیه میریم دنباله روش های تولید اون که یکی از این روش ها استفاده از تایمر کانتر هست که در این مورد ما از ایسی مگا 8 استفاده میکنیم.
با زبان بیسک شروع میکینیم
ابتدا معرفی ایسی:
[PHP]$regifle="mega8def.dat"[/PHP]بعد از او مقدار کریستال که باید رو 8 مگ هم در فیوز بیت و هم در برنامه تنظیم شه
[PHP]$crystal=8000000[/PHP]حالا پیکر بندی تایمر ها در مد pwm (فرض بر این بوده که دوستان با عملکرد تایمر ها اشنای دازند)
[PHP]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[/PHP]حالا نوبت تعریف متغیر
[PHP]dim red as byte,green as byte,blue as byte[/PHP]چون همه رنگ ها از سه رنگ اصلی قرمز سبز ابی تشکیل میشن علت نام گذاری متغیر های بالا بود.
تو این جلسه فقط فقط رنگه قرمزو ایجاد میکنیم و بعد رنگ بنفش:
[PHP]
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
[/PHP]تحلیل کد در جلسه بعد که یکم باهاش سرو کله بزنین
یا حق