الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

المقاطعات الخارجية ..في Atmega16

بدأه مصطفى 36a2 في 11 ديسمبر 2012 · 9 رد · 1,638 مشاهدة · في الميكروكنترولر (المتحكم) و الدوائر الرقمية و المنطقية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الحمد لله رب العالمين والصلاة والسلام على سيدنا محمد صاحب الخلق العظيم

السلام عليكم ورحمة الله وبركاته ..

موضوع درسنا لهذا اليوم :

المقاطعات الخارجية.. External Interrupts:

هي عدة تعليمات يتم تنفيذها بناء على أمر خارجي ...ولها أولوية أعلى من البرنامج الرئيسي ...

نقوم بتغليف هذه التعليمات ضمن دالة function ولكن لا يمكننا استدعاء هذه الدالة ..من البرنامج.!!

لأنها تستدعى بأمر خارجي ...

أي أنها دالة تُستدعى ...(هاردويريّاً ) أي أن تغيّراً خارجياً هو الذي يسبب استدعاءها وتنفيذها ....

الفكرة الأساسية في موضوع المقاطعات هي أولوية التنفيذ ...

فقد يكون لدينا عدة مقاطعات ... فيكون لكل مقاطعة ترتيب محدد في سلم أولويات المتحكم

يتوقف تنفيذ البرنامج الأصلي .. ويتحول المتحكم إلى تنفيذ البرنامج الموجود في دالة المقاطعة ...

بعض الأمثلة الواقعية لفهم مبدأ المقاطعات :

لكي نلاحظ المقاطعات في حياتنا لنبحث عن أمور تحدث دون إرادتنا ..فتجعلنا نتوقف عما نقوم به ونقوم بعمل آخر..

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

أو الراحة مثلاً وأخذ الدواء في حال المرض ..

بالمثل ... فهناك في الحاسوب الشخصي زر لإعادة التشغيل ... يجعل الحاسوب يتوقف عن عمله الحالي ويعيد التشغيل.

وفي المتحكم هناك أرجل خاصة ... عند تطبيق جهد معين عليها تقوم بتنفيذ الدالة الخاصة بهذه المقاطعة ...

ومن خلال البرنامج نحن نتحكم بما يلي :

1-هل هناك مقاطعات أم لا ..

2-ما هي المقاطعات التي نريدها أن تعمل ...

3-متى يستجيب المتحكم للمقاطعة ؟ (عند النبضة الصاعدة أو الهابطة أو ثبات الجهد أو أي تغير)

4-ما هو الكود الذي يجب تنفيذه عند الاستجابة للمقاطعة ؟

(لاحتواء الدرس على الكثير من الصور يصعب رفعها على حدة .. أرجو متابعة الدرس من هنا .المقاطعات.pdf )

ويمكنكم تحميل المرفقات من هنا .. application.rar )

والله ولي التوفيق .. وله الحمد والمنة ..

والسلام عليكم ورحمة الله وبركاته

1
#2

شغل متعوب عليه .. جاري القراءة

بارك الله فيك

تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#3

شكراً لك أخي العزيز bahbah ... وجود الملف بصيغة pdf كان فقط بسبب بعض الصعوبة في الاتصال عندي ..

ولذلك كان من الصعب علي رفع صور مستقلة كما فعلت في الدروس السابقة ...

وسأرفع لك الآن ملف word .. وللأخوة الكرام .. فمن أراد تعديل الدرس .. أو شيء من هذا القبيل فلا بأس ..smile.gif

فالله ولي التوفيق وهذا العمل خالص لوجهه الكريم بإذن الله تعالىblush.gif

وهذه الدروس هي خلاصة فهمي للمايكرو .. وقلت في البداية أنها مجرد مذاكرة للعلم ...happy.gif

ومن استطاع الاستفادة منها وتقديمها لسواه بطريقة أجود فجزاه الله خيراً ..

وهذا هو ملف الدرس .. أرجو الافادة منه ..Interrupts.rar

وسأقوم بنشر الدروس القادمة بهذه الطريقة بإذن الله تعالى ..

