bitSet – הסבר ופרטים

- עמוד זה הוא חלק מהמדריך לפונקציות ארדואינו -

המאקרו bitSet(value, bit) כותב את הערך 1 בביט שנמצא באינדקס bit במשתנה value.

פרמטרים

value הוא המשתנה, שרוצים לכתוב 1 בביט מסוים בו. כיוון ש-bitSet הוא מאקרו ולא פונקציה, אין ל-value טיפוס משתנה קבוע – אך הקומפיילר ירשה לשלוח אליו רק משתנים מטיפוסי מספרים שלמים (integer).

שימו לב: בקוד של ספריות הליבה של ארדואינו כתוב value ולכן השתמשתי באותו שם כאן, אך בפועל אפשר לשלוח רק משתנים, לא ערכים קבועים.

bit מציין את האינדקס של הביט הספציפי שרוצים לכתוב בו 1 – האינדקסים מתחילים מ-0, שהוא הביט הימני ביותר במספר.

ערך חוזר

הערך המעודכן של value. מכיוון ש-bitSet הוא מאקרו ולא פונקציה, טיפוס המשתנה של הערך החוזר יהיה זהה לטיפוס של value.

דוגמאות

int8_t x = 5;
// x is 5 (binary 00000101)
bitSet(x, 1);
// x is now 7 (binary 00000111)

הערות

  • כיוון ש-bitSet הוא מאקרו ולא פונקציה, אין לשלוח חישובים או קריאות לפונקציות כפרמטרים – הדבר עלול לגרום לתוצאות שגויות ובמקרים מסוימים גם לפגיעה בתפקוד הקוד כולו.
  • חשוב לזכור שבטיפוסי משתנים של מספרים שלמים בעלי סימן (signed), הביט השמאלי ביותר מציין את הסימן (ערך 0 בביט זה פירושו מספר חיובי ו-1 פירושו מספר שלילי).
  • בגלל צורת הייצוג של מספרים במיקרו-בקר, במקרה של מספר שלילי, גם שאר הביטים יהיו שונים מאלה של מספר חיובי בעל ערך מוחלט זהה.

קישורים רלוונטיים

בלוג אישי בנושאי מייקינג, תכנות, מיקרו-בקרים ואלקטרוניקה