SRAM je specifickým druhem RAM paměti, kterou nejspíš nemusím představovat. Do SRAM se ukládají hodnoty za běhu programu na základě instrukcí psaných jazykem Wiring. Na rozdíl od paměti EEPROM o data přijdeme ve chvíli, kdy Arduino restartujeme nebo odpojíme.
int cislo = 55; // tímto uložím do SRAM hodnotu 55
Uložení hodnoty do SRAM
Oproti běžnému PC je velikost paměti SRAM v Arduinu velice malá, proto je třeba více optimalizovat její využití. Několik způsobů jak šetřit paměť.
- Neukládat do SRAM nic co mohu uložit do Flash paměti. Třeba řetězce zobrazované na displeji.
- Používat co nejmenší datové typy. Na malé číslo stačí byte (8 bitů), nepotřebují celý int (16 bitů).
- Nepoužívat globální proměnné, ty zabírají místo po celou dobu běhu programu, zatímco lokální proměnné pouze po dobu vykonávání bloku.
- Občas lze ušetřit místo použitím direktivy #define. To se hodí například při definování pinů.
- A nejobecnější pravidlo ze všech: nepoužívat proměnné tam kde to není potřeba.
Základní datové typy
Typ | Rozsah | Velikost |
boolean | true nebo false | 1 byte (8 bitů) |
byte | 0 až 255 | 1 byte (8 bitů) |
char | -128 až 127 | 1 byte (8 bitů) |
int | -32 768 až 32 767 | 2 byte (16 bitů) |
unsigned int | 0 až 65 535 | 2 byte (16 bitů) |
long | -2 147 483 648 až 2 147 483 647 | 4 byte (32 bitů) |
unsigned int | 0 až 4 294 967 295 | 4 byte (32 bitů) |
float / double | desetinné číslo, 6 až 7 číslic | 4 byte (32 bitů) |
Místo booleanu je lepší využít byte a uložit do něj 8 logických hodnot – každý bit je jeden boolean.