Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

האם המוצר במלאי?
[X]
עמוד המוצר מציג את רמת המלאי האמיתית, הזמינה במחסנינו בישראל.
פרטים נוספים
איך מזמינים ומשלמים?
[X]
ההזמנה והתשלום מתבצעים רק דרך האתר.
איסוף או משלוח? כמה זה יעלה?
[X]
האתר מציע 5 אפשרויות משלוח וגם אפשרות לאיסוף עצמי מהמחסן.
אחרי הוספת המוצרים לעגלת הקניות, אפשר לראות בה את האפשרויות, המחירים והערכת זמני הגעת המשלוח.
המחיר יחושב לפי גודל ומשקל המוצרים שבחרת.
פרטים נוספים
מתי ההזמנה מוכנה?
[X]
אין צורך לעדכן אותנו טלפונית על ביצוע ההזמנה. אנו רואים אותה מיד ומטפלים בה במהירות.
כמה מהר? לפי הסטטיסטיקה של 3 חודשים האחרונים, הכוללים גם חגים וחופשים, הזמנות שבוצעו בשעות אלה (יום שלישי בין השעות 23 ל-24) היו מוכנות תוך 8 שעות ו-44 דקות.
פרטים נוספים
ייצור ושירותים
מחלקות מוצרים

פירוט שפת תכנות - הגדרת משתנים - volatile

על ידי Alex » ב' יולי 17, 2017 2:59 pm
מילת מפתח volatile מגדירה את הדרך בה המהדר (compiler) והתוכנית עצמה מתייחסים למשתנה. בדרך כלל מציינים את ה-volatile לפני ציון סוג הנתון של המשתנה.

הגדרת המשתנה כ-volatile היא הוראה מיוחדת למהדר (compiler). המהדר הוא תוכנה שממירה את התוכנית שאתם כותבים בשפת C/C++ במקרה שלנו לשפת המיקרובקר, שזוהי השפה שמיקרובקר של ה-Arduino מבין.

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

משתנה צריך להיות מוגדר כ-volatile במקרים בהם הערך שלו יכול להשתנות ע"י משהו שלא נשלט ע"י ריצה של התוכנית בה הוא מוגדר. ב-Arduino המקום הנפוץ ביותר להגדרת משתנה volatile הוא בקוד המטפל בפסיקות (interrupts) הנקרא גם ISR.

דוגמה
קוד: בחר הכל
// toggles LED when interrupt pin changes state

int pin = 13;
volatile int state = LOW;

void setup()
{
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, CHANGE);
}

void loop()
{
  digitalWrite(pin, state);
}

void blink()
{
  state = !state;
}


ראו גם:
()attachInterrupt

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


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