السلام عليكم ورحمة الله وبركاته ....
أخى أبو عبيدة ....
حتى يكون الكلام دقيقا يمكن أن نقول أنه يمكن أن يحدث مصدران أو سببان للمقاطعة فى وقت واحد
مثلا يمكن أن يحدث طفحان للتايمر زيرو TMR0 OVERFLOW وفى نفس الوقت يحدث تغير على الطرف RB0 ( المعد مسبقا كمصدر خارجى لحدوث مقاطعة )
ولكن السؤال هو :
ماذا لو حدث السببان المسببان للمقاطعة فى نفس الوقت ؟؟؟
الإجابة : بعد ضبط الإعدادات والمسجلات الخاصة بالمقاطعة وعمل اللازم وبسريان تنفيذ المتحكم للبرنامج الرئيسى بشكل طبيعى فإنه إذا حدثت مقاطعة سواء كانت داخلية أو خارجية فسيحدث التالى :
1- يترك المتحكم برنامجه الأساسى ويذهب إلى البرنامج الخاص بالمقاطعات وهو برنامج فرعى عادى جدا ولكن باسم خاص وهو INTERRUPT
2- بمجرد الدخول إلى هذا البرنامج الخاص يتم تعطيل أى مقاطعة تأتى لاحقا أى عمل mask للمقاطعات مؤقتا حتى يتم خدمة المصدر المسبب للمقاطعة
(كأنه يقول لن أستقبل الآن أى مقاطعة جديدة حتى أنتهى من خدمة المقاطعة الحالية )
إلى هنا ليس لنا دخل بما يحدث.... هذا كله يفعله المتحكم
3- م داخل البرنامج نقوم نحن باستطلاع الأعلام الخاصة للمقاطعات flags ( التى كنا قد عملنا تفعيل لها )
وهنا تكمن الفكرة :
إذا كنت قد فعلت المقاطعتين مثلا : مقاطعة طفحان التايمر زيرو بالإضافة إلى مقاطعة التغير على الطرف RB0
ثم حدثت المقاطعة بسبب حدوث السببان معا فى نفس الوقت فإنه داخل برنامج المقاطعة يمكنك تحديد أى من المقاطعتين لهما الأولوية عندك... كيف ذلك ؟؟
داخل البرنامج الخاص بالمقاطعة لو استطلعت علم مقاطعة طفحان التايمر زيرو أولا قبل علم التغير على الطرف RB0 ... فهذا يعتبر ايعازا منك أن مقاطعة طفحان التايمر زيرو لها أولوية عندك من المقاطعة نتيجة التغير على الطرف RB0RB0
RB0
أى أن الأولوية حددت عن طريق البرنامج ( وهذه إحدى الطرق لتحديد الأولوية للمقاطعات )....
وللعلم هناك متحكمات أكثر تطورا يمكن فيها تقسيم مصادر المقاطعات إلى نوعين : مقاطعات ذات ألوية منخفضة LOW PRIORITY INTERRUPTS ومقاطعات ذات أولوية عالية HIGH PRIORITY INTERRUPTS عن طريق بعض البتات فى مسجلات خاصة لذلك ....
4- ثم بعض خدمة المصادر التى سببت المقاطعة يتم الرجوع إلى البرنامج الرئيسى للاستكمال من حيث انتهى المتحكم
هذه هى الخطوات التى يتبعها المتحكم عند حدوث مقاطعة بشكل مختصر جدا ....
************************************************** **
إن كان مازال هناك أسئلة إن شاء الله ستجد أجوبتها فى موضوع للأخ فادى geniusse01 حول المقاطعات وفيه كل مالذ وطاب عن المقاطعات المختلفة فى المتحكمات
المقاطعات وكيفية الاستفادة منها
أتمنى لك التوفيق.... وكل عام وأنت بخير