رفتن به نوشته‌ها

استفاده از حافظه eeprom در آردینو

https://www.arduino.cc/en/Reference/EEPROM

  • amounts of EEPROM: 1024 bytes on the ATmega328P, 512 bytes on the ATmega168 and ATmega8, 4 KB (4096 bytes) on the ATmega1280 and ATmega2560. The Arduino and Genuino 101 boards have an emulated EEPROM space of 1024 bytes.


پیدا کردن اندازه حافظه EEPROM میکروکنترلر

#include <EEPROM.h>

void setup() {
Serial.begin(9600);
int size_eeprom = EEPROM.length();
Serial.println(size_eeprom);
}

void loop() {
// put your main code here, to run repeatedly:

}

خواندن از حافظه EEPROM

#include <EEPROM.h>
int value;

void setup() {
Serial.begin(9600);
for (int i=0;i<EEPROM.length();i++)
{
value = EEPROM.read(i);
Serial.print(i);
Serial.print(“\t”);
Serial.print(value);
Serial.println();
}
}

void loop() {
}

نوشتن در حافظه EEPROM

در هر خانه از حافظه EEPROM تعداد ۱۰۰.۰۰۰ بار میتواند عملیات نوشتن را انجام داد.بعد از ان امکان استفاده از آن خانه از حافظه (بیت) وجود ندارد.

زمان مورد نیاز برای نوشته شدن متغییر در حافظه EEPROM برابر ۳.۳ میلی ثانیه می باشد.

#include <EEPROM.h>

void setup() {
for (int i = 0; i<256;i++)
{
EEPROM.write(i,i);
}
}

void loop() {
}

بروز رسانی مقادیر در حافظه EEPROM

مزیت این دستور نسبت به دستور write این است که:

زمان نوشتن در حافظه کمتر از ۳.۳ میلی ثانیه خواهد بود.

محدودیت ۱۰۰.۰۰۰ بار نوشتن در هر خانه از حافظه EEPROM را ندارد.

#include <EEPROM.h>

void setup() {
Serial.begin(9600);
for (int i=0;i<256;i++)
{
EEPROM.write(i,i);
}

EEPROM.update(3,100);
EEPROM.update(7,100);
EEPROM.update(8,8);
}

void loop() {
}

نوشتن و خواندن داده های چند بایتی از EEPROM

#include <EEPROM.h>

float f = 12.34;
byte b = 128;
char c[10] = “Shaderyan”;

float f1;
byte b1;
char c1[10];

int address = 0;

void setup() {
Serial.begin(9600);
EEPROM.put(address,f);
address += sizeof(f);
EEPROM.put(address,b);
address += sizeof(f);
EEPROM.put(address,c);

address = 0;
EEPROM.get(address,f1);
showData(address);
Serial.println(f1);

address = 0+sizeof(f);

EEPROM.get(address,b1);
showData(address);
Serial.println(b1);

address = 0 + sizeof(f)+ sizeof(b);
EEPROM.get(address,c1);
showData(address);
Serial.println(c1);
}

void showData(int addr)
{
Serial.print(“data address = “);
Serial.print(addr);
Serial.print(“\t”);
}

void loop() {
}

منبع: فرادرس آموزش آردینو

منتشر شده در آردوینو

اولین باشید که نظر می دهید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

7 + 2 =