قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 08-03-2011, 08:24 AM المشاركة 1   
افتراضي المقاطعة INTERRUPT Twitter FaceBook Google+



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




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

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 08-03-2011, 08:26 AM المشاركة 2   
افتراضي


نظام المقاطعة
أول شيء يقوم الميكروكونترولر بفعلة عند وصلول طلب مقاطعة هو تنفيذ التعليمة الحالية بعد ذلك يوقف تنفيذ البرنامج العادي. ونتيجة لذلك يتم تلقائيا دفع 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.

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

ahmad abdullah
:: مهندس متميز ::
تاريخ التسجيل: Jun 2010
الدولة: لبنان-فلسطين
المشاركات: 586
نشاط [ ahmad abdullah ]
قوة السمعة:0
قديم 08-03-2011, 07:17 PM المشاركة 3   
افتراضي


انا لسة ما فهمت قصة الانتربت ... لكن انشالله من خلال هذا الموضوع ان تصلنا الفكرة ... الف شكر مهندسنا الكريم ... اكمل ... مواضيعك الفوق رائعة


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 08-03-2011, 07:45 PM المشاركة 4   
افتراضي


انا لسة ما فهمت قصة الانتربت ... لكن انشالله من خلال هذا الموضوع ان تصلنا الفكرة ... الف شكر مهندسنا الكريم ... اكمل ... مواضيعك الفوق رائعة
اخى الكريم

شكرا جزيلا لك

بارك الله فيك :

شكرا على الاستفسار


كل شىء مأخوذ مما حولنا فالمقاطعة تحدث امام اعيننا فى كل وقت وكل حين ربما لا نلقى لها بال لذلك اسلط عليها الضوء .

لتوضيح معنى المقاطعة نأخذ هذا المثال :

لنفترض أنك فى الوضع العادى كنت تقرأ كتاب (الوضع العادى يمثل البرنامج العادى) واثناء ذلك "دق جرس الباب" "مقاطعا" حديثك , ما تفعل ؟
* تتوقف عن القراءة (كما يتوقف البرنامج)
* سوف تضع علامة على مكان توقفك كى تتذكره (البرنامج يفعل ذلك ) .
* تذهب لفتح الباب "يقوم البرنامج بتنفيذ برنامج فرعى خاص بالمقاطعة"
* بعد الأنتهاء من معرفة الطارق والرد عليه (الانتهاء من برنامج خدمة المقاطعة" تعود (والبرنامج يعود) وتبدأ فى تكملة عملك العادى وهو قراءة الكتاب من حيث توقفت ووضعت علامة (وكذلك يفعل البرنامج) .
* كل ما علينا هو معرفة طريقة تمثيل هذه الخطوات .

مع تمنياتى بدوام التوفيق


بسام1970
:: عضو ::
تاريخ التسجيل: Feb 2011
المشاركات: 960
نشاط [ بسام1970 ]
قوة السمعة:0
قديم 08-03-2011, 08:04 PM المشاركة 5   
افتراضي بارك الله فيك


جزاك الله خيرا مجهود رائع جعله الله في ميزان حسناتك.


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 08-03-2011, 08:40 PM المشاركة 6   
افتراضي


جزاك الله خيرا مجهود رائع جعله الله في ميزان حسناتك.
اخى الكريم

شكرا جزيلا لك

بارك الله فيك

مع تمنياتى بدوام التوفيق


الصورة الرمزية sheimy
sheimy
:: عضو ذهبي ::
تاريخ التسجيل: Jul 2009
الدولة: Egypt
المشاركات: 789
نشاط [ sheimy ]
قوة السمعة:94
قديم 09-03-2011, 06:11 AM المشاركة 7   
افتراضي


ربنا يبارك فيك اخى فتح الله
ويزيدك يارب


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 09-03-2011, 08:40 AM المشاركة 8   
افتراضي


ربنا يبارك فيك اخى فتح الله


ويزيدك يارب
امين لى ولك ان شاء الله


اخى الكريم

شكرا جزيلا لك

بارك الله فيك

تقدير اعتز به

مع تمنياتى بدوام التوفيق

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 12:55 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2024