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

من موسوعة حسوب
< Arduino‏ | time

توقف الدالة delayMicroseconds()‎ تنفيذ البرنامج مؤقتًا لفترة محدَّدة من الزمن (بالميكرو ثانية). في الوقت الحالي، أكبر قيمة تعطي تأخيرًا زمنيًّا دقيقًا هي 16383. يمكن أن تتغير هذه القيمة في إصدارات أردوينو القادمة. يجب استعمال الدالة delay()‎ عوضًا عن هذه الدالة للتأخيرات الزمنية الأطول من بضعة آلاف من الميكرو ثانية .

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

delayMicroseconds(us)

المعاملات

us

عددٌ صحيحٌ عديم الإشارة (unsigned int) يمثِّل الزمن في الميكرو ثانية المراد إيقاف تنفيذ البرنامج مؤقتًا خلاله.

تذكير: يوجد 1,000 ميكرو ثانية في كل ميلي ثانية، و 1,000,000 ميكروثانية في كل ثانية واحدة.

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

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

أمثلة

تهيئ الشيفرة التالية الرجل 8 للعمل كرجل خرج. تُرسِل الرجل بعدها سلسلة من النبضات طول كل منها 100 ميكرو ثانية تقريبًا. يجب التركيز على كلمة "تقريبًا" إذ الفترة غير دقيقة مطلقًا وهذا عائدٌ إلى ضياع بعض الوقت في تنفيذ الأوامر والتعليمات الأخرى في الشيفرة:

int outPin = 8;                 // تسمية الرجل 8

void setup()
{
  pinMode(outPin, OUTPUT);      // على أنها رجل خرج outPin تهيئة الرجل 
}

void loop()
{
  digitalWrite(outPin, HIGH);   // جعل حالة الرجل مرتفعة
  delayMicroseconds(50);        // التوقف مؤقتًا لمدة 50 ميكرو ثانية
  digitalWrite(outPin, LOW);    // جعل حالة الرجل منخفضة
  delayMicroseconds(50);        // التوقف مؤقتًا لمدة 50 ميكرو ثانية
}

ملاحظات وتحذيرات

تعمل هذه الدالة بدقة مطلقة في المجال الواقع بين 3 ميكرو ثانية وما فوق. لا يمكن ضمان عمل الدالة delayMicroseconds()‎ بدقة لتأخيرات زمنية أصغر من تلك القيمة.

بدءًا من الإصدار 0018، لم تعد الدالة delayMicroseconds()‎ تعطِّل المقاطعات منذ ذلك الحين.

انظر أيضًا

  • الدالة delay()‎: توقف تنفيذ البرنامج مؤقتًا لفترة محدَّدة من الزمن (بالميلي ثانية).
  • الدالة micros()‎: تعيد زمن تشغيل لوحة أردوينو للبرنامج الحالي بالميكروثانية.
  • الدالة millis()‎: تعيد زمن تشغيل لوحة أردوينو للبرنامج الحالي بالميلي ثانية.
  • مثال عملي: جعل ضوء ليد يومض دون تأخير زمني.

مصادر