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

העגלה ריקה

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


2022-06-14 10:46:42
מילת מפתח 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.