Polling مقابل Interrupts
لماذا لا يمكن لبعض الأحداث انتظار الحلقة.
Polling مقابل Interrupts درس مجاني في Arduino & IoT Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Arduino & IoT Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.
الفحص المستمر
حتى الآن، تستخدم دورتك أسلوب polling: فهي تدور مراراً، وتسأل كل مستشعر وزر بشكل متكرر عما إذا كان أي شيء قد تغيّر.
الاستقصاء عملياً
يقرأ الاستقصاء المعتاد منفذاً في كل مرور من الدورة. فإذا وافقت القيمة ما تريده، تستجيب؛ وإلا تواصل الدورة ببساطة. 🔁
if (digitalRead(buttonPin) == LOW) {
doSomething();
}التكلفة الخفية
يعمل الاستقصاء، لكنه يهدر الجهد في طرح السؤال عندما لا يتغير شيء. إذ تستهلك اللوحة دورات المعالجة في فحص منفذ يظل على حاله مدة طويلة.
عندما تكون الدورة مشغولة
إذا أبقت مهمة بطيئة أو استدعاء delay طويلاً الدورةَ مشغولة، فقد تحدث ضغطة سريعة وتنتهي قبل أن تقرأ المنفذ مرة أخرى.
أحداث لا يمكنها الانتظار
بعض الإشارات سريعة وقصيرة: ارتفاع مفاجئ في قراءة مستشعر، أو حافة مشفّر، أو نبضة قصيرة. إذا فاتتك اللحظة، يختفي event نهائياً.
طريقة أذكى
تغيّر interrupt النموذج بأكمله: فبدلاً من أن تطرح الأسئلة، تنبّهك العتاد فور حدوث شيء على أحد المنافذ.
أوقف كل شيء
عند حدوث interrupt، توقف الشريحة ما كانت الدورة تنفذه، وتشغّل معالجك، ثم تعود إلى الموضع نفسه الذي توقفت عنده تماماً. ⚡
لا تفوّت اللحظة
لأن العتاد يراقب الطرف نيابةً عنك، فإن حتى النبضة الصغيرة تشغّل شفرتك. وهكذا تلتقط الأحداث التي قد تتجاوزها حلقة بطيئة.
تحرير الحلقة
عندما تتولى المقاطعات معالجة الإشارات العاجلة، تبقى الحلقة نظيفة وسريعة الاستجابة، وحرة في تنفيذ عملها الأبطأ دون فحص مستمر.
متى يكون الاستطلاع مناسبًا
ليست كل الأحداث بحاجة إلى مقاطعة. بالنسبة إلى زر يضغطه شخص ببطء، يكون الاستطلاع أبسط ومناسبًا تمامًا.
اختيار الأداة المناسبة
استخدم المقاطعة عندما يكون الحدث سريعًا أو قصيرًا أو قد يصل أثناء انشغال الحلقة. وإلا، فسيجعل الاستطلاع الأمور أسهل.
تحقق سريع
ما الحالة التي تُعد أفضل سبب لاختيار مقاطعة بدلًا من الاستطلاع؟
مراجعة
رأيت أن الاستطلاع يستمر في طرح الأسئلة، بينما تتلقى المقاطعة إشعارًا بالحدث. استخدم المقاطعات للأحداث السريعة، والاستطلاع للأحداث الهادئة. 🎉
تعلم C++ مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «Polling مقابل Interrupts» مجاني؟
نعم — نص درس «Polling مقابل Interrupts» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Arduino & IoT Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Arduino & IoT Academy 4 دروس في المجموع.
ماذا ستتعلم في «Polling مقابل Interrupts»؟
لماذا لا يمكن لبعض الأحداث انتظار الحلقة. تتمرن على Arduino & IoT Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Arduino & IoT Academy؟
لا تُشترط خبرة سابقة. Arduino & IoT Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «Polling مقابل Interrupts»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Arduino & IoT Academy هذا؟
نعم. كل درس في Arduino & IoT Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- Polling مقابل Interrupts
- استخدام attachInterrupt على منفذ
- كتابة ISR آمن
- عدّ النبضات من Encoder