Social Icons

twitter facebook rss feed email

الجمعة، 14 ديسمبر 2012

المقاطعات الخارجية.. External Interrupts

بسم الله الرحمن الرحيم
اللهم صل على محمد وآل محمد
السلام عليكم ورحمة الله وبركاته


الحمد لله رب العالمين والصلاة والسلام على سيدنا محمد صاحب الخلق العظيم وعلى آله الطيبين الطاهرين
السلام عليكم ورحمة الله وبركاته ..

من دروس الأخ مصطفى

موضوع درسنا لهذا اليوم :

المقاطعات الخارجية.. External Interrupts:

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





ومن خلال البرنامج نحن نتحكم بما يلي :
1-هل هناك مقاطعات أم لا ..
2-ما هي المقاطعات التي نريدها أن تعمل ...
3-متى يستجيب المتحكم للمقاطعة ؟ (عند النبضة الصاعدة أو الهابطة أو ثبات الجهد أو أي تغير)
4-ما هو الكود الذي يجب تنفيذه عند الاستجابة للمقاطعة ؟

بالنسبة للسؤال الثالث فسنتحدث عنه قليلاً ...
نعلم أن النظام الثنائي يحتوي رقمين . صفر وواحد .. ولكن الاحتمالات من أجل رقمين متتاليين هي4 كما يلي :

صفر ثم صفر ..
صفر ثم واحد ..
واحد ثم صفر ..
واحد ثم واحد ..

فإذا اعتبرنا أن الواحد هو 5 volt  وأن الصفر  هو 0 فولت ..
فسنسمي كل احتمال من الاحتمالات الرابعة باسم مختلف كما يلي :
صفر ثم صفر .. (أي ثبات الجهد عن الصفر ...نسميه المستوى المنخفض (Low Level))
صفر ثم واحد .. ( أي انتقال الجهد منخفض إلى مرتفع .. نسميه جبهة صاعدة (Rising Edge))
واحد ثم صفر .. (أي انتقال الجهد من المرتفع إلى المنخفض ونسميه جبهة هابطة(Falling Edge))
واحد ثم واحد ..(أي ثبات الجهد عند المستوى المرتفع ..(High Level) )



وبذلك سيصبح لدينا 4 أوامر مختلفة يمكن إعطاؤها عن طريق نوعين فقط من الجهود مرتفع ومنخفض ..

ولكن بالنسبة للمتحكم ... فسيتلقى واحدا أو صفراً فقط ..

فلون أننا فعلنا إحدى أرجل المتحكم عند المستوى المنخفض ...فعندما نعطي المتحكم جهداً مرتفعاً ..سيعتبره صفراً منطقيا.. (لأنه مفعل عند المستوى المنخفض وبالتالي .. غير مفعل عن المستوى المرتفع )
وبالمثل .. إذا فعلنا الرجل عند الجبهة الصاعدة ..فسيعتبر الانتقال من المستوى المنخفض إلى المستوى المرتفع واحد منطقي .. وكل ما سواه صفر منطقي .. (وبما أن مدة الانتقال هي فترة زمنية صغيرة ... فهذا يعني أنه سيتلقى واحد منطقي لهذه المدة فقط ..وكل ما سواها صفر منطقي )


للكبر حجم الدرس وحدوث خلل عندي في رفع الصور ..
رفعت لكم الدرس على ملف PDF على هذا الرابط

0 comments:

إرسال تعليق

إترك بصمتك ثم بإمكانك الرحيل ، لنعطيك المزيد

 

على فيس بوك