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

העגלה ריקה

לקוחות נכבדים, אלה שעות הפעילות של המחסן במהלך פסח 2024:
ערב חג וחג ראשון (22-23/04) - המחסן סגור
חול המועד (24-25/04) - המחסן יפעל בין 8:00 עד 15:00
ערב חג וחג שני (28-29/04) - המחסן סגור
נחזור לפעילות רגילה ביום שלישי 30/04
חג שמח!

ספריה - EEPROM - דוגמה - EEPROM Get


2022-06-14 11:52:36
לכרטיסי Arduino המבוססים על מיקרובקר AVR יש EEPROM - זכרון ששומר על הערכים שלו גם כשמכבים את החשמל (בדומה לדיסק קשיח קטן). ספריה זו מאפשרת לכם לקרוא ולכתוב ערכים אלה.

מטרת הדוגמה היא להראות איך הפונקציות put ו-get מתנהגות בצורה שונה מ-write ו-read שפועלות על byte בודד. קריאה של נתונים בעזרת פונקציית ()EEPROM.get שולפות את כמות הבתים (bytes) בהתאם לסוג הנתון אותו אתם קוראים.

ציוד נדרש

כרטיס פיתוח Arduino.

מעגל

אין צורך בהכנת מעגל לדוגמה זו.

שרטוט

אין צורך בשרטוט לדוגמה זו.

קוד

קוד: בחר הכל
/***
    eeprom_get example.

    This shows how to use the EEPROM.get() method.

    To pre-set the EEPROM data, run the example sketch eeprom_put.
    This sketch will run without it, however, the values shown
    will be shown from what ever is already on the EEPROM.

    This may cause the serial object to print out a large string
    of garbage if there is no null character inside one of the strings
    loaded.

    Written by Christopher Andrews 2015
    Released under MIT licence.
***/

#include <EEPROM.h>

void setup() {

  float f = 0.00f;   //Variable to store data read from EEPROM.
  int eeAddress = 0; //EEPROM address to start reading from

  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.print("Read float from EEPROM: ");

  //Get the float data from the EEPROM at position 'eeAddress'
  EEPROM.get(eeAddress, f);
  Serial.println(f, 3);    //This may print 'ovf, nan' if the data inside the EEPROM is not a valid float.

  /***
    As get also returns a reference to 'f', you can use it inline.
    E.g: Serial.print( EEPROM.get( eeAddress, f ) );
  ***/

  /***
    Get can be used with custom structures too.
    I have separated this into an extra function.
  ***/

  secondTest(); //Run the next test.
}

struct MyObject {
  float field1;
  byte field2;
  char name[10];
};

void secondTest() {
  int eeAddress = sizeof(float); //Move address to the next byte after float 'f'.

  MyObject customVar; //Variable to store custom object read from EEPROM.
  EEPROM.get(eeAddress, customVar);

  Serial.println("Read custom object from EEPROM: ");
  Serial.println(customVar.field1);
  Serial.println(customVar.field2);
  Serial.println(customVar.name);
}

void loop() {
  /* Empty loop */
}



ראו גם:

()EEPROM.get
פירוט ספריית EEPROM
דוגמת EEPROM Clear - ניקיון הבתים ב-EEPROM
דוגמת EEPROM Read - קריאת נתונים מ-EEPROM ושליחתם למחשב
דוגמת EEPROM Write - שמירת נתונים מכניסה אנלוגית ב-EEPROM
דוגמת EEPROM CRC - חישוב בדיקת CRC על תוכן של EEPROM כאילו שהם היו כמערך
דוגמת EEPROM Iteration - הסבר על מעבר בין כתובות שונות ב-EEPROM
דוגמת EEPROM Put - שמירת נתונים ב-EEPROM עם התחשבות בסמנטיקה של המשתנים
דוגמת EEPROM Update - שמירת נתון מכניסה אנלוגית ב-EEPROM, כאשר הכתיבה מתבצעת רק כשיש שינוי כדי להאריך את אורך החיים של ה-EEPROM

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


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