الحمد لله رب العالمين والصلاة والسلام على سيدنا محمد صاحب الخلق العظيم
السلام عليكم ورحمة الله وبركاته ..
موضوع درسنا لهذا اليوم :
المقاطعات الخارجية.. External Interrupts:
هي عدة تعليمات يتم تنفيذها بناء على أمر خارجي ...ولها أولوية أعلى من البرنامج الرئيسي ...
نقوم بتغليف هذه التعليمات ضمن دالة function ولكن لا يمكننا استدعاء هذه الدالة ..من البرنامج.!!
لأنها تستدعى بأمر خارجي ...
أي أنها دالة تُستدعى ...(هاردويريّاً ) أي أن تغيّراً خارجياً هو الذي يسبب استدعاءها وتنفيذها ....
الفكرة الأساسية في موضوع المقاطعات هي أولوية التنفيذ ...
فقد يكون لدينا عدة مقاطعات ... فيكون لكل مقاطعة ترتيب محدد في سلم أولويات المتحكم
يتوقف تنفيذ البرنامج الأصلي .. ويتحول المتحكم إلى تنفيذ البرنامج الموجود في دالة المقاطعة ...
بعض الأمثلة الواقعية لفهم مبدأ المقاطعات :
لكي نلاحظ المقاطعات في حياتنا لنبحث عن أمور تحدث دون إرادتنا ..فتجعلنا نتوقف عما نقوم به ونقوم بعمل آخر..
مثلاً ... حادث وفاة ... أو مرض يلزم الفراش .. هي مقاطعات خارجة عن إرادتنا ...تضطرنا للتوقف عما نقوم به والبدء بتنفيذ برنامج حادث الوفاة والذي يتضمن عدة تعليمات مثل تغسيل الميت وتجهيز الكفن والقبر ..إلخ
أو الراحة مثلاً وأخذ الدواء في حال المرض ..
بالمثل ... فهناك في الحاسوب الشخصي زر لإعادة التشغيل ... يجعل الحاسوب يتوقف عن عمله الحالي ويعيد التشغيل.
وفي المتحكم هناك أرجل خاصة ... عند تطبيق جهد معين عليها تقوم بتنفيذ الدالة الخاصة بهذه المقاطعة ...
ومن خلال البرنامج نحن نتحكم بما يلي :
1-هل هناك مقاطعات أم لا ..
2-ما هي المقاطعات التي نريدها أن تعمل ...
3-متى يستجيب المتحكم للمقاطعة ؟ (عند النبضة الصاعدة أو الهابطة أو ثبات الجهد أو أي تغير)
4-ما هو الكود الذي يجب تنفيذه عند الاستجابة للمقاطعة ؟
(لاحتواء الدرس على الكثير من الصور يصعب رفعها على حدة .. أرجو متابعة الدرس من هنا .المقاطعات.pdf )
ويمكنكم تحميل المرفقات من هنا .. application.rar )
والله ولي التوفيق .. وله الحمد والمنة ..
والسلام عليكم ورحمة الله وبركاته
