PDA

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



usef-elc
10-07-2012, 17:33
سلام
دوستان من يه برنامه ساده براي خوندن ورودي در سري LPC23xx نوشتم كه در اون پايهP0.1 رو به عنوان ورودي تعريف كردم و همچنين اين پايه رو pull-down كردم(توسط رجيستر PINMODE0) و يك led كه به پايه P0.0 وصل شده و برنامه به اينصورته كه تا زماني كه ورودي 1 است led چشمك مي زنه و درغيراينصورت خاموشه. همين
ولي در عمل كار نمي كنه ، يعني ميكرو ورودي رواصلاً نمي خونه چون من خروجي رو با چشمك زدن، بدون گرفتن ورودي تست كردم و درست بود.
از دوستان اگر كسي پيشنهادي داره يا قبلا در اين مورد كاركرده ممنون ميشم كمكم كنه.
برنامه رو در keil نوشتم و در پيوست قرار دادم

باتشكر.

esi_52000
10-07-2012, 19:12
برنإمه مشکلی ندإره .شمإ إومدین پین 1 رو pulldown کردین .وقتی میخوإیین تستش کنین إز وصل بودن إین پین به vcc مطمءن هستین دإدإ

usef-elc
10-07-2012, 19:12
مشكل حل شد. در حين اينكه من تاپيك رو مي نوشتم يه فكري به ذهنم رسيد و با انجام آن مشكل حل شد اينو گفتم تا بگم كفتن مشكل به كسي ميتونه به حل مشكل توسط خود فرد منجر بشه و من اينو بارها تجربه كردم.
اما پاسخ مشكلي كه مطرح كردم :
من تو برنامه ورودي رو توسط رجيستر IOPIN0 مي خوندم و با دستور شرطي كل رجيستر رو چك مي كردم در حالي كه من فقط بايد وضعيت اون پايه رو كه به صورت ورودي تعريف كردم بايد مي خوندم و اين كار با AND كردن رجيستر IOPIN0 با مقداري كه متناظر با پايه ورودي است امكان پذير است. مثلاً اگر پايه 1 از پورت صفر ورودي است بايد رجيستر IOPIN0 با مقدار 0x2 AND كنيم و سپس با دستور شرطي ورودي رو چك كنيم.
برنامه اصلاح شده در پيوست آورده شده.