פירוט שפת תכנות - תזמון - ()delayMicroseconds

פורום זה מכיל תרגום לעברית של מדריכים, דוגמאות קוד, פירוט שפת תכנות לכרטיסי Arduino וחומרים לימודיים אחרים מהאתר arduino.cc

פירוט שפת תכנות - תזמון - ()delayMicroseconds

הודעהעל ידי Alex » ה' יולי 27, 2017 10:12 am

פונקציית ()delayMicroseconds עוצרת את ריצת התוכנית לזמן שציינתם (במיקרו-שניות). בשנייה אחת יש 1,000,000 מיקרו-שניות, במילי-שניה יש 1000 מיקרו-שניות.

כרגע הערך הגבוה שיגרום להשהיה מדויקת הוא 16383. ערך זה יכול להשתנות בגרסאות הבאות של סביבת ה-Arduino. להשהיות ארוכות יותר מכמה אלפי מיקר-ושניות רצוי להשתמש בפונקציית ()delay.


תחביר
קוד: בחר הכל
delayMicroseconds(us)

פרמטרים:
us - מספר המיקרו-שניות שהתוכנית תיעצר - מסוג unsigned int

פונקציה זו לא מחזירה ערכים.


דוגמה
קוד: בחר הכל
int outPin = 8;                 // digital pin 8

void setup()
{
  pinMode(outPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  digitalWrite(outPin, HIGH);   // sets the pin on
  delayMicroseconds(50);        // pauses for 50 microseconds     
  digitalWrite(outPin, LOW);    // sets the pin off
  delayMicroseconds(50);        // pauses for 50 microseconds     
}

הדוגמה מגדירה קו 8 כפלט ומייצרת עליו גל ריבועי עם מחזוריות של בערך כ-100 מיקרו-שניות. אי-דיוק בזמנים נובע מכך שהתוכנית מבצעת גם את הפקודות של כתיבה לקו דיגיטלי, שגם הם לוקחים זמן.

אזהרה
פונקציה זו עובדת בצורה מדויקת בטווח של 3 מיקרו-שניות ומעלה. אי אפשר להבטיח שפונקציית ()delayMicroseconds תפעל בצורה מדויקת לפרקי זמן קצרים יותר.

החל מגרסה 0018 של סביבת ארדואינו פונקציית ()delayMicroseconds לא מבטלת יותר את הפסיקות.


ראו גם:
()millis
()micros
()delay

פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של ()delayMicroseconds לפי רישיון Creative Commons Attribution-ShareAlike 3.0.
www.4project.co.il
כל הרכיבים לפרוייקט שלכם
סמל אישי של המשתמש
Alex
מנהל האתר
 
הודעות: 7168
הצטרף: ה' ינואר 28, 2010 8:27 pm

חזור אל תרגום מדריכים מהאתר arduino.cc

Jump box

מי מחובר

משתמשים הגולשים בפורום זה: CCBot [Bot]