عيون العرب - ملتقى العالم العربي

العودة   عيون العرب - ملتقى العالم العربي > عيــون الأقسام العلمية > تحميل كتب مجانية, مراجع للتحميل

تحميل كتب مجانية, مراجع للتحميل كتب مجانية, كتب عربية للتحميل, كتب ألكترونية, كتب اجنبية, كتب تعليمية, مراجع عربية,كتب للتحميل, كتب للقراءة.

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 09-27-2011, 05:13 AM
 
المقاطعة interrupt

المقاطعة INTERRUPT
تستخدم معظم البرامج المقاطعات فى تنفيذها العادى .
الغرض الأساسى للميكروكونترولر هو الاستجابة للتغيرات التى تحدث فيما يحيط به. وبعبارة أخرى عند وقوع حدث يقوم الميكروكونترولر بفعل شىء ما .
على سبيل المثال عند الضغط على زر بوحدة التحكم عن بعد فإن الميكروكونترولر سوف يقوم بتسجيله ويستجيب عن طريق تغيير القناة ، أو زيادة ونقصان شدة الصوت ..ألخ .إذا قضى الميكروكونترولر معظم وقته فى فحص بضعة أزرار إلى ما لا نهاية لساعات أو أيام فإنه لن يكون عمليا بالمرة .
هذا هو السبب فى تعلم الميكروكونترولر خدعة أثناء تطوره. فبدلا من التحقق من كل طرف أو خانة باستمرار فسوف يوكل الميكروكونترولر هذه العملية لجزء متخصص والذى سوف يستجيب فقط عندما يحدث شيء يستحق الاهتمام.
يطلق على الإشارة التي تقوم بإبلاغ وحدة المعالجة المركزية عن مثل هذا الحدث "المقاطعة"INTERRUPT
المقاطعة باستخدام عمل المؤقت
إذا كان سجل المؤقت يتكون من 8 خانات 8 bits فأن أكبر عدد يمكن تخزينه هو 255 (بدءا من الصفر) . أما بالنسبة للسجلات المكونة من 16 خانة 16 bits يكون العدد هو 65.535 .
إذا تجاوز العدد هذا الحد فأن المؤقت سوف يقوم تلقائيا بالتصفير reset بالدوران ويبدأ العد من الصفر من جديد . تسمى هذه الحالة "التجاوز أو الفيضان أو الطفحان " overflow . إذا تم تمكين ( تم السماح لها) enabled حالة "التجاوز" هذه داخل البرنامج فيمكن أن تسبب المقاطعة ، والتي تعطي إمكانيات جديدة تماما.على سبيل المثال، يمكن تغيير حالة السجلات المستخدمة لحساب الثوان ، أوالدقائق أو الأيام في روتين المقاطعة interrupt routine.
يتم تنفيذ العملية برمتها تلقائيا (باستثناء روتين المقاطعة) من وراء الكواليس، والتي تمكن الدوائر الرئيسية للميكروكونترولر من العمل بشكل طبيعي.


الشكل السابق يبين المقاطعة باستخدام عمل المؤقت .
يمكن الحصول على فترات تأخير مختلفة – بدون التأثير على تنفيذ البرنامج الرئيسي - عن طريق تخصيص "التدريج المسبق"أو "معامل القسمة" prescaler للمؤقت.

نظام المقاطعة
أول شيء يقوم الميكروكونترولر بفعلة عند وصلول طلب مقاطعة هو تنفيذ التعليمة الحالية بعد ذلك يوقف تنفيذ البرنامج العادي. ونتيجة لذلك يتم تلقائيا دفع pushed العنوان الحالى لذاكرة البرنامج إلى المكدسstack
( سجل خاص ) ويتم كتابة العنوان الافتراضي (المحددة مسبقا من قبل الشركة المصنعة ) فى عداد البرنامج program counter (سجل خاص ) .
الموقع الذى يمضى (يستمر) منه تنفيذ البرنامج يسمى متجه المقاطعةinterrupt vector . هذا العنوان هو0004h. كما هو مبين في الشكل أدناهيتم تمرير (تخطى) الموقع الذى يحتوي على متجه المقاطعة أثناء تنفيذ البرنامج العادي.




