السلام عليكم جميعا
هناك الكثير من المميزات الهامة الموجودة في المتحكمات والتي تسهل عمله بشكل كبير جدا ، بالاضافة انه يمكن الاستغناء عن كثير من الدارات عند استخدام هذا المتحكم في دارة معينة ، بالاضفة انه متعدد الوظائف وهذه اهم ميزة فيه. لان عمل المتحكم يعتمد على البرنامج المخزن فيه..وبتغيير هذا البرنامج تتغير الوظيفة التي يقوم بها المتحكم..فمثلا يمكن استخدامه كموقت ..او كمقارن.. او فلاشر وغيرها الكثير الكثير من الامور التي نحتاجها في الدارات الالكترونية..ومن الميزات الهامة للمتحكم ما يدعى بالمقاطعة..
عندما اتذكر المقاطعة (وقد يدعوها البعض الانتربت Interrupt) يخطر على بالي شخص عزيز قد بدا بالمتحكمات من زمن طويل واذكر مثاله على المقاطعة وهي كالتالي:
على فرض انك كنت تعمل شيئا معينا مثل تصفح القرية وقراءة موضوع معين وفجاه وبينما انت منهمك بذلك مر اخونا العزيز حسن علي ورد عليك السلام ..فماذا تعمل؟؟؟ اكيد سترد عليه السلام وممكن ان تدعوه لمساعدتك في برنامج بيك مغلبك وهو لن يقصر بذلك وبعدها تعود لاكمال عملك الذي كنت تقوم به وهو قراءة الموضوع-ارجو في هذا الموضوع انني اقاطع غياب اخونا حسن علي واسرق قليلا من وقته لاطمئن عليه لان اخباره مقطوعة من زمن طويل وان شاء الله يكون بخير وعافية-..هذه هي عمل المقاطعة : حيث تقوم بتنفيذ برنامج معين وعند حدوث شرط معين يتغير سير البرنامج وينفذ مهمة مختلفة تمام عما يقوم به في الوضع الطبيعي..
اسباب المقاطعة (الانتربت) قد تكون :
1)خارجية : وهي التي تحدث لسبب خارجي مثل تغير الجهد على احد الاطراف مثل الطرف RB0.
2) داخلية : تحدث بسبب تغييرات السجلات الداخلية للمتحكم مثل ما يسمى بطفحان التايمر زيرو (TMR0 overflow)..
طبعا المقاطعة بشكل مبسط هو برنامج فرعي مثل اي برنامج يقوم المبرمجون بعمله ولكنه محدد الاسم ..بينما البرنامج الفرعي الذي يقوم المبرمج بعمله قد يكون باي اسم يريد المبرمج..وطبعا فان كل ما ينطبق على البرنامج الرئيسي
(main) من قواعد الميكروسي تنطبق على البرامج التفرعية (وتنطبق على برنامج المقاطعة ايضا) فلا يختلف برنامج المقاطعة عن اي برنامج عند التعامل معه..غير انه تحكمه بعض النقاط الصغيرة فقط...
ما اريد ان اقوله انه المقاطعة بشكل عام تعتمد على مسجلين داخليين للمتحكم هما مسجل المقاطعة ( INTCON)ومسجل الخيارات ( OPTION_REG)
وساشرح الافكار اعتمادا عليها ولمن يجد صعوبة في اي معلومة فيمكنه الاستفسار عنها وان شاء الله سيجد الجواب الشافي من جميع الاعضاء في القرية...
هذه مقدمة بسيطة للمقاطعات وان شاء الله سنتحدث عنها بالتدرج ولن اتعامل مع الميكروسي فقط..انما ساوضح الفكرة بشكل عام بحيث يستفيد منها من يتعامل بلغات البرمجة المختلفة ..اما الباقي وتفاصيل اللغة التي يستخدمها فستعتمد على معلوماته لتحويلها الى برنامج مقاطعة في لغة غير الميكروسي..
واريد التذكير بانني اتعلم منكم ومعكم..وان كان هناك اخطاء فلانني بشر واتعلم معكم..ارجو من الله التوفيق لكم جميعا..
واخر دعوانا ان الحمدلله رب العالمين..وصلى الله على سيدنا محمد وعلى اله وصحبه وسلم..