delayMicroseconds – הסבר ופרטים

- עמוד זה הוא חלק מהמדריך לפונקציות ארדואינו -

הפונקציה delayMicroseconds(us) יוצרת עיכוב, למשך מספר מיליוניות השנייה הנקוב בפרמטר us, בין סיום הפקודה שלפניה לתחילת הפקודה שאחריה בקוד הראשי. העיכוב שנוצר על ידי פונקציה זו תקף לקוד הראשי בלבד, ואינו משפיע על פעולתן של פסיקות.

פרמטרים

us, משך הזמן במיליוניות שנייה שברצונכם לעכב את המשך הריצה של הקוד הראשי. פרמטר זה הוא מטיפוס unsigned int. שימו לב לאזהרה בהמשך.

ערך חוזר

אין

זהירות!

אין לשלוח לפונקציה delayMicroseconds ערך us גבוה יותר מאשר 16,383. טיפוס המשתנה של us מסוגל אמנם לקבל ערכים עד 65,535 (כולל), אך המימוש של delayMicroseconds בקוד כולל מספר פעולות מתמטיות על הפרמטר הזה, שמגבילות את הערך העליון המעשי. מספרים גבוהים יותר יגרמו לזמני עיכוב שגויים ונמוכים בהרבה מהצפוי.

דוגמאות

delayMicroseconds(500); // Pause for 0.0005 seconds

הערות

  • הפונקציה delayMicroseconds ממומשת כלולאה בקוד הראשי, שמבצעת סדרה של פעולות בעלות משך ריצה ידוע. לכן, היא אינה חוסכת חשמל (בניגוד למצב שינה).
  • הדיוק של מדידת הזמן בפונקציה delayMicroseconds מוגבל על ידי הדיוק של שעון המערכת, ועל ידי פעולתן של פסיקות. כמו כן, אם us נמוך מ-3, זמן העיכוב יהיה שגוי.
  • פונקציה זו חוסמת (Blocking) כל פעולה אחרת בקוד הראשי למשך ריצתה. אם רוצים לתזמן שתיים או יותר פעולות שונות, צריך להשתמש בשיטות תזמון שאינן חוסמות (Non-blocking).

קישורים רלוונטיים

בלוג אישי בנושאי מייקינג, תכנות, מיקרו-בקרים ואלקטרוניקה