ايران ويج

نسخه‌ی کامل: اينكدر سوئيچ
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
نقل قول: وقتی که مثلا ورودی A یک هست ورودی b رو چک کنی اگه یک بود مثلا به راست و اگه صفر بود برعکس
با سلام و تشكر از راهنمايي شما
از دستور encoder در avr استفاده کن
دستور ENCODER :

ENCODER نوعی کلید دوطرفه میباشند

از این قطعه در کیبردها و لوازم صوتی تصویری و ... برای کم و زیاد کردن صدا و نور و ... استفاده میشود . در واقع این قطعه از دوکلید تشکیل شده است ، هنگامی که شما سری را به سمت راست میچرخانید ، کلید سمت راست ( که یک پایه ان به پایه وسط و پایه دیگر به پایه سمت راست متصل است) قطع و وصل میشود ، و هنگامی که سری را به سمت چپ میچرخانید کلید سمت چپ ( که یک پایه ان به سر وسط و پایه دیگر به پین سمت چپ متصل است ) قطع و وصل میشود ، با استفاده از دستور زیر میتوان عملیات مناسب با جهت چرخش ( قطع و وصل شدن هر کلید ) را انجام داد:
کد:
Var = ENCODER( pin1, pin2, LeftLabel, RightLabel , wait(
Var : یک متغییر از جنس دلخواه میباشد که به ازای پالس های فرد مقدار ان صفر و به ازای پالس های زوج مقدار ان یک است (مقدار ان حول صفر ویک تغییر میکند)
pin1 : نشان دهنده پایه ای است که پین 1 (چپ یا راست ) انکدر به ان متصل میشود.
pin2 : نشان دهنده پایه ای است که پین 2 (چپ یا راست ) انکدر به ان متصل میشود.
LeftLabel : نام برچسبی است که در هنگام به چپ چرخیدن انکودر به ان پرش میشود.باز گشت از برچسب با دستور return ان جام میشود.
RightLabel : نام برچسبی است که در هنگام به راست چرخیدن انکودر به ان پرش میشود. باز گشت از برچسب با دستور return ان جام میشود.
Wait : در صورتی که شما به جای این کلمه 1 بگذارید cpu میکرو بر روی این دستور متوقف میشود ، هنگامی که انکدور چرخید cpu به زیر برنامه میرود و بعد از انجام دستورات موجود در زیر برنامه دوباره روی این دستور متوقف شده و منتظر میماند تا پالسی اعمال شود و درصورتی که 0 قرار دهید cpu مدام در حلقه گردش میکند و اگر دستور انکودر در حلقه باشد ان را چک میکند و اکگر نباشد که هیچ.
مانند:
کد:
$regfile = "m16def.dat"
$crystal = 12000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.4 , Rs = Portd.5
Config Portb = Input
Dim A As Byte , B As Byte , C As Word : Cls
Do
A = Encoder(pinb.0 , Pinb.1 , Q , W , 0)
Locate 1 , 1
Lcd A
Loop
End
Q:
Incr B
Locate 1 , 5
Lcd B
Return
W:
Incr C
Locate 1 , 11
Lcd C
Return
در مثال بالا پایه مشترک انکدر به گراند و پایه چپ ان به پین b.0 و پایه راست ان به پین b.1 متصل شده است .

منبع : كتاب آموزش AVR به زبان بيسيك ( تاليف : آقاي 1نفر )
صفحه‌ها: 1 2 3