()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.