بسم الله الرحمن الرحيم
لا احراج ولا شىء يا اخى وكل سنة وانت طيب
ولكن انت هكذا تطلب اعادة شرح الكود من الاول وجديد
ههههههههههههههههههههه
لكن ما يهمكش
انا هشرح بطريقة بسيطة فى الغاية علشات تفهم منها المبدء
وبعد كدة ارجع وااقرى الشرح تانى
علشان تفهم بتعمق اكثر ان شاء الله
فى الاول لازم تبقى عارف شكل النبضات بتاعت الريموت
والموضوع دة هيفيدك جدا ان شاء الله
http://www.qariya.info/vb/showthread.php?t=53985
وبعد ما قريتة
اولا
احنا عايزين نقيس عرض النبضة
بمعنى نفترض ان انت قمت بالضغط على زر الريموت وتم ارسال النبضات
اول ما هيستقبل المستقبل هذه النبضات هتتغير حالة خرجة
ومهمتنا اننا نقيس النبضة الواحدة من النبضات دى اعدت اد اية شغالة
كم من الزمن فضلت شغالة والحسابات هنا بالميكروثانية
والى هيعمل المهمة دى فى الميكرو حاجة اسمها
التايمر 0
هو عندة القدرة على العد بسرعه ربع المذبذب الى انت مركبة
وفى حالتنا 4 ميجا
يعنى ربعه 1 ميجا يعنى يقدر يعد بسرعه 1 ميكروثانية
طيب اول ما بتيجى النبضة التايمر دة بيبدء يعد وبعد ما النبضة بتخلص
على طول بتتم معالجة النبضة دى ومعرفة هى اعدت اد اية
وبعد كدة بنكرر الموضوع دة 12 مرة متقسمين
يعنى مرة 7 مرات تكرار علشان نعرف عرض كل نبضة لاوامر الكومند
ومرة تانية 5 مرات تكرار علشان نعرف عرض كل نبضة من اوامر الادريس
وبكدة النبضات بتاعت الريموت خلصت يبدء يجمع بقى
كل نوع من النبضات فى متغير شكل
يعنى الادريس الى هو 5 بيت فى متغير اسمة ir_result[1]
اما الكومند فى متغير اسمة ir_result[0
والتجميع بيتم بطريقة الازاحة وانا قلت فى الشرح استخدمت الازاحة بسبب
انى عايز اسهل على الى مفهمش الكود انوا يتعامل مع اكواد الريموت كلة عادى
وبعد كدة بيعود للاختبارات جملة if
ويشوف انت دوست على انهى زر وينفذ الاوامر
دة شرح مبسط خالص
ااقرة كويس علشان تفهم المبدء
وبعد كدة ارجع للكود وافهموا كويس
ولو بردوة الكود مش واضح تمام
قلى وانا هشرحهولك بشكل خاص ان شاء الله