فإن كان هناك ملاحظات أو انتقادات فأرجو ابدائها شاكراً ..

فبدون النقد والملاحظات يبقى الخطأ دون تصحيح ..

أطلت الرد فلا تؤاخذوني ...

والسلام عليكم ورحمة الله وبركاتهsmile.gif

#4

شكراً لك ..

الآن مشكلتي هي بسبب مشاكل البرامج لا يقوم بعمل المحاكاة مثل ما أوردت في مشاركتي السابقة ,,

لذلك قمت بإرسال رسالة للشركة المصنعة لعل وعسى أن أجد الحل :blush:

تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#5
اقتباس
قمت بإرسال رسالة للشركة المصنعة لعل وعسى أن أجد الحل

لا أظن أنهم يجيبوننا نحن العرب (خصوصا أننا نستخدم نسخ غير شرعية من البرنامج )

ابحث في المنتديات العربية عن هذه المشكلة لا بد أن تجد حلاً لها .. بإذن الله ..

أرجو لك التوفيقsmile.gif

والسلام عليكم

#6

أجابت الشركة علي وطلبت مني نسخة من الرخصة فأعطيتهم إياها ..

ولكن قمت في نفس الوقت بتنصيب برنامج لإنشاء نظام وهمي ..

ونصبت عليه ويندوز XP والبرنامج يعمل بشكل ممتاز ..

ولكن أريد أن أسأل ما عمل المقاطعة الثالثة ..

أعلم أنها تقوم بالعد العكسي إلى أن تنظم المجموعة A ولكن

عند الضغط على الزر وبعد الضغط .. لا أرى أي تغير !! :mellow:

تم تعديل هذه المشاركة بواسطة bahbah في 12 ديسمبر 2012 في 21:24

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#7
اقتباس
أجابت الشركة علي وطلبت مني نسخة من الرخصة فأعطيتهم إياها ..

ولكن قمت في نفس الوقت بتنصيب برنامج لإنشاء نظام وهمي ..

ونصبت عليه ويندوز XP والبرنامج يعمل بشكل ممتاز ..

الحمد لله ... أفرحتني happy.gif

اقتباس

ولكن أريد أن أسأل ما عمل المقاطعة الثالثة ..

أعلم أنها تقوم بالعد العكسي إلى أن تنظم المجموعة A ولكن

عند الضغط على الزر وبعد الضغط .. لا أرى أي تغير !! :mellow:

المقاطعة تقوم بالعد العكسي كما يلي :

مثلاً الحالة قبل ضغط الزر : 000110011

المفروض أن تتابع بعد ضغط الزر إلى : 000110100 ( العد الثنائي )

أما بسبب ضغط الزر فهذا مايحدث : 000110010 (ينقص واحد بدل زيادة واحد )

وبعد ثانية 000110001 ( ينقص واحد)

ثم : 000110000 ثم 000101111 وهكذا إلى أن يصل إلى الصفر ... ثم تنتهي المقاطعة ويعود إلى البرنامج الأصلي ...

(إذا لم يحدث هذا عندك ... فأخبرني .. (ربما يكون هناك خطأ في الكود ..)smile.gif

والله ولي التوفيق

#8

تنسيق الدرس :happy:

المقاطعات.pdf

1

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#9

السلام عليكم أخي bahbah والاخوة المتابعين ...

وعدت في الدرس أنني سأشرح المسجلات المسؤولة عن المقاطعات ...

ولكنني نسيت شرحها في الدرس السابق ...

وحتى يكون الدرس متكاملا قدر الامكان ..

فهذا هو درس خاص لشرح مسجلات المقاطعات ... ملحق.pdf

وإن شاء الله سأضيف الدرس الخاص بمسجلات الدخل والخرج في موضوعها ...

تمنياتي لك بالتوفيق ...

شكراً لك للمتابعة ...

والسلام عليكم ورحمة الله وبركاته

1
#10

شكراً لك سيتم مراجعة الملحق ..

تمنياتي لك بالتوفيق :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

مواضيع مشابهة