EEPROM.update – הסבר ופרטים

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

הפונקציה EEPROM.update(idx, val) משמשת לכתיבת בייטים בודדים לזכרון הבלתי-נדיף מסוג EEPROM שבמיקרו-בקר הראשי בלוח הארדואינו.

בניגוד לפונקציה EEPROM.write, הפונקציה EEPROM.update קוראת את הערך הנוכחי בכתובת idx בעזרת הפונקציה EEPROM.read, משווה אותו ל-val ורק אם הם שונים, כותבת את val בעזרת הפונקציה EEPROM.write. בדיקה זו מונעת כתיבות מיותרות שמקצרות שלא לצורך את חיי ה-EEPROM.

פרמטרים

idx, מטיפוס int, הוא הכתובת ב-EEPROM בה אתם מעוניינים לכתוב את ערך הבייט. הטווח החוקי מתחיל ב-0, וברוב לוחות הארדואינו מסתיים ב-1023 (כולל). בלוח ארדואינו Mega, הטווח הוא עד 4095 (כולל).

val, מטיפוס uint8_t, הוא הערך אותו יש לכתוב.

ערך חוזר

אין

דוגמאות

#include <EEPROM.h>
EEPROM.update(65, 123);

הערות

  • כתיבה של בייט ל-EEPROM היא פעולה ממושכת – בסביבות 3.3 אלפיות השניה. הפעולה מבוצעת על ידי מודול פנימי ייעודי, כך שהמיקרו-בקר מסוגל לבצע בינתיים פעולות אחרות. עם זאת, פעולת כתיבה נוספת ל-EEPROM תמתין במשך מלוא הזמן עד לסיום הכתיבה הקודמת.
  • זכרון ה-EEPROM מוגבל במספר הכתיבות לכל בייט – כ-100,000 כתיבות מובטחות בלבד. לכן, יש למעט ככל האפשר בכתיבה אליו, ומומלץ להשתמש בפונקציה EEPROM.update במקום ב-EEPROM.write.
  • אם ערך הפרמטר idx חורג מגבולות הזכרון הפיזי, התוכנה “מגלגלת” אותו אוטומטית לתוך הגבולות. לדוגמה, בארדואינו Uno בו כתובות ה-EEPROM האמתיות הן בין 0 ל-1023 (כולל), פניה לכתובת 1024 תפנה למעשה לכתובת 0.

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

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