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

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

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

פרמטרים

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

t הוא שם המשתנה או מבנה הנתונים ממנו יש לקרוא את המידע שייכתב ב-EEPROM.

ערך חוזר

t. כיוון שהפקודה עצמה מעתיקה את תוכן t ל-EEPROM, אין צורך להשתמש בערך החוזר הזה.

דוגמאות

#include <EEPROM.h>
uint16_t x = 1234;
EEPROM.put(10, x);

הערות

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

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

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