الدالة noInterrupts()‎ في أردوينو

من موسوعة حسوب
مراجعة 07:43، 21 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تعطِّل الدالة noInterrupts()‎ عمل جميع المقاطعات في لوحة أردوينو. يمكن إعادة تفعيلها عبر استدعاء الدالة interrupts()‎.

تسمح المقاطعات بتنفيذ مهام معيَّنة في الخلفية وتكون مفعَّلة افتراضيًّا. لن تعمل بعض الدوال وقد تُتجاهل بعض الاتصالات الواردة إن كانت المقاطعات معطَّلة. يمكن للمقاطعات أن تُحدِث خللا بسيطًا في توقيت البرنامج؛ مع ذلك، قد تُعطَّل في بعض الأجزاء المهمة والحرجة من الشيفرة.

البنية العامة

noInterrupts()

القيم المعادة

لا يعاد أي شيء.

أمثلة

استعمال الدالة noInterrupts()‎ لتعطيل المقاطعات في الأجزاء المهمة من الشيفرة ثم إعادة تفعيلها:

void setup() {}

void loop()
{
  noInterrupts();
  // جزء حرج وحساس جدًا للتوقيت هنا 
  interrupts();
  // إعادة تفعيل المقاطعات لبقية أجزاء الشيفرة
}

انظر أيضًا

  • الدالة attachInterrupt()‎: تفعِّل مقاطعة خارجية معيَّنة على إحدى الأرجل في لوحة أردينو.
  • الدالة detachInterrupt()‎: تعطِّل عمل مقاطعة خارجية معيَّنة مرتبطة بإحدى أرجل اللوحة.
  • الدالة interrupts()‎: تعيد تفعيل عمل المقاطعات بعد إيقافها عبر استدعاء الدالة nointerrupts()‎.

مصادر