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…
x
Reference in New Issue
Block a user