با سلام
در صفحه 35 مجله شماره 9 درگاه های ورودی خروجی مدل فیلیپس شرح داده شده است. همین طور توضیحات و مثالی از آقای تروشه در دسترس است:
http://etcelec.persiangig.com/ARM%20...%20routine.rar
اینها شده موضوع را تبیین کرده ولی یک موردی وجود دارد و آن این است که مثالی نزده که از حالت ورودی استفاده کرده باشد. مثالهای مذکور همه حالت خروجی است.
من می خواهم از مد ورودی استفاده کنم. ولی نمی دادم با یک شدن پایه ورودی مورد نظر، چه رجیستری یک شده و در برنامه از چه رجیستری برای اطلاع از یک شدن پایه استفاده کنیم؟
طبق مطالب آموزشی گفته شده اگر بخواهیم پورت صفر ورودی باشد :
SCS=SCS | 1; //for enabling Fast GPIO
FIO0MASK = 0x00000000;
FIO0DIR = 0x00000000; //set the direction of PORT1 as input
فرضا می خواهیم چند تا از پایه ها را استفاده کنیم(مثلا P0.0 و P0.1) . و فرضا برنامه این است که اگر پایه P0.0 یک بود فلان کار را انجام بده و اگر پایه P0.1 یک شد فلان کار را. می خواستم ببینم این کار چگونه انجام می شود؟
در آموزش های مذکور هم گفته شده FIO0PIN برای خواندن داده از روی پورت می باشد. ولی نحوه استفاده را نمی دانم!
کسی می تونه سوال من را جواب بده که به این هدفم برسم؟
البته در سایت ECA مطلبی تحت عنوان : مجموعه آموزش های میکروکنترولرهای ARM در فایل GPIO.rar به آدرس:
������ ����� ��ی �ی�����������ی ARM
آورده است که ورودی خروجی ها را خیلی کامل توضیح داده و در انتها مثال هم زده است. در مثال گفته ورودی را بخوان:
temp=FIO1PIN; //read PORT1
ولی این قسمتش را نفهمیدم چیکار کرده:
temp&=0x00000003; //????????!!!!!
در ادامه هم گفته اگه temp یکی از این موارد بود روی آن سوییچ کن:
switch(temp)
من این برنامه را (که البته یه غلط کوچک هم داشت) ضمیمه کردم.
با تشکر