بسم الله الرحمن الرحيم
اللهم صل على محمد وآل محمد
السلام عليكم ورحمة الله وبركاته
الحمد لله رب العالمين والصلاة والسلام على سيدنا محمد
صاحب الخلق العظيم وعلى آله الطيبين الطاهرين
السلام عليكم ورحمة الله وبركاته ..
من دروس الأخ مصطفى
من دروس الأخ مصطفى
موضوع درسنا لهذا اليوم :
المقاطعات الخارجية.. External Interrupts:
هي عدة تعليمات يتم تنفيذها بناء على أمر
خارجي ...ولها أولوية أعلى من البرنامج الرئيسي ...
نقوم بتغليف هذه التعليمات ضمن دالة function ولكن لا يمكننا استدعاء هذه
الدالة ..من البرنامج.!!
لأنها تستدعى بأمر خارجي ...
أي أنها دالة تُستدعى ...(هاردويريّاً
) أي أن تغيّراً خارجياً هو الذي يسبب
استدعاءها وتنفيذها ....
الفكرة الأساسية في موضوع المقاطعات هي
أولوية التنفيذ ...
فقد يكون لدينا عدة مقاطعات ... فيكون لكل
مقاطعة ترتيب محدد في سلم أولويات المتحكم
يتوقف تنفيذ البرنامج الأصلي .. ويتحول المتحكم إلى تنفيذ البرنامج الموجود في دالة المقاطعة ...
يتوقف تنفيذ البرنامج الأصلي .. ويتحول المتحكم إلى تنفيذ البرنامج الموجود في دالة المقاطعة ...
بعض الأمثلة الواقعية لفهم مبدأ المقاطعات :
لكي نلاحظ المقاطعات في حياتنا لنبحث عن أمور
تحدث دون إرادتنا ..فتجعلنا نتوقف عما نقوم به ونقوم بعمل آخر..
مثلاً ... حادث وفاة ... أو مرض يلزم الفراش
.. هي مقاطعات خارجة عن إرادتنا ...تضطرنا للتوقف عما نقوم به والبدء بتنفيذ
برنامج حادث الوفاة والذي يتضمن عدة تعليمات مثل تغسيل الميت وتجهيز الكفن والقبر
..إلخ
أو الراحة مثلاً وأخذ الدواء في حال المرض ..
بالمثل ... فهناك في الحاسوب الشخصي زر
لإعادة التشغيل ... يجعل الحاسوب يتوقف عن عمله الحالي ويعيد التشغيل.
وفي المتحكم هناك أرجل خاصة ... عند تطبيق جهد
معين عليها تقوم بتنفيذ الدالة الخاصة بهذه المقاطعة ...
ومن خلال البرنامج نحن نتحكم بما يلي :
1-هل هناك مقاطعات أم لا ..
2-ما هي المقاطعات التي نريدها أن تعمل ...
3-متى يستجيب المتحكم للمقاطعة ؟ (عند النبضة الصاعدة أو
الهابطة أو ثبات الجهد أو أي تغير)
4-ما هو الكود الذي يجب تنفيذه عند الاستجابة للمقاطعة ؟
بالنسبة للسؤال الثالث فسنتحدث عنه قليلاً
...
نعلم أن النظام الثنائي يحتوي رقمين . صفر وواحد
.. ولكن الاحتمالات من أجل رقمين متتاليين هي4 كما يلي :
صفر ثم صفر ..
صفر ثم واحد ..
واحد ثم صفر ..
واحد ثم واحد ..
فإذا اعتبرنا أن الواحد هو 5 volt وأن الصفر
هو 0
فولت ..
فسنسمي كل احتمال من الاحتمالات الرابعة باسم
مختلف كما يلي :
صفر ثم صفر .. (أي ثبات الجهد عن الصفر
...نسميه المستوى المنخفض (Low Level))
صفر ثم واحد .. ( أي انتقال الجهد منخفض إلى
مرتفع .. نسميه جبهة صاعدة (Rising Edge))
واحد ثم صفر .. (أي انتقال الجهد من المرتفع
إلى المنخفض ونسميه جبهة هابطة(Falling Edge))
واحد ثم واحد ..(أي ثبات الجهد عند المستوى
المرتفع ..(High Level) )
وبذلك سيصبح لدينا 4 أوامر مختلفة يمكن
إعطاؤها عن طريق نوعين فقط من الجهود مرتفع ومنخفض ..
ولكن
بالنسبة للمتحكم ... فسيتلقى واحدا أو صفراً فقط ..
فلون أننا فعلنا إحدى أرجل المتحكم عند
المستوى المنخفض ...فعندما نعطي المتحكم جهداً مرتفعاً ..سيعتبره صفراً منطقيا..
(لأنه مفعل عند المستوى المنخفض وبالتالي .. غير مفعل عن المستوى المرتفع )
وبالمثل .. إذا فعلنا الرجل عند الجبهة
الصاعدة ..فسيعتبر الانتقال من المستوى المنخفض إلى المستوى المرتفع واحد منطقي ..
وكل ما سواه صفر منطقي .. (وبما أن مدة الانتقال هي فترة زمنية صغيرة ... فهذا
يعني أنه سيتلقى واحد منطقي لهذه المدة فقط ..وكل ما سواها صفر منطقي )
0 comments:
إرسال تعليق
إترك بصمتك ثم بإمكانك الرحيل ، لنعطيك المزيد