شكرا أخي كيشوكو
لكن كما سبق و قلت ، فأنني جاهل كليا بالمقاطعات  ، لذلك ماذا تقصد بـ'' مسح علم المقاطعه التى تريد استخدامها'' و '' اعداد سجل التحكم الخاص بالمقاطعه المراد استخدامها'' و شكرا جزيلا
|
العفو يا اخى و لكن الفكرة العامه للمقاطعات بنيت على اساس انك كمبرمج تقوم بكتابه البرنامج الرئيسي void main و لكنك من خلال المقاطعات تضع بعض الشروط الخاصه بك و بالاعدادت التى قمت انت ببرمجتها بحيث اذا ما حدث ذلك الشرط يقوم البك بمقاطعه البرنامج الرئيسي void main و يقوم بعمل pause للتعليمه التى وقف عندها و يذهب بسرعه لداله المقاطعات و التى تحتوى على تعليماتك الخاصه بها و بعد الانتهاء منها يرجع البك لاستكمال تنفيذ التعليمه التى وقف عندها و عند حدوث المقاطعه تتحول قيمه بت علم حدوث الماطعه من 0 الى واحد كدليل على حدوثها لذا لابد منك فى نهايه برنامج المقاطعات ارجاع قيمه ذلك البت الى 0 مرة اخرى لكى تحدث المقاطعه مرة اخرى
سأعطيك مثال بسيط انت قمت بكتابه برنامج فى الداله الرئيسيه نثل تغير قيمه البورت بي مثلا كل ثانيه و لكنك تريد شرط محدد الا و هو اذا ما حدث تغير على البن portb.f0 و هو الخاص بالمفاطعات عندئذ انت تريد من البرنامج الرئيسي ان يثاطع عمله و يقوم بزيادة قيمه متغير ما بواحد و كل مرة ننغير فيها قيمه جهد البن portb.f0 تريد البك يقوم بنفس الوظيفه و لكنك لاتريد كتابه مثل هذا الشرط داخل الداله الرئيسيه حتى لا يعطلها عن تنقيذ اوامرها و لكنك لتتعلم المقاطعات لابد اولا فراءة ملف السجلات الخاصه بالداتا شيت للبك الذى تتعامل معه فمثلا فى البك pic16f877a سنجدة كالاتى :
data memory organization / special function register
ستجد به مجموعه من سجلات الوظائف الخاصه مثل :
status register , OPTION_REG register , INTCON register , PIE1 register , PIR1 register , PIE2 register , PIR2 register , PCON register
و كل سجل به 8 بت و كل بت خاص بوظيفه معينه
فنجد مثلا ان هناك مقاطعات مفيدة جدا لدى هذا البك مثل مقاطعه تايمر0 و هو تايمر يمكن استخدامه كعداد اى يعد عدد مرات حدوث حدث معين او ان يعمل كمؤقت زمنى و هناك تايمر 1 و تايمر 2 مع اختلافات بسيطه فى قدرات كل تايمر و هذة المقاطعات تعتبر مقاطعات داخليه اى لا تعتمد على اى سنسور من الخارج و هناك ما يسمى بالمقاطعات الطرفيه اى ما تعتمد على سنسور من خارج البك مثل مقاطعه الالتقاط او مقاطعه الاتصال التسلسلى المتزامن او اللامتزامن او مقاطعه اكتمال المحول التناظرى
عموما لابد منك قراءة الداتا شيت الخاصه بالبك الذى تتعامل معه و قراءة سجل التحكم الخاص بنوع المقاطعه التى تريد التعامل معها و اذا اردت نوعا ما من الاحتراف فلك بالبحث على الانترنت عن tips and tricks للمقاطعه التى تريد استخدامها