2023-09-10 01:02:36 +03:00
|
|
|
|
# Arduino
|
|
|
|
|
|
2024-05-04 23:17:18 +03:00
|
|
|
|
![Arduino Logo](../../assets/languages/arduino.svg)
|
2023-09-10 01:02:36 +03:00
|
|
|
|
|
2024-05-04 23:17:18 +03:00
|
|
|
|
## Дата и время
|
|
|
|
|
|
|
|
|
|
- [`__DATE__` и `__TIME__`](date/compile_date_time.c) — Пример, который отображает дату и время компиляции скетча
|
|
|
|
|
- [](date/DATE_to_YYYY-MM-DD.c) — Функция для преобразования `__DATE__` в формат `ГГГГ-ММ-ДД`
|
2023-09-10 01:02:36 +03:00
|
|
|
|
|
|
|
|
|
## Функции
|
|
|
|
|
|
|
|
|
|
* Функция, которая моргает встроенным светодиодом [`void init_blink(int times, int delay)`](init_blink.h)
|
|
|
|
|
|
2023-09-03 11:41:30 +03:00
|
|
|
|
## Память
|
|
|
|
|
|
2024-05-04 23:17:18 +03:00
|
|
|
|
### EEPROM
|
|
|
|
|
|
|
|
|
|
- [EEPROM](memory/eeprom.ino) — Пример работы с EEPROM
|
|
|
|
|
|
2023-09-03 11:41:30 +03:00
|
|
|
|
| Тип | Чтение из программы | Запись из программы | Очистка при перезагрузке |
|
|
|
|
|
|--------|---------------------|---------------------|--------------------------|
|
|
|
|
|
| Flash | Да, PROGMEM | Можно, но сложно | Нет |
|
|
|
|
|
| SRAM | Да | Да | Да |
|
|
|
|
|
| EEPROM | Да | Да | Нет |
|
|
|
|
|
|
|
|
|
|
EEPROM представляет собой область памяти, состоящую из элементарных ячеек
|
|
|
|
|
с размером в один байт (как SRAM). Объём EEPROM разный у разных моделей МК:
|
|
|
|
|
|
|
|
|
|
* ATmega328 (Arduino UNO, Nano, Pro Mini): `1 кБ`
|
|
|
|
|
* ATmega2560 (Arduino Mega): `4 кБ`
|
|
|
|
|
* ATtiny85 (Digispark): `512 Б`
|
|
|
|
|
* ESP8266 / ESP32: `4096 Б`
|
2024-05-04 23:17:18 +03:00
|
|
|
|
|
|
|
|
|
### RAM
|
|
|
|
|
|
|
|
|
|
- [EEPROM](memory/variables_sizes.ino) — Размер типов перенных в байтах
|
|
|
|
|
- [`free_ram()`](memory/free_ram.c) — Функция, которая возвращает количество свободной RAM
|
|
|
|
|
|
|
|
|
|
## Serial
|
|
|
|
|
|
|
|
|
|
- [`serial.find()`](memory/find.ino) — Ищет строку полученную из Serial
|