facebook pixel מדריך: פירוט שפת תכנות - תזמון - ()delay - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

לקוחות נכבדים, אלה שעות הפעילות של המחסן במהלך פסח 2024:
ערב חג וחג ראשון (22-23/04) - המחסן סגור
חול המועד (24-25/04) - המחסן יפעל בין 8:00 עד 15:00
ערב חג וחג שני (28-29/04) - המחסן סגור
נחזור לפעילות רגילה ביום שלישי 30/04
חג שמח!

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


2022-06-14 10:30:37
פונקציית ()delay עוצרת את ריצת התוכנית לזמן שציינתם (במילי-שניות). בשנייה אחת יש 1000 מילי-שניות.


תחביר

קוד: בחר הכל
delay(ms);

פרמטרים:
ms - מספר המילי-שניות שהתוכנית תיעצר - מסוג unsigned long

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


דוגמה

קוד: בחר הכל
int ledPin = 13;                 // LED connected to digital pin 13

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

void loop()
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}


אזהרה

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

יש דברים שכן פועלים תוך כדי ההמתנה של פונקציית ()delay בגלל שהפונקציה לא מבטלת את הפסיקות (interrupts). תקשורת הטורית על קו ה-Rx מוקלטת, תפעול קווי ה-PWM ממשיך (פונקציית ()analogWrite) וגם מערכת הפסיקות (interrupts) ממשיכה לפעול.


ראו גם:

()millis
()micros
()delayMicroseconds
מדריך: Blink בלי שימוש ב-delay - TODO

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


עמוד זה הוא תרגום של ()delay לפי רישיון Creative Commons Attribution-ShareAlike 3.0.