adrduino eeprom
This commit is contained in:
parent
9c390fe669
commit
ffd578ad39
15
snipplets/code/Arduino/README.md
Normal file
15
snipplets/code/Arduino/README.md
Normal file
@ -0,0 +1,15 @@
|
||||
## Память
|
||||
|
||||
| Тип | Чтение из программы | Запись из программы | Очистка при перезагрузке |
|
||||
|--------|---------------------|---------------------|--------------------------|
|
||||
| Flash | Да, PROGMEM | Можно, но сложно | Нет |
|
||||
| SRAM | Да | Да | Да |
|
||||
| EEPROM | Да | Да | Нет |
|
||||
|
||||
EEPROM представляет собой область памяти, состоящую из элементарных ячеек
|
||||
с размером в один байт (как SRAM). Объём EEPROM разный у разных моделей МК:
|
||||
|
||||
* ATmega328 (Arduino UNO, Nano, Pro Mini): `1 кБ`
|
||||
* ATmega2560 (Arduino Mega): `4 кБ`
|
||||
* ATtiny85 (Digispark): `512 Б`
|
||||
* ESP8266 / ESP32: `4096 Б`
|
27
snipplets/code/Arduino/eeprom.ino
Normal file
27
snipplets/code/Arduino/eeprom.ino
Normal file
@ -0,0 +1,27 @@
|
||||
#include <EEPROM.h>
|
||||
|
||||
/**
|
||||
* EEPROM.write(адрес, данные) – пишет данные (только byte!) по адресу
|
||||
* EEPROM.update(адрес, данные) – обновляет (та же запись, но лучше) байт данных,
|
||||
* находящийся по адресу. Не реализована для esp8266/32!
|
||||
* EEPROM.read(адрес) – читает и возвращает байт данных, находящийся по адресу
|
||||
* EEPROM.put(адрес, данные) – записывает (по факту – обновляет, update) данные любого типа
|
||||
* (типа переданной переменной) по адресу
|
||||
* EEPROM.get(адрес, данные) – читает данные по адресу
|
||||
* и сам записывает их в данные – указанную переменную
|
||||
* EEPROM[] – библиотека позволяет работать с EEPROM памятью
|
||||
* как с обычным массивом типа byte (uint8_t)
|
||||
*/
|
||||
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
|
||||
Serial.println(EEPROM.read(10)); // выведет 255
|
||||
Serial.println(EEPROM.get(10)); // выведет 255
|
||||
Serial.println(EEPROM[10]); // выведет 255
|
||||
}
|
||||
|
||||
void loop() {
|
||||
//
|
||||
}
|
50
snipplets/code/Arduino/variable_sizes.ino
Normal file
50
snipplets/code/Arduino/variable_sizes.ino
Normal file
@ -0,0 +1,50 @@
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
|
||||
size_t size_variable;
|
||||
|
||||
int example_int;
|
||||
unsigned int example_uint;
|
||||
signed int example_sint;
|
||||
unsigned long example_ulint;
|
||||
float example_float;
|
||||
double example_double;
|
||||
char example_char;
|
||||
char * example_string;
|
||||
|
||||
size_variable = sizeof(example_int);
|
||||
Serial.print("int bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
|
||||
size_variable = sizeof(example_uint);
|
||||
Serial.print("unsigned int bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
|
||||
size_variable = sizeof(example_sint);
|
||||
Serial.print("signed int bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
|
||||
size_variable = sizeof(example_ulint);
|
||||
Serial.print("unsigned long bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
|
||||
size_variable = sizeof(example_float);
|
||||
Serial.print("float bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
|
||||
size_variable = sizeof(example_double);
|
||||
Serial.print("double bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
|
||||
size_variable = sizeof(example_char);
|
||||
Serial.print("char bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
|
||||
size_variable = sizeof(example_string);
|
||||
Serial.print("char * bytes size: " );
|
||||
Serial.println(size_variable);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
//
|
||||
}
|
Loading…
Reference in New Issue
Block a user