الجزء من البرنامج المطلوب تنفيذه عند وصول طلب المقاطعة يسمى "روتين خدمة المقاطعة" ISR. أول تعليمة له تقع عند متجه المقاطعة. كم من الوقت يستغرق تنفيذ هذا الروتين وما سوف يكون عليه الحال يعتمد على مهارات المبرمج وكذلك على مصدر المقاطعة نفسها.
بعض أنواع الميكروكنترولر يمتلك أكثر من متجه للمقاطعة (كل طلب مقاطعة له متجه خاص بها )، ولكن في هذه الحالة يوجد متجه مقاطعة واحد فقط . وبالتالي فإن الجزء الأول من روتين المقاطعة تتمثل في اكتشاف مصدر المقاطعة.
وأخيرا عند التعرف على مصدر المقاطعة وتنفيذ روتين المقاطعة يصل الميكروكونترولر إلى تعليمة RETFIE " الرجوع من المقاطعة" يقوم بإستعادة pop العنوان من المكدس ويمضى فى تنفيذ البرنامج من النقطة التي توقفت عندها.
يتعرف المترجم mikroC على روتين المقاطعة المراد تنفيذه كدالة بالصيغة void interrupt() .
جسم هذه الدالة أى روتين المقاطعة يجب أن يكتب بمعرفة المستخدم .



سجلات نظام المقاطعة
عند وصول طلب المقاطعة فلا يعنى ذلك أن المقاطعة سوف تحدث تلقائيا لأنه يجب أيضا أن يتم تمكينها enabled بمعرفة المستخدم (من داخل البرنامج).
لهذا السبب يوجد خانات خاصة لتمكين enable أو عدم تمكين (تعطيل) disableالمقاطعات.
من السهل التعرف عليها عن طريق الحروف IE الواردة في أسمائها ( وتعنى تمكين المقاطعة).
إلى جانب ذلك فإن كل مقاطعة ترتبط بخانة تسمى "العلم" flag والتى تشير إلى وصول طلب المقاطعة بصرف النظر عما إذا كانت ممكنة أم لا.
أيضا يمكن التعرف عليها بسهولة عن طريق الحروف الواردة في أسمائها " علم المقاطعة
"IF (Interrupt Flag).






يستند كل شيء على فكرة بسيطة وفعالة.
عند وصول طلب المقاطعة يتم أولا جعل خانة العلم فى الحالة المرتفعة (1)set.
إذا كان تمكين المقاطعة IEالمناسبة ليست فى الحالة المرتفعة(1)set أى تكون فى الحالة المنخفضة (0)clearفسوف يتم تجاهل هذة الحالة تماما.
عند حدوث مقاطعة وإذا تم تمكين عدة مصادر للمقاطعة فمن الضروري الكشف عن المصدر الفعال قبل بدء تنفيذ روتين المقاطعة. يتم كشف المصدر عن طريق فحص خانة العلم.
من المهم أن نعرف أن خانة العلم هذه لا يتم مسحها تلقائيا لكن يتم ذلك عن طريق البرمجيات أثناء تقدم تنفيذ روتين المقاطعة . إذا أهملنا هذا التفصيل فسوف تحدث مقاطعة أخرى فور العودة إلى البرنامج الرئيسى حتى ولو لم تكن هناك طلبات لتنفيذها. ببساطة خانة العلم بالإضافة إلى خانة تمكين المقاطعة تبقى فى الحالة المرتفعة (1) set.
__________________
angel4angel4angel4angel4angel4
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
المقاطعة المقاطعة المقاطعة almasraoy محاولاتك الشعرية 1 02-07-2010 05:45 PM
المقاطعة.....!!!!! عبدالله الشاعر حوارات و نقاشات جاده 4 11-13-2009 11:52 PM
خسائر المقاطعة saso cat نور الإسلام - 25 04-29-2009 02:24 PM
الحمدُ لله .. ثمار المقاطعة قد بدأت ... fares alsunna مواضيع عامة 8 01-15-2009 12:15 AM
المقاطعة السفير الوهداوي نور الإسلام - 0 02-11-2007 07:40 AM


الساعة الآن 05:32 PM.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

شات الشلة
Powered by: vBulletin Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
جميع الحقوق محفوظة لعيون العرب
2003 - 2011