facebook pixel מדריך: ספריה - EEPROM - דוגמה - EEPROM Write - 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 Write


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

דוגמה זו מראה איך לשמור ערכים שנקראו מכניסה אנלוגית ב-EEPROM בעזרת פונקציית ()EEPROM.write. הערכים ישמרו ב-EEPROM גם כשמכבים את החשמל ואפשר יהיה לקרוא אותם בעזרת תוכנית אחרת.

ציוד נדרש

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

מעגל

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

שרטוט

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

קוד

קוד: בחר הכל
/*
* EEPROM Write
*
* Stores values read from analog input 0 into the EEPROM.
* These values will stay in the EEPROM when the board is
* turned off and may be retrieved later by another sketch.
*/

#include <EEPROM.h>

/** the current address in the EEPROM (i.e. which byte we're going to write to next) **/
int addr = 0;

void setup() {
  /** Empty setup. **/
}

void loop() {
  /***
    Need to divide by 4 because analog inputs range from
    0 to 1023 and each byte of the EEPROM can only hold a
    value from 0 to 255.
  ***/

  int val = analogRead(0) / 4;

  /***
    Write the value to the appropriate byte of the EEPROM.
    these values will remain there when the board is
    turned off.
  ***/

  EEPROM.write(addr, val);

  /***
    Advance to the next address, when at the end restart at the beginning.

    Larger AVR processors have larger EEPROM sizes, E.g:
    - Arduno Duemilanove: 512b EEPROM storage.
    - Arduino Uno:        1kb EEPROM storage.
    - Arduino Mega:       4kb EEPROM storage.

    Rather than hard-coding the length, you should use the pre-provided length function.
    This will make your code portable to all AVR processors.
  ***/
  addr = addr + 1;
  if (addr == EEPROM.length()) {
    addr = 0;
  }

  /***
    As the EEPROM sizes are powers of two, wrapping (preventing overflow) of an
    EEPROM address is also doable by a bitwise and of the length - 1.

    ++addr &= EEPROM.length() - 1;
  ***/


  delay(100);
}



ראו גם:

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

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


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